2006-09-16 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-16  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
4         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
5
6         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
7         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
8         functions specifically for sockets only, and move generic 
9         read/write/open/close into unix-specific code.
10
11 2006-09-14  Havoc Pennington  <hp@redhat.com>
12
13         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
14         complaint about accessing revents when poll returns 0, from Julian Seward.
15
16 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
17
18         * Released 1.0 RC 1 (0.93) 
19
20 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
21
22         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
23         use _dbus_close instead of close
24
25 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
26
27         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
28         credentials.  Fixes "external" authentication under e.g. NetBSD
29         which does not support any other socket credentials mechanism.
30         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
31
32 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
33
34         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
35         dbus_threads_init and be used by the dbus mutex functions to
36         avoid deadlocks.
37
38         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
39
40 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
41
42         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
43         use threadsafe readdir_r instead of readdir
44
45 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
46
47         * dbus-threads.c (dbus_threads_init_default): New method for
48         initializing the internal thread implementation (Patch from
49         Alexander Larsson <alexl at redhat dot com>)
50
51 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
52
53         * remove a bunch of todo items from the 1.0 list
54
55 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
56
57         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
58         key not found
59
60 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
61
62         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
63         complex debugging code
64
65         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
66         between the test suite ifdefs
67         (_dbus_verbose_bytes): return if verbosity is not enabled 
68
69 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
70
71         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
72         remove DBusMark
73
74 2006-09-10  Havoc Pennington  <hp@redhat.com>
75
76        patch mostly by Peter Kümmel, bug #8211
77         
78         * dbus/dbus-sysdeps-unix.c: new file, which splits out
79         unix-specific stuff in dbus-sysdeps.c
80
81         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
82         and move unix-specific stuff to dbus-sysdeps-unix.c
83
84         * configure.in: check HAVE_ERRNO_H
85         
86 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
87
88         * bus/test-main.c (main): Initialize threading during tests
89
90         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
91         Unlock connection on error
92         (generate_local_error_message): static method for generating
93         an error message when we don't have a message to reply to
94         (_dbus_connection_block_pending_call): Send a disconnect error
95         instead of just a timeout (NULL) when the bus gets disconnected
96         while blocking for a reply.
97         
98 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
99
100         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
101         filters (Patch from Kimmo Hämäläinen 
102         <kimmo dot hamalainen at nokia dot com>)
103
104 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
105
106         * dbus/dbus-connection-internal.h: Add prototype for 
107         _dbus_connection_test_get_locks to remove warning
108
109 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
110
111         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
112         close child_err_report_pipe[WRITE_END] on exec (Patch from 
113         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
114
115 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
116
117         * Clean up close calls to use _dbus_close (Patch from 
118         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
119
120 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
121
122         * doc/TODO:
123         - Remove pending call locking todo item
124         - dbus_connection_open now holds hard ref.  Remove todo item
125         - do proper locking on _dbus_bus_check_connection_and_unref
126           and handle DBUS_BUS_STARTER. Remove todo item
127         - Warn on closing of a shared connection.  Remove todo item
128
129         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
130         dbus/dbus-connection.c: Use the dbus_connection_close_internal
131         so we don't get the warning when closing shared connections
132
133         * test/test-service.c, test/test-shell-service.c: Applications
134         don't close shared connections themselves so we unref instead of
135         close
136
137         * test/test-utils.c (test_connection_shutdown): Close the connection
138
139         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
140         _dbus_bus_check_connection_and_unref_unlocked since we only call this
141         method on a locked connection.  
142         Make sure we call _dbus_connection_unref_unlocked instead of 
143         dbus_connection_unref also.
144         Handle DBUS_BUS_STARTER correctly
145
146         * dbus/dbus-connection.c (connection_record_shared_unlocked):
147         Mark as shared and hard ref the connection
148         (connection_forget_shared_unlocked): Remove the hard ref from the 
149         connection
150         (_dbus_connection_close_internal_and_unlock):  New internal function
151         which takes a locked connection and unlocks it after closing it
152         (_dbus_connection_close_internal): New internal function which acts
153         like the origonal dbus_connection_close method by grabbing a connection
154         lock and calling _dbus_connection_close_internal_and_unlock
155         (dbus_connection_close): Public close method, warns when the app
156         trys to close a shared connection
157
158 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
159
160         * bus/driver.c:
161         (bus_driver_generate_introspect_string): New method for populating
162         a DBusString with the introspect data
163         (bus_driver_handle_introspect): Move introspect generation code to 
164         bus_driver_generate_introspect_string
165
166         * bus/main.c:
167         (introspect): New function which prints out the intropect data and
168         exits
169         (main): Add a --introspect switch
170
171 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
172
173         * doc/TODO: Removed dtd publishing item.  
174         It seems the dtd has already been added at
175         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
176
177 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
178
179         * doc/TODO, various source files: Audited todo's and FIXME's and
180         prepended the ones we should be looking at with 1.0.  Those
181         prepended with 1.0? need clerification or might not be needed
182         for 1.0
183
184 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
185
186         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
187         NULL in the public API (Patch from Kimmo Hämäläinen 
188         <kimmo dot hamalainen at nokia dot com>)
189
190 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
191
192         * configure.in: Fix for OS-X compile time endian issues (patch from
193         Benjamin Reed <ranger at befunk dot com>)
194
195 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
196
197         * configure.in: Check for no-common compiler flag (OS-X fix from
198         Benjamin Reed <ranger at befunk dot com>)
199
200 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
201
202         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
203         <fcrozat at mandriva dot com>)
204
205 2006-08-29  Havoc Pennington  <hp@redhat.com>
206
207         * test/test-service.c (path_message_func): fix lack of return value
208
209         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
210         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
211         any more sense than on anything else in this file.
212         (_dbus_get_tmpdir): add const to return value, and keep the
213         results of the various getenv around in a static variable.
214
215 2006-08-29  Havoc Pennington  <hp@redhat.com>
216
217         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
218         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
219
220 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
221
222         * test/Makefile.am: change find to use syntax that works with non
223         gnu versions of find
224
225 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
226
227         * dbus/dbus-transport.c: fix invalid deref when checking if
228         a vtable method exists (Patch from Christian Ehrlicher 
229         <ch dot ehrlicher at gmx dot de>)
230
231 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
232
233         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
234         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
235         to build with builddir != srcdir (Taken from a patch by Bernard Leak
236         <bernard at brenda-arkle dot demon dot co dot uk>)
237
238 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
239
240         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
241         default case
242
243 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
244
245         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
246         it works on any system providing this interface, not only FreeBSD.
247         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
248
249 2006-08-20  Havoc Pennington  <hp@redhat.com>
250
251         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
252         the docs
253
254 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
255
256         * Released 0.92 
257
258 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
259
260         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
261         to reflect the init late change
262
263         * bus/bus.c (bus_context_new): Check user before we fork so we can
264         print out an error message a user will be able to see
265
266 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
267
268         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
269
270         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
271         Add two more global locks for use on windows platforms.  These are
272         unused on non-windows platforms but are not ifdefed out to avoid
273         potential bugs (i.e. the few bytes lost does not warrent the extra
274         maintanence and complexity that having seperate sets of locks would
275         cause)
276
277 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
278
279         * bus/services.c (bus_registry_acquire_service): Return an error
280         when an application tries to register the org.freedesktop.DBus Bus Name
281
282         * bus/services.c (bus_registry_release_service): Return an error
283         when an application tries to release the org.freedesktop.DBus Bus Name
284
285 2006-08-17  Alp Toker  <alp@atoker.com>
286
287         * doc/dbus-specification.xml: Fix some minor typos.
288
289 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
290
291         * configure.in: use $with_init_scripts instead of $operating_system
292         to determine where to store the pid since the init scripts manipulate 
293         the pid file (patch from Marcelo Ricardo Leitner 
294         <marcelo dot leitner at terra dot com dot br>.  
295
296 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
297
298         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
299         static DBusList *uninitialized_condvar_list to support new late 
300         initialization threading model.  In this model threads can be initialized
301         even after the D-Bus API has been used but still needs to be initialized 
302         before the second thread has been started.  Mutexes and condvar addresses
303         are stored in the two static lists and are replaced with actuall locks
304         when threads are initalized.
305         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
306         the location into the static list
307         (_dbus_mutex_free_at_location): New method for removing a mutex location 
308         from the static list and freeing the mutex
309         (_dbus_condvar_new_at_location): New method for creating a conditional 
310         variable and placing the location into the static list
311         (_dbus_condvar_free_at_location): New method for removing a conditional
312         variable location from the static list and freeing the conditional variable 
313         (init_uninitialized_locks): Atomic method which goes through the static 
314         lists of mutex and condvar location and updates them with actuall locks
315         (init_global_locks): changed to init_locks
316         
317         * dbus/dbus-connection.c:
318         (_dbus_connection_test_get_locks): New method for tests to check connections
319         (_dbus_connection_new_for_transport): Use the new at_location mutex and
320         condvar API
321         (dbus_connection_allocate_data_slot): Pass in the global lock address
322         to _dbus_data_slot_allocator_alloc
323
324         * dbus/dbus-dataslot.c:
325         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
326         instead of the mutex itself
327
328         * dbus/dbus-message.c:
329         (dbus_message_allocate_data_slot): Pass in the global lock address
330         to _dbus_data_slot_allocator_alloc
331
332         * dbus/dbus-pending-call.c:
333         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
334         to _dbus_data_slot_allocator_alloc
335
336         * dbus/dbus-server.c:
337         (_dbus_server_init_base): Use the new at_location mutex API
338         (dbus_server_allocate_data_slot): Pass in the global lock address
339         to _dbus_data_slot_allocator_alloc
340
341         * test/name-test/test-threads-init.c: New test case for late thread
342         initialization
343
344 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
345
346         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
347         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
348         causes compile problems when asserts are turned off
349         Keeping _dbus_warn for printing out the message so even if
350         asserts are turned off the user gets the messages that something is 
351         wrong 
352
353 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
354
355         Patches by Kjartan Maraas <kmaraas at gnome dot org>
356
357         * bus/services.c (bus_service_list_queued_owners):
358         Add a pointer cast to fix compiler warning
359
360         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
361         return a NULL instead of FALSE since the return type
362         is not expecting a boolean
363
364         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
365         Remove unused variable
366
367         * dbus/dbus-marshal-recursive-util.c (node_new):
368         return a NULL instead of FALSE since the return type
369         is not expecting a boolean
370
371         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
372         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
373         because we are expecting a pointer not a boolean
374
375         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
376         add void as the parameter so some compilers
377         don't complain
378
379         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
380           _dbus_transport_new_for_tcp_socket):
381         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
382         because we are expecting a pointer not a boolean
383
384         * test/shell-test.c (test_command_line):
385         cast the second argument to _dbus_list_append to avoid compiler
386         warnings
387
388         * test/test-names.c (main): remove unused variable
389
390         * test/test-service.c (check_hello_from_self_reply):
391         Initialize echo_message and echo_reply to NULL
392         
393         * test/test-shell-service.c (handle_echo):
394         Remove unused variable and cast the third parameter passed to
395         dbus_connection_get_object_path_data to avoid compiler warrnings
396
397         * test/name-test/test-names.c (clear_message_queue):
398         Remove unused function
399
400         * test/name-test/test-pending-call-dispatch.c:
401         Fix format string in printf
402
403
404 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
405
406         * dbus/dbus-bus.c:
407         * test/name-test/test-names.c:
408         Remove test method dbus_bus_connection_get_unique_name because 
409         we already have public method dbus_bus_get_unique_name that 
410         does the exact same thing
411
412 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
413
414         * dbus/dbus-signature.c:
415         fix typos in Julio's previous patch which cause make check to fail
416
417 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
418
419         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
420         In any case it was wrong since this is a test checking to see if
421         address parsing is correct.  There was no need to get the true
422         tmp directory.  
423
424 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
425
426         * dbus/dbus-macros.h: Revert the addition of stddef.h
427         as we should not be adding it to library headers 
428
429 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
430
431         * dbus/dbus-signature.c:
432         Fix the unit tests so that they work if assertions are not enabled.
433         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
434
435 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
436
437         * tools/run-with-tmp-session-bus.sh:
438         * test/name-test/run-test.sh:
439         Remove bashisms (patch from Julio M. Merino Vidal
440         <jmmv at NetBSD dot org>)
441
442 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
443
444         * configure.in: add a version (>= 2.6.0) check for libxml2
445
446 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
447
448         * configure.in: make sure the compiler supports -Wfloat-equal
449         
450         * bus/dir-watch-dnotify.c: move functional code after 
451         variable declerations (C99 fix)  (patches from Jens Granseuer
452         <jensgr at gmx dot net>
453
454 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
455
456         * dbus/dbus-macros.h:
457         add #include <stddef.h> so that Sun compilers don't complain about
458         the defining NULL
459
460 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
461
462         * dbus/dbus-sysdeps.c:
463         * dbus/dbus-address.c:
464         * bus/activation.c:
465         * test/shell-test.c:
466         don't hardcode tmp directory (patch from Dave Meikle 
467         <dmk at davemeikle dot co dot uk>)
468
469 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
470
471         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
472         Change an assert to a detailed warning and abort.  
473         When allocator->lock != mutex it indicates that the user has failed
474         to initalize threads before using the D-Bus library.  This warning
475         helps the user identify the issue and fix their app.
476
477 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
478
479         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
480         with cleanups of bugs found from Coverity reports:
481
482         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
483         close the file on error to avoid a leak
484
485         * bus/expirelist.c (bus_expire_list_test):
486         Check for NULL on dbus_new0
487
488         * bus/activation.c (update_directory):
489         remove dead code
490
491         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
492         Fix some leaks
493
494         * bus/bus.c (process_config_every_time):
495         Fixed a leak
496
497         * bus/desktop-file.c (parse_key_value):
498         Fixed leak
499
500         * bus/selinux.c (bus_selinux_id_table_insert):
501         Fixed leak
502
503 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
504
505         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
506         remove dead code
507
508 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
509
510         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
511         #!/bin/bash
512
513 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
514
515         * Doxyfile.in: fix the INPUT line so we can generate docs 
516         when sourcedir != builddir (patch from Cygwin Ports maintainer
517         <yselkowitz at users dot sourceforge dot net>
518
519 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
520
521         * dbus/dbus-sysdeps.h:
522         * dbus/dbus-sysdeps.c: 
523         * dbus/dbus-string.c: 
524         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
525         GLib's function which does the same thing
526
527         * configure.in:
528         * bus/Makefile.am:
529         * bus/dir-watch-default.c:
530         * bus/dir-watch-dnotify.c:
531         * bus/dir-watch-kqueue.c:
532         Add kqueue directory watching for freebsd and split the directory
533         watching code into seperate files per method/arch
534         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
535
536 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
537
538         * configure.in:
539         * tools/Makefile.am:
540         * tools/dbus-launch.c:
541         * bus/Makefile.am:
542         allow --with-dbus-daemondir switch to be used to make the
543         daemon install to a seperate bindir like /usr/libexec
544         (patch from Brian Cameron <brian dot cameron at sun dot com)
545
546 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
547
548         * bus/Makefile.am (install-data-hook): removed the slash after 
549         $(DESTDIR) so we don't get the double slash which does not work
550         in windows (patch from Andras Porjesz 
551         <andras dot porjesz at siemens dot com>)
552
553 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
554
555         * dbus/dbus-sysdeps.h:
556         * dbus/dbus-sysdeps.c: 
557           add _dbus_printf_length (patch from Peter Kümmel 
558           <syntheticpp at gmx dot net>)
559
560 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
561
562         * dbus/dbus-internals.c: unistd.h is not used 
563         (_dbus_verbose_real): only enable verbose printing 
564         if DBUS_VERBOSE environment var is set to '1'
565         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
566
567 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
568
569         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
570         so we still compile on older gcc (patch from Frederic Peters 
571         <fpeters at 0d dot be>
572
573 2006-08-04  Havoc Pennington  <hp@redhat.com>
574
575         * configure.in: add -Wdeclaration-after-statement
576
577         * dbus/dbus-connection.c: change all the pending call stuff to
578         reflect the fact that pending call operations use the connection
579         lock
580
581         * dbus/dbus-pending-call.c: add locking here
582
583         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
584         field const consistent with how message field is done
585
586 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
587
588         * s/D-BUS/D-Bus/g
589
590 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
591
592         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
593         <in7y118 at public.uni-hamburg dot de> - fix invalid
594         read/write reported by valgrind
595
596 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
597
598         * Released 0.91
599
600 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
601
602         * dbus/dbus-connection.c:
603         (_dbus_connection_attach_pending_call_unlocked):
604         (connection_timeout_and_complete_all_pending_calls_unlocked):
605         Make sure we set timeout_added on pending calls to FALSE when
606         we remove the timeout from the connection
607
608 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
609
610         * Removed some extra bindings stuff lingering around (thanks timo)
611         * dbus-pendingcall.c (_dbus_pending_call_new): 
612         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
613         when we tried to take a lock on an already locked connection
614
615 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
616
617         * Released 0.90
618
619 2006-07-17  Havoc Pennington  <hp@redhat.com>
620
621         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
622         ints, reported by Owen Taylor
623
624 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
625
626         * doc/TODO:
627         * dbus/dbus-bus.c:
628         * dbus-errors.c:
629         * dbus/dbus-marshal-validate.c:
630           Removed TODO items which were fixed or are no longer relevent
631
632 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
633
634         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
635         Remove stray files from the stripped bindings
636
637 2006-07-16  Havoc Pennington  <hp@redhat.com>
638
639         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
640         Improve the error message on reply timeout
641
642 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
643
644         * Remove all bindings
645
646 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
647
648         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
649         and set pending_reply out arg to NULL is connection is disconnected
650         (connection_timeout_and_complete_all_pending_calls_unlocked): New
651         static method for cleaning up pending calls on disconnect
652         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
653         calls queued timeouts on disconnect 
654
655          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
656         Remove 
657
658 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
659
660         * bus/activation.[ch] (bus_activation_list_services): new function to 
661         get the list of services that can be activated
662
663         * bus/dispatch.c: test coverage for the new bus method
664         ListActivatableNames
665
666         * bus/driver.c: new bus method ListActivatableNames to get the list of
667         services that can be activated
668
669         * doc/dbus-specification.xml: ListActivatableNames method documentation
670
671 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
672         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
673         source files
674
675 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
676         * dbus/dbus-message-factory.c:
677         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
678
679 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
680         * dbus/dbus-connection-internal.h:
681         * dbus/dbus-connection.c:
682         * file dbus/dbus-pending-call.c:
683         * dbus/dbus-pending-call.h:
684         Make DBusPendingCall an opaque type even to D-Bus internals
685
686 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
687
688         * dbus/dbus-connection.h: remove connection_disconnect and replace with
689         connection_close
690
691         * dbus/dbus-connection.c: include dbus-bus.h
692         (_dbus_connection_read_write_dispatch): make static
693
694 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
695
696         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
697         function
698         (dbus_connection_dispatch): On disconnect unref any shared connections
699
700         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
701         for cleaning up shared connections on disconnect
702         (internal_bus_get): get a hard refrence to shared connections when
703         they are created
704         
705         * doc/TODO: Remove items which are no longer relevent or have been fixed
706         Split 1.0 todo items with a 0.90 freeze todo list
707  
708 2006-06-14  Ross Burton  <ross@openedhand.com>
709
710         * glib/dbus-gobject.c:
711         Free a leaking GArray (surely not!) in dbus_g_method_return.
712
713 2006-06-14  Ross Burton  <ross@openedhand.com>
714
715         * tools/Makefile.am:
716         * tools/dbus-monitor.c:
717         Don't use the GLib bindings in dbus-monitor (patch from Ralf
718         Habacker).
719         
720 2006-06-14  Ross Burton  <ross@openedhand.com>
721
722         * tools/dbus-print-message.c:
723         Also print the object path when outputting signals or method calls.
724
725 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
726
727         * qt/src/Makefile.am: install the qdbus.h header.
728         This allows people to actually use the installed code.
729
730 2006-06-12  Ross Burton  <ross@openedhand.com>
731
732         * glib/dbus-gproxy.c:
733         Don't leak a GArray when firing signals (thank Rob Taylor for review).
734
735 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
736
737         * Released 0.62
738
739 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
740
741         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
742         break pedantic builds. Closes bug 6043 (patch approved by
743         Havoc back in February).
744
745 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
746
747         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
748         that took a QDBusMessage parameter.
749         * qt/src/qdbusbus.h: Add a default flag for RequestName.
750         * qt/tools/dbus.cpp: Don't use automatic call because we might
751         be calling an async method: request a reply.
752
753 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
754
755         * test/qt/*: Update the testcases, including testing the new
756         functionality of sending null QByteArray and QString over the
757         bus. Add new headertest test and restore the old
758         qdbusxmlparser test.
759
760 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
761
762         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
763         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
764
765         * qt/examples/Makefile.am:
766         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
767         form.
768
769         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
770         QByteArray() (nulls) over the bus.
771         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
772         the one that has the signature suffix stripped.
773         * qt/src/qdbusreply.h: Make some methods const.
774
775 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
776
777         Patch from Timo Hoenig <thoenig@suse.de>.
778
779         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
780         required during build to EXTRA_DIST.
781         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
782         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
783         * configure.in: Fix "make dist", take care that the Makefile for
784         qt/dbus is being generated.
785
786 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
787
788         * bus/bus.c: Fix eavesdropping on method calls
789
790 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
791
792         * configure.in:
793         * dbus/dbus-userdb-util.c:
794         Add Solaris console owner patch from Artem Kachitchkine
795
796 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
797
798         * qt/Makfile.am:
799         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
800         reorganisation. Thanks to Timo Hoenig for pointing this out.
801
802 2006-06-06  Robert McQueen  <robot101@debian.org>
803
804         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
805           call to dbus_g_type_get_struct.
806
807 2006-06-06  Robert McQueen  <robot101@debian.org>
808
809         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
810           pointers were put into a GPtrArray-based specialised collection, and
811           then freed along with the array. GValues which you add into
812           collections or maps which have the NOCOPY flag set are assumed to not
813           belong to the caller, so rather than the existing pointer-stealing
814           semantics, they are copied instead. Given that the main consumers of
815           this abstraction are the bindings themselves, I don't think this is
816           too bad, but others should watch their choice of take vs set_static.
817
818 2006-06-06  Robert McQueen  <robot101@debian.org>
819
820         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
821           of g_slist_prepend not being used. Fixed copying of slist-based
822           specialised collections, then wrote a test case and found that it was
823           all broken. Went on to fix iterating and appending too. Good thing
824           nobody uses this code yet.
825
826 2006-06-06  Robert McQueen  <robot101@debian.org>
827
828         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
829           the iterators use gvalue_take_ptrarray_value (the GValues themselves
830           are discarded without unsetting, so it makes no difference whether
831           we take or set_static). Remove cases for G_TYPE_POINTER because
832           there really is nothing useful we can do with them in our
833           specialised types - we *need* boxed copy/free functions at the very
834           least.
835
836 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
837
838         * qt/dbus: Add directory. I had forgotten to add this
839         yesterday after the move...
840
841         * qt/examples/Makefile.am:
842         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
843
844         * qt/tools/Makefile.am:
845         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
846         Added feature to get and set properties.
847         Added validation of service, object path and interface names.
848
849         * qt/tools/dbusidl2cpp.cpp: Two new features:
850         1) Allow specifying both the header and the source file names,
851         by separating them with a colon.
852         2) Don't write an interface output if the -p switch wasn't
853         given, but the -a was.
854
855         * qt/src/*: Fix usage of Iterators and ConstIterators.
856         Fix shadowing of variables by other variables (-Wshadow).
857         Fix keyword-cleanliness in headers.
858         Fix ASCII-cast (QLatin1String, QLatin1Char).
859         Fix validation of member names.
860         Add extra checking of introspection data during XML parsing.
861         Various bug fixes.
862
863 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
864
865         * dbus/Makefile.am:
866         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
867         qt/dbus/qdbus.h now.
868
869 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
870
871         * configure.in: Make --disable-qt actually do
872           something. Patch inspired by Zack Rusin.
873
874 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
875
876         * qt/: Update to Subversion r548032.
877         This includes a big reorganisation of the files inside the
878         subdir.
879
880 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
881
882         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
883         clear:  
884         "Failed to connect to socket <host>:<port> <error>" instead of
885         "Failed to connect to socket <host>: <error>:<port>"
886
887         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
888         for a tcp transport. 
889
890 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
891
892         * qt/*: Update the QtDBus bindings up to revision 546310 in
893         Subversion.
894         This adds the dbuscpp2xml tool, that parses a C++ header and
895         outputs a D-BUS Introspection XML.
896
897 2006-05-21  Havoc Pennington  <hp@redhat.com>
898
899         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
900         is not NULL when it shouldn't be. Also a couple of possible fixes
901         for #4637 though I don't understand why the bug happens, to be
902         honest... also the object constructor has an assert name != NULL
903         and the name is only currently NULL for peer-to-peer proxies that 
904         I don't think anyone uses? So it should be asserting.
905         Anyway, for now at least see if we get an earlier assertion failure.
906
907         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
908         apparently broken code to be sure the tests fail and someone 
909         will fix them...
910
911 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
912
913         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
914         and arrays when they had a single element: has_next returns
915         false, even before you read the element. So, instead, check
916         the array length.
917
918 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
919
920         * qt/qdbusmessage.cpp:
921         * qt/qdbustypehelper_p.h:
922         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
923         the list is a const-reference
924
925 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
926
927         * Adding old doc patch that never got applied
928         
929         * dbus/bus.c (dbus_bus_add_match): Add documentation
930
931         * doc/dbus-specification.xml: Add documentation for the match rules
932           and the AddMatch and RemoveMatch methods
933
934 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
935
936         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
937         call (r535506)
938
939         * qt/dbusidl2cpp.cpp:
940         * qt/qdbusabstractadaptor.cpp:
941         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
942         sibling of the QDBusAbstractAdaptor objects instead of the
943         parent. (r535848)
944
945         * qt/dbusidl2cpp.cpp:
946         * qt/qdbusabstractinterface.cpp:
947         * qt/qdbusabstractinterface.h:
948         * qt/qdbusabstractinterface_p.h:
949         * qt/qdbusinterface.cpp: Make properties in interfaces
950         actually work. The code that was generated would not compile,
951         due to moc calls to functions that did not exist. They now
952         shall. (r536571)
953
954 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
955
956         * Makefile.am:
957         * configure.in:
958         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
959         Thanks to Brad Hards for providing the patch
960
961 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
962
963         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
964         call. (r535506)
965
966 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
967
968         * qt/examples/dbus.cpp: Enhance error messages and use
969         QDBusInterfacePtr.
970
971 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
972
973         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
974         and disable the copy operators. (r533772, r534746)
975
976         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
977
978         * qt/qdbusabstractinterface.cpp:
979         * qt/qdbusabstractinterface.h: Change the default call mode to
980         not use the event loop. Add convenience call() methods that
981         take a CallMode parameter. (r534042)
982
983         * qt/qdbusconnection.h: Change the default call mode to not
984         use the event loop. (r534042)
985
986         * qt/qdbusinterface.cpp:
987         * qt/qdbusinterface.h: Add a method to tell us if the
988         interface is valid (since we don't return a null pointer
989         anymore) (r534099)
990
991         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
992         (r534101)
993
994         * qt/qdbusinternalfilters.cpp: Decouple the introspection
995         function in two so taht we get the chance to introspect
996         without having a QDBusMessage (r534102)
997
998         * qt/qdbusbus.h:
999         * qt/qdbusconnection.cpp:
1000         * qt/qdbusconnection_p.h:
1001         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1002         avoid a round-trip to the server when attempting to introspect
1003         one of our own objects. Also make sure the filter functions
1004         match the empty interface as well. (r534108)
1005         Don't keep the connection names. Instead, trust the unique
1006         connection name (r534111)
1007         Remove event loop usage (r534112)
1008
1009 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1010
1011         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1012         Brad Hards.
1013
1014 2006-04-28  Robert McQueen  <robot101@debian.org>
1015
1016         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1017         any order, making it easier for people who inherit from this
1018         object.
1019
1020 2006-04-28  Robert McQueen  <robot101@debian.org>
1021
1022         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1023         of memory from within pointer arrays and lists. Fixes bug #6300.
1024
1025 2006-04-28  Robert McQueen  <robot101@debian.org>
1026
1027         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1028         generating struct signatures. Fixes bug #6083.
1029
1030 2006-04-28  Robert McQueen  <robot101@debian.org>
1031
1032         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1033         to qdbusconnection_p.moc.
1034
1035 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1036
1037         * README, INSTALL: Doc fixes
1038         Patch from Brad Hards <bradh at frogmouth.net>
1039
1040 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1041
1042         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1043         the dynamic meta object. No need to guess which interface to
1044         call.
1045
1046 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1047
1048         * qt/qdbusconnection_p.h:
1049         * qt/qdbusmetaobject.cpp:
1050         * qt/qdbusmetaobject_p.h:
1051         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1052         for the dynamic meta object. No need to guess which
1053         interface to call.
1054         * qt/qdbusabstractinterface_p.h:
1055         * qt/qdbusconnection.cpp:
1056         * qt/qdbusintegrator.cpp:
1057         * qt/qdbusinterface.cpp:
1058         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1059         Add a QDBusRef that looks and behaves like DCOPRef.
1060
1061 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1062
1063         * dbus/dbus-connection.c: Interfaces are optional in method
1064         calls, so don't give up if the interface parameter is NULL.
1065         Patch reviewed by Havoc Pennington.
1066
1067 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1068
1069         * qt/qdbusreply.h: Add default constructor and operator=
1070           (r532625)
1071         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1072           in public headers (r532952)
1073         * qt/qdbusabstractinterface.cpp:
1074         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1075           make it the default (r532951)
1076
1077 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1078
1079         * dbus/dbus-connection.c: Fix asserts
1080         Patch from Tim Moloney <t.moloney at verizon.net>
1081
1082 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1083
1084         * mono/Connection.cs, mono/Message.cs: Check Target type
1085         Patch from Aaron Bockover (abockover at novell.com)
1086
1087 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1088
1089         * INSTALL: fine-tune the requirements for the Qt4 binding.
1090
1091 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1092
1093         * tools/dbus-print-message.c: Added support for printing of all 
1094           remaining data types. Fixed logic for indentation of compound
1095           data types.
1096         
1097 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1098
1099         * INSTALL: fill out content of file providing DBus specific
1100           build installations, followed by generic Auto* INSTALL file
1101           content
1102         
1103 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1104
1105         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1106           Patch by Stefan Eilers. (r529537)
1107
1108 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1109
1110         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1111           contents (r528208)
1112
1113 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1114
1115         * qt/Makefile.am: fix the dependency for
1116           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1117           not in qdbusconnection.cpp.
1118           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1119           spotting this.
1120
1121 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1122
1123         * qt/examples/listnames.cpp:
1124         * qt/examples/Makefile.am: Three ways to list the names on the
1125           bus.
1126
1127 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1128
1129         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1130           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1131
1132 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1133
1134         Merge from Subversion:
1135         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1136           something that exists (r526315)
1137         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1138           slots/signals (r526316)
1139         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1140           also return an unknown-method error if the parameters don't
1141           match for org.freedesktop.DBus.Properties. (r526842)
1142         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1143         * qt/qdbusintegrator.cpp: Restore the proper order of
1144           delivery: don't make method returns be delivered on priority
1145           (r528150)
1146
1147 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1148
1149         * configure.in qt/Makefile.am: add qt/examples
1150         * qt/examples: Add QtDBus example programs:
1151           - hello: Hello, World
1152           - ping: Simple method-calling program
1153           - pong: Simple object-exporting program (not using adaptors)
1154           - complexping: Interactive method-calling program 
1155                 (also gets and sets properties).
1156           - complexpong: Sample program exporting methods, signals and
1157                 properties, using adaptors.
1158           - dbus: Simple implementation of a generic method-calling
1159                 program, similar to 'dbus-send', but with semantics
1160                 similar to 'dcop'.
1161           - chat: Simplistic chat program, implemented using signals
1162                 and the system bus. Looks like IRC.
1163
1164 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1165
1166         * configure.in: Detect QtGui (necessary for one of the
1167           example programs). Note: this increases the minimum required
1168           version of Qt to 4.1.3.
1169
1170 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1171
1172         * test/qt/*: Sync with KDE Subversion revision 523647.
1173         Update the testcases to the new API. Remove testcases for
1174         classes that are no longer public or have been removed.
1175
1176 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1177
1178         * qt/*: 
1179         * dbus/qdbus.h: Sync with KDE Subversion revision
1180         523647. Hopefully, this will be the last of the
1181         source-incompatible changes. Documentation has been improved;
1182         support for QList<basic-types> has been added; QDBusObject is
1183         gone; QDBus(Abstract)Interface is now a QObject with
1184         auto-generated meta-object; QDBusIntrospection is marked
1185         private, since QMetaObject can be used now; lots of bugfixes.
1186
1187 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         Patch from Milosz Derezynski <internalerror at gmail.com>
1190         
1191         * configure.in:
1192         Output the service directory in the configure summary
1193
1194         * dbus-1.pc.in:
1195         Add session_bus_services_dir
1196
1197 2006-03-10  Ross Burton  <ross@openedhand.com>
1198
1199         * tools/dbus-print-message.c:
1200         Add support for object paths and signatures.
1201
1202 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1203
1204         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1205         config reload.
1206         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1207         information caches
1208         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1209         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1210         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1211         * dbus/dbus-userdb.h: Add function to flush all user/group information
1212         caches.
1213
1214 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1215
1216         * qt/dbusidl2cpp.cpp:
1217         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1218         for dcopidl2cpp, found in the KDE installations (or the more
1219         modern kalyptus): generate Qt4 C++ code for the input XML
1220         introspection. Currently no IDL parsing.
1221
1222 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1223
1224         * test/qt/*: Update the self-tests.
1225
1226 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1227
1228         * qt/*: 
1229         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1230         represents the first feature-complete version of the Qt4
1231         bindings since I took ove maintainership.
1232
1233 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1234
1235         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1236         dir. This is C++, so we can't use the DBus ones.
1237
1238 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1241         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1242
1243 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * dbus/dbus-connection.c: 
1246         (_dbus_connection_block_pending_call):
1247         Check to see if our data has already been read off the connection
1248         by another blocking pending call before we block in poll.
1249         (check_for_reply_and_update_dispatch_unlocked):
1250         Code taken from _dbus_connection_block_pending_call - checks for
1251         an already read reply and updates the dispatch if there is one.
1252
1253         * test/name-test/test-pending-call-dispatch.c:
1254         New test for making sure we don't get stuck polling a 
1255         dbus connection which has no data on the socket when
1256         blocking out of order on two or more pending calls.
1257
1258 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1259
1260         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1261         make/automake don't detect that we're talking about the same
1262         .lo file if I specify the full path to the source files.
1263
1264 2006-02-26  Havoc Pennington  <hp@redhat.com>
1265
1266         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1267
1268         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1269         session bus variable is unset, suggest "man dbus-launch" and "man
1270         dbus-daemon" to figure out how to fix the problem
1271
1272 2006-02-25  Havoc Pennington  <hp@redhat.com>
1273
1274         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1275         should make this thing use the new glib options parser
1276
1277 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1278
1279         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1280         .lo files taking moc sources.
1281
1282 2006-02-25  Havoc Pennington  <hp@redhat.com>
1283
1284         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1285         and install it as a public header
1286
1287 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * Released 0.61
1290
1291 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1292         
1293         * proxies.py: Fix the callchain
1294
1295 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1296         
1297         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1298
1299         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1300         dbus/dbus-sysdeps.c
1301
1302         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1303         call _dbus_group_info_free_allocated which causes infinite loop,
1304         correctly call _dbus_group_info_free
1305
1306 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1307
1308         * qt/qdbusinterface_p.h:
1309         * qt/qdbusinterface.cpp: Use the standard
1310         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1311         calls instead of creating one for us.
1312
1313         * qt/qdbusconnection_p.h:
1314         * qt/qdbusintegrator.cpp: Remove debugging code.
1315
1316         * qt/qdbusintegrator.cpp:
1317         * qt/qdbusmessage.cpp:
1318         * qt/qdbusmessage_p.h:
1319         * qt/qdbusmessage.h: Change the behaviour of automatic
1320         reply-sending: now a reply is always sent, unless the caller
1321         didn't request one or if the user slot has already sent one.
1322
1323 2006-02-16  Robert McQueen  <robot101@debian.org>
1324
1325         * configure.in: Patch from Debian packages by Sjoerd Simons
1326         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1327         arguments so it's possible to build both bindings in the
1328         same tree.
1329
1330         * qt/Makefile.am: Fix truncated value so that make dist works.
1331
1332 2006-02-16  Robert McQueen  <robot101@debian.org>
1333
1334         * acinclude.m4, configure.in: Patch from Brad Hards
1335         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1336         improving quoting, re-ordering a few checks, and a few other
1337         aesthetic tidy-ups.
1338
1339 2006-02-16  Robert McQueen  <robot101@debian.org>
1340
1341         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1342         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1343         assertion that the next element to read from the iter is fixed in
1344         size. This is not the case when you are at the end of the iter,
1345         because the next element type is INVALID.
1346
1347         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1348         a bogus assert which means that you may not initialise a 0-length
1349         string unless you provide a non-NULL pointer. This prevented
1350         you from marshalling messages containing zero-length arrays in
1351         some cases.
1352
1353         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1354         from Rob to correct bogus asserts when trying to demarshal an
1355         array and get_fixed_array got you 0 elements. Append nothing to
1356         the GArray in this case.
1357
1358         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1359         an empty array via the glib bindings. Without all of the above
1360         patches, this new test fails.
1361
1362 2006-02-16  Robert McQueen  <robot101@debian.org>
1363
1364         * glib/dbus-gmain.c: Make the previous commit compile.
1365
1366         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1367         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1368         specify sender_keyword="foo", path_keyword="bar" when adding
1369         a signal listener, so that you can bind to signals generically
1370         but still do something useful in your callback.
1371
1372         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1373         chars so that they're not cast to chars and made negative. Thanks
1374         to Jakub Stachowski for reporting this and testing the fix.
1375
1376 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1377
1378         * dbus/dbus-glib.h:
1379         * glib/dbus-gmain.h:
1380         (dbus_g_connection_open): new method for openning
1381         a connection to an arbitrary address in the glib bindings
1382
1383         * ChangeLog: checkin last entry which doesn't seem to be commited
1384
1385 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * tools/dbus-launch.c: Fixed sh syntax output
1388
1389 2006-02-13  Robert McQueen  <robot101@debian.org>
1390
1391         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1392         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1393         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1394         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1395         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1396         missing piece of the glib bindings jigsaw puzzle. This modifies
1397         the existing specialised types to have N type parameters (rather
1398         than the current 1 or 2 for arrays and dictionaries respectively).
1399         You can then use this to get a glib type to represent any arbitrary
1400         D-Bus struct type using dbus_g_type_get_struct. The only
1401         implementation of these types is with GValueArrays as before,
1402         but it's now possible to store these in arrays, emit them in
1403         signals, etc.
1404
1405 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1406
1407         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1408         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1409         <thiago.macieira at trolltech.com>
1410
1411 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1414         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1415
1416 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * bus/connection.c (bus_connections_expect_reply): Make
1419         pending reply limit not common to all connections (Bug #5416)
1420         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1421
1422 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1423
1424         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1425
1426 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1429         patch from Doug Goldstein <cardoe at gentoo.org>
1430
1431 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1432
1433         * mono/Arguments.cs: Fix a magic number in the mono bindings
1434         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1435
1436 2006-01-27  Robert McQueen  <robot101@debian.org>
1437
1438         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1439         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1440         when generating the client-side methods, instead of overloading
1441         CSymbol which broke everything horribly. My apologies.
1442
1443 2006-01-27  Robert McQueen  <robot101@debian.org>
1444
1445         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1446         by me and Rob Taylor to add a simple_free function to D-Bus map
1447         and collection types, which allows those types which can be freed
1448         with a GDestroyNotify (such as GHashTables and GArrays, but not
1449         GPtrArrays) to be stored as the values in hashtables.
1450
1451         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1452         Patch by Rob Taylor to add nested dicts to the glib tests to check
1453         the above code works, and appears not to leak when called repeatedly.
1454
1455 2006-01-27  Robert McQueen  <robot101@debian.org>
1456
1457         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1458         to free a D-Bus allocated string with dbus_free () instead of
1459         g_free ().
1460
1461 2006-01-27  Iain Holmes  <iain@openedhand.com>
1462
1463         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1464         method from being called multiple times.
1465
1466 2006-01-19  Robert McQueen  <robot101@debian.org>
1467
1468         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1469         <rob.taylor@collabora.co.uk> to add support for generating bindings
1470         to arrays that are represented as GPtrArrays rather than GArrays (ie
1471         size-variable things, such as strings, objects, structs, etc).
1472
1473 2006-01-05  Robert McQueen  <robot101@debian.org>
1474
1475         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1476         <ricardo.kekki@movial.fi> to make it possible to inherit from
1477         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1478         a private part, and moving the setting of the DBusGProxyManager into a
1479         connection property, allowing proper GObject construction.
1480
1481 2006-01-05  Robert McQueen  <robot101@debian.org>
1482
1483         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1484         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1485         annotations when generating glib client bindings.
1486
1487 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1490
1491         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1492
1493 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1494
1495         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1496
1497 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1498
1499         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1500
1501 2005-12-19  Ross Burton  <ross@openedhand.com>
1502
1503         * doc/dbus-tutorial.xml:
1504         Document the Glib client-side bindings, and list all possible annotations.
1505
1506 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1507
1508         * dbus/bus.c (dbus_bus_release_name): Add documentation
1509
1510 2005-12-06  Robert McQueen  <robot101@debian.org>
1511
1512         * python/service.py: s/sucessful/successful/ so we're allocating to
1513         and reading from the same variable. Oops.
1514
1515 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * Released 0.60
1518
1519 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1520
1521         * test/qt/Makefile.am: build from srcdir
1522
1523         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1524         Note - this code is wrong and needs to be fixed by the Qt binding
1525         developers.  The flags should be treated as bitfields and not enums.
1526
1527         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1528
1529 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1532           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1533           in production code
1534
1535 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1536
1537         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1538         method for getting messages off the bus in the absence of a
1539         mainloop.  This method is much like 
1540         dbus_connection_read_write_dispatch except it does not dispatch
1541         the messages to a registered filter function.  Instead it
1542         allows a developer to process messages by directly popping
1543         them off the bus.
1544
1545 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1546
1547         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1548         the parser to continue instead of returning error
1549         (bus_desktop_file_load): Do not free parser data when
1550         parse_section_start or parse_key_value fails because it was 
1551         already freed by parser_free (patch from Carlos Garcia Campos  
1552         <carlosgc at gnome.org>)
1553
1554 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1555
1556         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1557         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1558         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1559         test/test-segfault.c, test/test-utils.c,
1560         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1561         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1562         Various cleanup of dead code and compiler warnings (patch from
1563         Kjartan Maraas <kmaraas at gnome.org>) 
1564
1565 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1568         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1569
1570 2005-11-27  Robert McQueen  <robot101@debian.org>
1571
1572         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1573         part of the preceding one. Oops. Merge patch by Johan Hedberg
1574         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1575         on big-endian platforms.
1576
1577         * test/python/test-client.py: Add some 16-bit integers to the test
1578         values.
1579
1580 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1581
1582         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1583         method return message for property getters
1584
1585 2005-11-27  Robert McQueen  <robot101@debian.org>
1586
1587         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1588         with type v of an instance of dbus.Variant(foo, type='x') caused
1589         it to be boxed twice before sending over the bus.
1590
1591         * python/dbus_bindings.pyx, python/service.py,
1592         test/python/test-client.py: Update the constants for the new
1593         request_name flags, and update comments/test cases now that queueing
1594         is the default action.
1595
1596 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * configure.in:
1599         - Change version to 0.60 for impending release
1600         - upped the sonames because of ABI and API breakage
1601
1602 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1603
1604         * configure.in: Add test/name-test/Makefile to the generated
1605         Makefile list
1606
1607         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1608         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1609         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1610         not to queue an ower if it can't be the primary owner
1611
1612         * bus/bus.h: Add new internal BusOwner struct
1613
1614         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1615         to bus_registry_ensure and don't set the prohibit_replacement flag
1616         since they are now set per BusOwner and not per name.
1617         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1618         that returns the list of connections in a name's connection queue
1619         
1620         * bus/services.c (struct BusService): remove prohibit_replacement field
1621         (struct BusOwner): new struct for keeping track of queued connections
1622         and their associated flags for the queue
1623         (struct BusRegistry): add a BusOwner memory pool
1624         (bus_registry_new): initialize the BusOwner memory pool
1625         (bus_registry_unref): free the BusOwner memory pool
1626         (_bus_service_find_owner_link): new internal method for
1627         searching the queue for a specific connection
1628         (bus_owner_set_flags): new method for adding setting the flags on a
1629         bus owner
1630         (bus_owner_new): new method that creates a BusOwner object from the
1631         pool and sets its flags
1632         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1633         (bus_registry_ensure): Add the flags parameter
1634         (bus_registry_acquire_service): Switch from using raw connections to
1635         using the BusOwner struct
1636         Add new state machine for dealing with the new set of flags
1637         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1638         cancel_ownership, free_ownership_cancel_data, 
1639         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1640         restore_ownership, free_ownership_restore_data, 
1641         add_restore_ownership_to_transaction): Switch to using BusOwner 
1642         instead of raw connections
1643         (bus_service_add_owner): Add flags parameter
1644         Switch to using BusOwner instead of raw connections
1645         Add state machine for dealing with the new set of flags
1646         (bus_service_swap_owner): Swaps the first and second owners in the
1647         queue.  Used to make sure proper signals are sent when a service looses 
1648         or gains primary ownership.  We never insert an owner at the top of the
1649         queue.  Instead we insert it in the second position and then swap.
1650         (bus_service_remove_owner): Remove the owner from the queue sending
1651         out the NameLost and NameOwnerChanged signals if the we were the 
1652         primary owner
1653         (bus_service_get_primary_owners_connection): New method that extracts
1654         the connection from the primary owner
1655         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1656         connection
1657         (bus_service_get_allow_replacement): Changed from the old 
1658         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1659         primary owner and returns if it can be replaced or not
1660         (bus_service_set_prohibit_replacement): removed
1661         (bus_service_has_owner): returns TRUE if and owner with
1662         the specified connection exists in the queue
1663         
1664         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1665         method that only compiles if tests are enabled.  Allows us to get the 
1666         unique name of a connection so we can check it against the queue when
1667         doing regression tests
1668
1669         * bus/activation.c (bus_activation_send_pending_auto_activate),
1670         bus/dispatch.c (bus_dispatch),  
1671         bus/driver.c (bus_driver_handle_get_service_owner, 
1672         bus_driver_handle_get_connection_unix_user, 
1673         bus_driver_handle_get_connection_unix_process_id,
1674         bus_driver_handle_get_connection_selinux_security_context),
1675         bus/signals.c (connection_is_primary_owner): 
1676         use bus_service_get_primary_owners_connection instead of
1677         bus_service_get_primary_owner
1678
1679         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1680         _dbus_listen_unix_socket): Calculate the length of the socket
1681         path and use that instead of using a fixed length which was
1682         causing socket names to contain many trailing Nul bytes.
1683
1684         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1685         (dbus_g_method_get_sender): New method for extracting the sender 
1686         from a DBusGMethodInvocation
1687         (dbus_g_method_return_get_reply): changed name to 
1688         dbus_g_method_get_reply
1689         (dbus_g_method_return_send_reply): changed name to
1690         dbus_g_method_send reply
1691
1692         * doc/dbus-specification.xml: New docs that describe how the new
1693         queueing system works and talks about the changes to the how
1694         we specify socket names
1695
1696         * glib/examples/example-service.c, 
1697         glib/examples/example-signal-emitter.c,
1698         glib/examples/statemachine/statemachine-server.c:
1699         Changed the RequestName flags to the new system
1700
1701         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1702         regression test suite for testing various states of the new
1703         queueing system
1704         
1705 2005-11-15  Robert McQueen  <robot101@debian.org>
1706
1707         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1708         Taylor to add two methods, dbus_g_method_return_get_reply and
1709         dbus_g_method_return_send_reply, to allow you to get the reply
1710         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1711         and send it. The GLib bindings can't marshal a return value of
1712         something like a(s) if the array is empty - ultimately they should be
1713         made to heed the signature of the out arguments as the Python bindings
1714         now can, but this is a workable interim solution which might have
1715         other applications.
1716
1717 2005-11-15  Robert McQueen  <robot101@debian.org>
1718
1719         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1720         method to org.freedesktop.DBus to release a bus name or give up
1721         waiting in the queue for it.
1722
1723         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1724         dbus_bus_release_name method to send the ReleaseName method calls.
1725         Add constants for the return values to dbus/dbus-shared.h.
1726
1727         * doc/dbus-specification.xml: Document the new ReleaseName method
1728         in the specification.
1729
1730         * python/dbus_bindings.pyx: Add a low-level python binding for the
1731         release name method.
1732
1733         * python/exceptions.py, python/service.py: Make freeing BusName
1734         objects release the name. Add a NameExistsException, and fix a
1735         bug with creating UnknownMethodException.
1736
1737         * test/python/test-client.py: Add tests for freeing BusName
1738         objects causing names to be released.
1739
1740 2005-11-14  Robert McQueen  <robot101@debian.org>
1741
1742         * python/service.py: Include the traceback in the error reply when we
1743         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1744
1745 2005-11-14  David Zeuthen  <davidz@redhat.com>
1746
1747         Patch from Timo Hoenig <thoenig@suse.de>.
1748
1749         * bus/bus.c: I've recently investigated why the automatic reload
1750         of configuration files does not work as expected.
1751
1752         Currently, reloading configuration files does only work when
1753         running dbus-daemon with --nodaemon.  If we are running as daemon
1754         we're hitting a dnotify bug once we fork the process.
1755
1756         We're initializing the dnotify fds before calling fork().  Once
1757         the child process forked it does still have the fds (and they
1758         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1759         getting SIGIO as changes are made to the configuration files.
1760
1761         The attached patch moves the initialization of the dnotify fds to
1762         process_config_postinit().  This is safe for all current code
1763         paths and solves the dnotify disfunction.  If we're running
1764         dbus-daemon as daemon the fds for dnotify are now being
1765         initialized after fork() for the child process.
1766
1767         * configure.in: The current configure.in check for dnotify probes
1768         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1769         match for 'xlinux', too. Additionally I have adapted the configure
1770         option's style to match with the others.
1771
1772 2005-11-14  Robert McQueen  <robot101@debian.org>
1773
1774         * python/decorators.py, python/service.py: Add a new argument to the
1775         dbus.service.method decorator called sender_keyword, which if set,
1776         specifies the name of an argument which will be provided the bus
1777         name of the method caller.
1778
1779         * test/python/test-client.py, test/python/test-service.py: Add a
1780         method and test to check the sender_keyword functionality.
1781
1782 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1783
1784         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1785         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1786         Simons <sjoerd at luon.net>)
1787
1788         * AUTHORS: Add Robert McQueen for his work on the Python
1789         Bindings and other parts of D-Bus
1790
1791 2005-11-07  Robert McQueen  <robot101@debian.org>
1792
1793         * python/decorators.py: Change emit_signal function to use the
1794         signature annotation of the signal when marhsalling the arguments from
1795         the service. Fix a bug where the code checking signature length
1796         against argument length referenced the wrong variable.
1797
1798         * python/introspect_parser.py: Avoid adding the type signature of
1799         signal arguments to any methods which occur after them in the
1800         introspection data (!) by making the parser a little more careful
1801         about its current state.
1802
1803         * python/service.py: Remove debug prints from last commit (again :D).
1804
1805         * test/python/test-client.py, test/python/test-service.py: Add test
1806         signals with signature decorators to test the strict marshalling code
1807         gives errors at the right time. Could do with checking the signals
1808         actually get emitted too, given that the test does nothing with
1809         signals at the moment...
1810
1811 2005-11-07  Robert McQueen  <robot101@debian.org>
1812
1813         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1814         instances to stop madness of creating new instances representing
1815         the same bus connection all the time, rendering any tracking of
1816         match rules and bus names quite meaningless. Caught a bug where
1817         the private argument to SessionBus() and friends was being passed
1818         in as use_default_mainloop by mistake. Still some problems with
1819         multiple dbus_binding.Connection instances representing the same
1820         low-level connection (eg when you use both SessionBus() and
1821         StarterBus() in same process), but it's a lot better now than it
1822         was.
1823
1824         * python/dbus_bindings.pyx: Add constants with the return values
1825         for bus_request_name().
1826
1827         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1828         and retrieve the same instances for the same name, so deletion can be
1829         done with refcounting. Also now throws some kind of error if you
1830         don't actually get the name you requested, unlike previously...
1831
1832         * test/python/test-client.py: Add tests for instance caching of buses
1833         and bus name objects.
1834
1835 2005-11-04  Robert McQueen  <robot101@debian.org>
1836
1837         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1838         marshalling of boolean values. Add some booleans to the values in
1839         the test client.
1840
1841         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1842         argument to the dbus.service.method decorator, which allows you to
1843         name arguments to take two callback functions for replying with
1844         return values or an exception.
1845
1846         * test/python/test-client.py, test/python/test-service.py: Add test
1847         case using asynchronous method reply functions, both return values and
1848         errors, and from within both the function itself and from a mainloop
1849         callback.
1850
1851         * python/decorators.py, python/service.py: Perform checking that the
1852         number of method/signal arguments matches the number of types in the
1853         signature at class loading time, not when you first introspect the
1854         class.
1855
1856         * python/service.py: Remove debug print left by the last commit.
1857
1858 2005-11-03  Robert McQueen  <robot101@debian.org>
1859
1860         * python/service.py: Heavy refactoring of method invocation, with
1861         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1862         in favour of a new _message_cb that uses seperate functions for
1863         looking up the method to call, marshalling the return values, and
1864         sending exceptions as errors, and is easier to follow as a
1865         consequence.  Fixes some corner cases about returning things that
1866         don't match your declared out_signature, allows exceptions to define
1867         _dbus_error_name and have it be sent over the bus as the error name,
1868         and paves the way for cool stuff like heeding the message no reply
1869         flag, asynchronous method implementations, informing the method of the
1870         sender, and including backtraces in the error messages.
1871
1872         * test/python/test-client.py: Catch and print exceptions thrown in the
1873         async callback tests, rather than passing them to the low-level
1874         bindings to be ignored in a noisy and frustrating manner.
1875
1876 2005-11-03  Robert McQueen  <robot101@debian.org>
1877
1878         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1879         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1880         tweak others to be consistent.
1881
1882         * test/python/test-client.py: Tweak output of testInheritance.
1883
1884 2005-10-29  Robert McQueen  <robot101@debian.org>
1885
1886         * python/service.py: Major changes to allow multiple inheritance
1887         from classes that define D-Bus interfaces:
1888         
1889          1. Create a new Interface class which is the parent class of
1890             Object, and make the ObjectType metaclass into InterfaceType.
1891         
1892          2. Patch written with Rob Taylor to replace use of method_vtable
1893             with code that walks the class's __MRO__ (method resolution order)
1894             to behave like Python does when invoking methods and allow
1895             overriding as you'd expect. Code is quite tricky because
1896             we have to find two methods, the one to invoke which has the
1897             right name and isn't decorated with the /wrong/ interface,
1898             and the one to pick up the signatures from which is decorated
1899             with the right interface.
1900         
1901             The same caveats apply as to normal multiple inheritance -
1902             this has undefined behaviour if you try and inherit from two
1903             classes that define a method with the same name but are
1904             decorated with different interfaces. You should decorate
1905             your overriding method with the interface you want.
1906         
1907          3. Replace grungy introspection XML generation code in the metaclass
1908             with dictionaries that cope correctly with multiple inheritance
1909             and the overriding of methods. This also uses the signature
1910             decorations to provide correct introspection data, including
1911             the debut appearance of the types of your return values. :D
1912
1913         * test/python/test-client.py, test/python/test-service.py: Add a test
1914         case to try invoking an method that overrides one inherited from a
1915         D-Bus interface class.
1916
1917 2005-10-29  Robert McQueen  <robot101@debian.org>
1918
1919         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1920         Add checking for the end of struct character when marshalling a
1921         struct in MessageIter.append_strict.
1922
1923         * python/examples/example-service.py,
1924         python/examples/gconf-proxy-service.py,
1925         python/examples/gconf-proxy-service2.py: Update to use gobject
1926         mainloop directly rather than appearing to depend on gtk.
1927
1928         * python/test/test-client.py, python/test/test-server.py: Remove
1929         obsolete and broken test scripts for old bindings. We have up to date
1930         and working tests in test/python/.
1931
1932 2005-10-29  Robert McQueen  <robot101@debian.org>
1933
1934         * python/decorators.py: Add optional arguments to the method and
1935         signal decorators to allow you to specify the signature of arguments
1936         and return values. Preserve the doc strings of signal functions in the
1937         decorated version, for pydoc and friends.
1938
1939         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1940         parse_signature_block function with an iterable dbus.Signature()
1941         type. Fix a bug in MessageIter.append_strict where you could append
1942         anything by claiming it was a string.
1943
1944         * python/service.py: Use the out_signature decoration on methods to
1945         marshal return values, meaning you no longer require dbus.Array()
1946         or dbus.Dictionary() to indicate the type when returning empty
1947         arrays or dictionaries. Fix a bug where exceptions which are defined
1948         in __main__ are not turned into error replies.
1949
1950         * test/python/test-client.py, test/python/test-service.py: Add test
1951         for correct marshalling of return values according to out_signature.
1952         Fix a bug in the async call test where the error_handler is missing a
1953         self argument.
1954
1955 2005-10-29  Robert McQueen  <robot101@debian.org>
1956
1957         * glib/Makefile.am, glib/examples/Makefile.am,
1958         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1959         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1960
1961         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1962
1963         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1964         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1965         the command line.
1966
1967 2005-10-27  Ross Burton  <ross@openedhand.com>
1968
1969         * dbus/dbus-marshal-header.c:
1970         Remove dead code.
1971
1972         * glib/dbus-gobject.c:
1973         Stop compiler warning.
1974
1975 2005-10-25  Ross Burton  <ross@openedhand.com>
1976
1977         * dbus/dbus-auth.c:
1978         * dbus/dbus-server-unix.c:
1979         * dbus/dbus-transport-unix.c:
1980         * glib/dbus-gmain.c:
1981         * glib/dbus-gobject.c:
1982         Add some const keywords.
1983
1984 2005-10-25  Ross Burton  <ross@openedhand.com>
1985
1986         * doc/dbus-specification.xml:
1987         Document the NoReply annotation.
1988
1989         * glib/dbus-binding-tool-glib.h:
1990         * glib/dbus-binding-tool-glib.c:
1991         Respect the NoReply annotation.
1992
1993 2005-10-24  Robert McQueen <robot101@debian.org>
1994
1995         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1996         derive from unicode instead of str, and encode/decode UTF-8 when
1997         marshalling/unmarshalling bus messages
1998
1999         * python/introspect_parser.py: encode introspection data as UTF-8
2000         before passing the buffer into libxml2
2001
2002         * test/python/test-client.py: add unicode test strings
2003
2004         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2005         ignore generated python test files
2006
2007 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2008
2009         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2010         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2011         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2012
2013         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2014         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2015         when constructing struct signatures
2016
2017         * python/_dbus.py (Bus): handle private connections using the
2018         private keyword in the constructor. defaults to private=False
2019         (Bus::close): new method to close a connection to the bus
2020
2021         * python/dbus_bindings.pyx (Connection::close): renamed method
2022         was previously called disconnect
2023         (bus_get): now supports getting a private connection
2024
2025         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2026         keyword is set to True.  if it is, execute the method without waiting
2027         for a reply
2028         (ProxyObject::_introspect_execute_queue): new method for executing
2029         all the pending methods that were waiting for the introspect to
2030         finish.  this is called when introspect either succeeds or fails
2031         (ProxyObject::_introspect_error_handler): call queued methods
2032
2033 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2034
2035         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2036         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2037
2038         * python/service.py (Object::_message_cb): handle exceptions correctly
2039         by sending them over the wire to the calling app.  This makes sure
2040         the client returns immediately instead of waiting the 15 seconds to
2041         timeout.
2042
2043         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2044         Add a test to benchmark how long it takes to introspect a service and 
2045         call a method which returns a large element (pretty fast)
2046
2047         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2048         method which pushes a lot of data
2049
2050 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2051
2052         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2053         reclaim memory outside of the loop and use del istead of just setting
2054         the key to None
2055
2056 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * python/service.py (ObjectType::_reflect_on_signal): Always close
2059         signal tag even when there are no arguments
2060
2061 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * configure.in: Set mono, mono-docs and Qt3 to default
2064         to no instead of auto when building.  These bindings do not
2065         have full time maintainers and will not be supported for the
2066         1.0 release.
2067
2068 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2069
2070         patches from Michael Krivoruchko <misha at sun.com>: 
2071         
2072         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2073         _dbus_connection_message_sent, 
2074         _dbus_connection_send_preallocated_unlocked_no_update, 
2075         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2076         is NULL when calling _dbus_verbose
2077
2078         * configure.in: check for functions getpeerucred and getpeereid
2079
2080         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2081         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2082         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2083         Patch was only tested on Solaris 10 x86 so it might be issues
2084         with other platforms (i.e. BSDs and MacOSX)
2085         
2086
2087 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2088
2089         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2090         instead of marshal basic so we can handle recursive types in a variant
2091
2092         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2093         in variants
2094
2095         * test/glib/test-service-glib.c, test-service-glib.xml
2096         (my_object_echo_variant [EchoVariant], 
2097         my_object_process_variant_of_array_of_ints123
2098         [ProcessVariantOfArrayOfInts123]): 
2099         Add two test methods
2100
2101         * python/introspect_parser.py: New module for parsing introspect
2102         data.
2103
2104         * python/dbus_bindings.pyx:
2105         (various places): when throwing errors fix to use errormsg instead 
2106         of message local variable because Pyrex can get confused with other 
2107         message variables (initial patch by Robert McQueen 
2108         <robert.mcqueen at collabora.co.uk>)
2109         (MessageIter::parse_signature_block): new method for getting the next
2110         block in a signiture.
2111         (MessageIter::append_strict): new method for appending values strictly
2112         using the passed in signature instead of guessing at the type
2113         (MessageItter:: append_dict, append_struct, append_array): use 
2114         signatures to marshal children if the signature is available
2115         
2116         * python/exceptions.py (IntrospectionParserException): new exception
2117
2118         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2119         introspected signatures if available, else we fall back to the
2120         old way of doing things.
2121         (ProxyObject::_introspect_reply_handler ): parse introspection data
2122         
2123         * python/service.py (ObjectType::_reflect_on_method): Properly
2124         terminate <method> if there are no args in the reflection data
2125
2126         * test/python/test-client.py: add tests for talking with the GLib
2127         test server.  This gives us better coverage for introspection since
2128         python to python will always generate arguments as variants.  It also
2129         allows us to test the robustness of the GLib bindings and interlanguage
2130         communications.
2131
2132         
2133 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2134
2135         * bus/driver.c (bus_driver_handle_introspect): Add signals
2136         to the introspect data. (patch from Daniel P. Berrange 
2137         <dan at berrange.com>)
2138
2139         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2140         
2141         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2142         _dbus_connection_run_builtin_filters): Changed these to
2143         be unlock_no_update functions and call 
2144         _dbus_connection_send_unlocked_no_update instead of
2145         dbus_connection_send to avoid locking errors.
2146         
2147         * doc/TODO: Removed the make Ping test TODO
2148         
2149 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2150
2151         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2152         We now copy the message from a DBusError and then free 
2153         the error object befor throwing the error
2154
2155         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2156         DBusBindingOutputMode enum which was causing a warning.
2157         #include <time.h> so using time_t is explicitly defined
2158
2159 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2162         - dbus/dbus-bus.c
2163         (internal_bus_get): new method that take over the heavy lifting
2164         of dbus_bus_get and adds the ability to get a private connection
2165         to the bus
2166         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2167         interface as in previous versions
2168         (dbus_bus_get_private): new method that is a wrapper to 
2169         internal_bus_get to get a private connection to the bus
2170
2171         - dbus/dbus-bus.h
2172         (dbus_bus_get_private): add as a public libdbus interface
2173
2174         - dbus-1.pc.in: output system_bus_default_address and 
2175         sysconfdir variables so apps can use them when compiling
2176
2177 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2178         * dbus/qt: New Qt bindings
2179
2180 2005-09-12  Waldo Bastian  <bastian@kde.org>
2181
2182         * dbus/dbus-marshal-validate.c,
2183         doc/dbus-specification.xml, test/Makefile.am,
2184         test/test-names.c: allow hyphens in bus names.
2185
2186 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2187
2188         * test/data/auth/fallback.auth-script: we don't
2189         retry the EXTERNAL method when we know its going
2190         to fail anymore.
2191
2192 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2193
2194         * dbus/dbus-connection-internal.h: rename
2195         (add|remove|toggle)_(watch|timeout) to unlocked()
2196         
2197         * dbus/dbus-connection.c: ditto.
2198         
2199         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2200         Update some callers for the renaming.
2201
2202 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2203
2204         * dbus/dbus-auth.c: (record_mechanisms): don't
2205         retry the first auth mechanism because we know
2206         we're just going to get rejected again.
2207         
2208         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2209         Fix thinko ... and what a nasty little bugger to
2210         track down you were ...
2211
2212         * dbus/dbus-connection.c:
2213         (_dbus_connection_add_watch),
2214         (_dbus_connection_remove_watch): add note about
2215         these needing the connection to be locked.
2216         (_dbus_connection_get_dispatch_status_unlocked):
2217         set status to DATA_REMAINS when we queue the
2218         disconnected message.
2219         
2220         * bus/dispatch.c:
2221         (bus_dispatch): fix warning.
2222         (check_existent_service_no_auto_start):
2223         Expect ChildSignaled error too.
2224         (check_existent_hello_from_self): fix another
2225         couple of warnings.
2226         
2227 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2228
2229         Patches from James Willcox <snorp@snorp.net>
2230
2231         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2232
2233         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2234         support array "out" parameters.
2235
2236         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2237         for 16-bit int support.
2238
2239 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2240
2241         * Released 0.50
2242
2243         * Patch from Steve Grubb:
2244         - bus/activation.c (bus_activation_service_reload_test): clean up
2245         some indentation
2246         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2247         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2248         buffer overflows in the test suite.  This is non critical because
2249         it can not be exploited and this code is only run when doing a 
2250         make check.
2251
2252         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2253         - configure.in: Don't check and link against kdecore, only qt headers
2254         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2255         - gcj/org/freedesktop/dbus/Makefile.am:
2256         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2257         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2258         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2259         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2260         - tools/Makefile.am: Add platform extentions to binaries 
2261         (i.e. .exe on windows)
2262
2263         * configure.in: 
2264         - Make it so if no suitable version of python is found we only 
2265         disable building python instead of exiting the configure script
2266         - Require version 2.4 of glib for glib bindings
2267         - Up version to 0.50
2268
2269         * python/__init__.py: Sync version with libdbus to (0,50,0)
2270         
2271 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2272
2273         * dbus/dbus-object-tree.c (find_subtree_recurse):
2274         a couple of optimizations (bug #710):
2275         - do a binary search in the tree
2276         - insert a new child at the right place directly, no need for
2277           qsort anymore
2278         - do the "double alloc" thing when allocating children
2279
2280 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2281
2282         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2283
2284         * python/dbus_bindings.pyx: Memory management foo
2285         (global): remove hacky _user_data_references global list
2286         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2287         tuples. Unref user_data
2288         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2289         (Connection::__del__): Remove and replace with __dealloc__ method
2290         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2291         to keep tuple from being deallocated instead of the global var hack
2292         (Connection::register_object_path): Stuff user_data into a tuple.
2293         Use Py_INCREF to keep tuple from being deallocated instead of the 
2294         global var hack
2295         (Connection::register_fallback): Stuff user_data into a tuple.
2296         Use Py_INCREF to keep tuple from being deallocated instead of the 
2297         global var hack
2298         (GIL_safe_pending_call_notification): Don't unref the message
2299         because it gets unreffed when going out of scope.  Py_XDECREF
2300         the user_data
2301         (PendingCall::__del__): Remove and replace with __dealloc__ method
2302         (PendingCall::set_notify): ref the pending call because we will
2303         need it to stick around for when the notify callback gets called
2304         (Message::__del__): Remove and replace with __dealloc__ method
2305
2306         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2307         gthreads_init to match up with the dbus call
2308
2309         * python/glib.py (init_threads): Changed to threads_init to match
2310         up with gobject.threads_init().  init_threads is kept for backwards
2311         compat but will most likely be deprecated in the future
2312
2313         * test/python/test-client.py: 
2314         - revamp to use Python's unittest functionality
2315         - add async call tests
2316         - setup threads in glib and dbus so we make sure locks are working
2317         
2318 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2319
2320         * python/dbus_bindings.pyx 
2321         (_pending_call_notification, cunregister_function_handler, 
2322         cmessage_function_handler): All callback functions have been rearranged 
2323         to workaround a bug in Pyrex when working with the GIL which is Python's 
2324         global lock when dealing with threads.  They have been split into
2325         a wrapper function (which assumes the name of the old function) and
2326         a _GIL_safe_<function name> function which contains the functionality
2327         of the old function.  This ensures that Pyrex does not write code
2328         the lock is released.
2329         
2330
2331 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2332
2333         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2334         GIL global lock when calling back into Python
2335
2336 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2337
2338         * Release 0.36.2
2339
2340         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2341
2342         * bus/policy.c (bus_policy_allow_user): change default "user is
2343         allowed" to be "user has same uid as the bus itself"; any
2344         allow/deny rules will override.
2345
2346         * bus/session.conf.in: don't allow all users, since now by default
2347         the user that ran the bus can connect.
2348
2349 2005-08-26  Colin Walters  <walters@verbum.org>
2350
2351         * tools/dbus-print-message.c (print_message): Flush stdout
2352         after printing a message, so that redirecting to a file, then
2353         hitting Ctrl-C works.
2354
2355 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2356
2357         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2358         (EmptyMessage): new class that subclasses Message.  This is a workaround
2359         to a Pyrex bug that fails to call __del__ when the Message object goes out
2360         of scope.  For some reason subclassing Message fixes this bug
2361         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2362         - s/Message(_create=0)/EmptyMessage everywhere else
2363         
2364         * test/python/test-{server|client}.py: add the python/.libs directory
2365         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2366         get picked up from the system
2367
2368 2005-08-25  Colin Walters  <walters@verbum.org>
2369
2370         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2371         to Ryan Lortie for the suggestion.
2372
2373 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2374
2375         * test/python: Add python regression test
2376
2377         * configure.in: Add test/python/Makefile
2378
2379         * test/Makefile.am: Add the python directory to SUBDIRS
2380
2381 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2382
2383         * Release 0.36.1
2384
2385         * python/_dbus.py: 
2386         (Interface::connect_to_signal): propigate keywords for match on args
2387         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2388
2389         * python/proxies.py (ProxyObject::connect_to_signal):
2390         propigate keywords for match on args
2391
2392         * Makefile.am: point everything to pyexecdir since python borks
2393         on multilib
2394
2395 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2396
2397         * Release 0.36
2398
2399 2005-08-23  Colin Walters  <walters@verbum.org>
2400
2401         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2402
2403 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2406         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2407         of defining DBusConnection ourselves.
2408
2409 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2410
2411         * python/dbus.pth: New path file to fix up problems when installing
2412         c libraries to lib64 and python files to lib.
2413
2414         * python/Makefile.am: install dbus.pth in the correct spot
2415
2416 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2417         * ChangeLog: clean up my last entry a bit
2418
2419         * doc/introspect.xsl: New stylesheet for converting introspection data
2420         into browser renderable xhtml. Contributed by Lennart Poettering.
2421
2422         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2423         Poettering.
2424
2425         * doc/dbus-tutorial.xml: 
2426         - Add Colin Walter to the Authors section for authoring the GLib
2427         section
2428         - Add descriptions of the new signature and type functionality
2429         in the Python complex type mapping section
2430         - Add a sidenote on the new args matching functionality in 
2431         the Python bindings
2432         - Fixed up some of the examples to use the gobject.MainLoop
2433         instead of gtk.main
2434         
2435         * python/_dbus.py:
2436         (Bus::_create_args_dict): New. Converts a hash of arg matches
2437         to a more useable format
2438         (Bus::add_signal_receiver): add a **keywords parameter for catching
2439         arg match parameters
2440         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2441         arg match parameters
2442         
2443         * python/matchrules.py:
2444         (MatchTree::exec_matches): Check for arg matches
2445         (SignalMatchRule::add_args_match): New method
2446         (SignalMatchRule::execute): Added args_list parameter as an optimization
2447         so we don't have to marshal the args more than once
2448         (SignalMatchRule::match_args_from_list): New method that checks to see
2449         if the rule's arg matches match an argument list.  Only arguments
2450         set in the rule are checked.
2451         (SignalMatchRule::match_args_from_rule): New method that checks to see
2452         if the rule's arg matches match another rule's.  All args have to match
2453         in order for this method to return true.  If either rule has more args
2454         then it is not a match.
2455         (SignalMatchRule::is_match): Add args match
2456         (SignalMatchRule::repr): Add args to the final output if they exist
2457
2458 2005-08-17  Ross Burton  <ross@burtonini.com>
2459
2460         * glib/dbus-gproxy.c:
2461         (dbus_g_proxy_call_no_reply): unref the message once sent.
2462         (dbus_g_proxy_call): protect against NULL proxy.
2463
2464 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2465
2466         * python/__init__.py: Version updated (0, 43, 0)
2467         
2468         * python/dbus_bindings.pyx: 
2469         - Fixed type objects to have self passed into __init__
2470         - Added the Variant type
2471         - Add the ability to specify types or signatures for Array, Variant 
2472         and Dictionary
2473         (Connection::send_with_reply_handlers): return a PendingCall object
2474         (_pending_call_notification): handle the case when an error is returned 
2475         without an error message in the body
2476         (MessageIter::get_boolean): return True or False instead of an integer
2477         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2478         and add checks for objects with embeded signatures or types (Array, 
2479         Variant and Dictionary)
2480         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2481         (MessageIter::append_dict): handle embeded types or signatures
2482         (MessageIter::append_array): handle embeded types or signatures
2483         (MessageIter::append_variant): new method
2484         
2485         * python/proxies.py:
2486         (DeferedMethod): New. Dummy executable object used when queuing calls 
2487         blocking on introspection data
2488         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2489         or shorter timeouts for method calls
2490         (ProxyObject): Add first pass at an introspection state machine
2491         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2492         introspection. 
2493         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2494         the usual mechanisms for sending messages.  This is to avoid a deadlock
2495         where the Intospect call would be queued waiting for the Introspect 
2496         call to finish ;-)
2497         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2498         when introspection returns with no error
2499         (ProxyObject::_introspect_error_handler): New.  This method is called 
2500         when introspection encounters an error
2501         (ProxyObject::__getattr__): Code to handle different introspection 
2502         states.  Queue async calls or block blocking calls if we are 
2503         introspecting.  Pass through as normal if we are not or are done with 
2504         introspecting.
2505         
2506         * python/service.py: Import signal and method from decorators.py
2507
2508         * python/types.py: Add Variant type
2509
2510 2005-08-16  Colin Walters  <walters@verbum.org>
2511
2512         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2513         DBusError message is NULL.
2514
2515 2005-08-09  Havoc Pennington  <hp@redhat.com>
2516
2517         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2518         malloc'd copy of the name parameter
2519
2520 2005-08-09  Havoc Pennington  <hp@redhat.com>
2521
2522         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2523         warning if the reply serial is set to 0
2524
2525 2005-08-04  Colin Walters  <walters@verbum.org>
2526
2527         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2528         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2529         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2530         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2531         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2532         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2533         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2534         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2535         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2536         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2537         
2538         Prefix name with _ to ensure they're not exported.  All callers
2539         updated.
2540
2541         * glib/dbus-gvalue.c (typecode_to_gtype)
2542         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2543         (signature_iter_to_g_type_dict)
2544         (signature_iter_to_g_type_array)
2545         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2546         (dbus_gtypes_from_arg_signature):
2547         Move to dbus-gsignature.c.
2548
2549         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2550         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2551         (dbus_binding_tool_output_glib_client): Ditto.
2552
2553         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2554         and dbus-gsignature.h
2555
2556         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2557         unused variable.
2558
2559 2005-08-03  Colin Walters  <walters@verbum.org>
2560
2561         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2562         catch any incompatible changes accidentally made.
2563
2564 2005-08-03  Havoc Pennington  <hp@redhat.com>
2565
2566         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2567         typo, from Julien Puydt
2568
2569         * bus/connection.c (bus_connection_disconnected): we were always
2570         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2571
2572 2005-08-01  Colin Walters  <walters@verbum.org>
2573
2574         Patch from Joe Markus Clarke:   
2575         
2576         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2577         use-after-free.
2578
2579 2005-08-01  Colin Walters  <walters@verbum.org>
2580         
2581         Patch from Joe Markus Clarke:   
2582         
2583         * tools/dbus-send.c (main): 
2584         
2585         Don't use C99 style initializers (bug #3933).
2586         
2587 2005-08-01  Colin Walters  <walters@verbum.org>
2588
2589         Patch from Joe Markus Clarke:   
2590
2591         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2592         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2593         * glib/dbus-gobject.c (write_interface):
2594
2595         Don't use C99 style initializers (bug #3933).
2596
2597 2005-07-31  Havoc Pennington  <hp@redhat.com>
2598
2599         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2600         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2601
2602 2005-07-30  Havoc Pennington  <hp@redhat.com>
2603
2604         * fix a bunch of Doxygen warnings and mistakes
2605
2606 2005-07-30  Havoc Pennington  <hp@redhat.com>
2607
2608         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2609         DBUS_BUILD_TESTS since it's now used in production code
2610
2611 2005-07-29  Havoc Pennington  <hp@redhat.com>
2612
2613         * test/glib/test-profile.c (write_junk): initialize the junk
2614         buffer so valgrind doesn't have a breakdown
2615
2616 2005-07-29  Havoc Pennington  <hp@redhat.com>
2617
2618         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2619         (match_rule_matches): remove unused arg
2620         (test_matching): add tests for match_rule_matches()
2621
2622         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2623         do arg0='foo' arg5='bar' in the match rules
2624         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2625
2626         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2627
2628 2005-07-29  Ross Burton  <ross@openedhand.com>
2629
2630         * dbus/dbus-connection.c:
2631         Don't create a DBusCondVar which is never used.
2632
2633 2005-07-27  Ross Burton  <ross@openedhand.com>
2634
2635         * dbus/dbus-message.c:
2636         Reduce the size of the maximum cached message to 10K.
2637
2638 2005-07-25  Ross Burton  <ross@openedhand.com>
2639
2640         * glib/dbus-gproxy.c:
2641         Remove matches when all proxies are unregistered.
2642
2643 2005-07-24  Colin Walters  <walters@verbum.org>
2644
2645         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2646         typedata; recursive arrays won't have it.
2647
2648         * test/glib/test-dbus-glib.c:
2649         * test/glib/test-service-glib.c:
2650         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2651         
2652 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2653
2654         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2655         proxies.py, service.py: Cleanup of code after running it through the
2656         pyflakes code checker mostly dealing with undefined names.  
2657         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2658
2659 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2660
2661         * NEWS: Update to 0.35.2
2662
2663 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2664
2665         * python/_dbus.py: Remove import of the dbus.services
2666         module as it no longer exists (patch from Dimitur Kirov)
2667
2668         * python/service.py (Object::__init__): Fixed typo
2669         s/name/bus_name (patch from Dimitur Kirov)
2670
2671         * python/examples/example-signal-emitter.py: import dbus.glib
2672         to get the main loop and use glib mainloop instead of gtk so
2673         X doesn't have to be running.
2674
2675         * python/examples/example-signal-recipient.py: import dbus.glib
2676         to get the main loop and use glib mainloop instead of gtk so
2677         X doesn't have to be running. Import the decorators module
2678         directly.
2679
2680         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2681         didn't pick up on but are needed to build
2682
2683         * configure.in: upped version to 0.35.2
2684
2685         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2686         added Colin Walters' SELinux API rename patch from head 
2687         s/unix sercurity context/selinux security context/
2688
2689 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2690
2691         * python/Makefile.am: dbus_binding.pxd.in should be included 
2692         in EXTRA_DIST not dbus_binding.pxd
2693         fix up $(srcdir) hopefully for the last time
2694
2695         * NEWS: Update to 0.35.1
2696
2697 2005-07-16  Colin Walters  <walters@verbum.org>
2698
2699         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2700         from bus_driver_handle_get_connection_unix_security_context.  Update for
2701         error usage.
2702         (message_handlers): Update for renames.
2703
2704         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2705         _dbus_string_init failure correctly.
2706         (bus_selinux_append_context): Convert SID to context.  Append it
2707         as a byte array.
2708         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2709         hasn't been called.
2710
2711         * bus/selinux.h: Update prototype.
2712
2713         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2714         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2715
2716 2005-07-15  Colin Walters  <walters@verbum.org>
2717
2718         * doc/TODO: Add note about convenience wrappers.
2719
2720 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2721
2722         * NEWS: Update to 0.35
2723
2724 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2725
2726         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2727         so distcheck doesn't fail
2728
2729         * glib/examples/Makefile.am: Add example-service.xml and 
2730         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2731
2732         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2733         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2734
2735         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2736         compiler looks in the right places during distcheck
2737
2738 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2739
2740         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2741         to fail
2742
2743 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2744
2745         * python/examples/example-service.py,
2746         python/examples/example-signal-emitter.py: Fixed up examples
2747         for API changes
2748
2749 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2750
2751         * python/__init__.py: Upped to version (0,42,0) because of
2752         the API change
2753
2754 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2755
2756         * ChangeLog: fix date in last entry
2757
2758         * configure.in, bus/system.conf.in: add the ability to configure 
2759         the system bus user at compiletime with the --with-dbus-user flag
2760         (patch from Kristof Vansant)
2761
2762 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2763
2764         * bus/dispatch.c, test/test-service.c: Add testcase
2765         for sending messages to oneself (TODO item).
2766
2767         * python/service.py (class Object): Swap ordering of bus_name 
2768         and object_path parameters to better support inheritance.
2769
2770         * doc/dbus-tutorial.xml: change Python docs to reflect change
2771         in parameter ordering and fix the inheritance section.
2772
2773         * doc/TODO: remove sending message to oneself TODO item
2774
2775 2005-07-15  Ross Burton  <ross@openedhand.com>
2776
2777         * glib/dbus-gproxy.c:
2778         Fix a leak when calling methods via the proxy.
2779
2780 2005-07-15  Colin Walters  <walters@verbum.org>
2781
2782         * bus/selinux.c (bus_selinux_append_context): Wrap in
2783         HAVE_SELINUX.
2784
2785 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2786
2787         * python/_dbus.py (Bus::remove_signal_receiver):
2788         don't add a callback to the match if none has been passed in
2789         
2790         * python/matchrules.py (SignalMatchTree::remove): if the rule
2791         being matched does not have a callback treat it as a wildcard
2792         fix matching logic
2793
2794         * doc/dbus-tutorial.xml: Add Python tutorial
2795
2796 2005-07-14  Colin Walters  <walters@verbum.org>
2797
2798         * bus/driver.c
2799         (bus_driver_handle_get_connection_unix_security_context): New function.
2800         (message_handlers): Add.
2801
2802         * bus/selinux.c (bus_selinux_append_context): New function; appends
2803         security context to message.
2804
2805         * bus/selinux.h: Prototype.
2806
2807         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2808
2809 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2810
2811         * bus/activation.c: clean up all tabs to be 8 spaces 
2812         (bus_activation_activate_service): make sure we clean up
2813         if activation fails
2814
2815         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2816         (check_shell_fail_service_auto_start): New function
2817         tests to make sure we get fail properly when trying to auto start a service
2818         with a faulty command line
2819         (check_shell_service_success_auto_start): New function tests to make sure
2820         auto started services get the arguments on the command line
2821
2822         * test/test-shell-service.c: Added service for testing auto-starting with 
2823         command line arguments
2824
2825         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2826         test/data/valid-service-files/debug-shell-echo-success.service.in:
2827         Added service files for testing auto-starting with command line arguments
2828
2829         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2830
2831 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2832
2833         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2834         
2835         * dbus/Makefile.am: added new files to build.
2836
2837         * bus/activation.c (bus_activation_activate_service): support
2838         activation commands with parameters.
2839
2840         * test/shell-test.c: added test program for the shell parsing
2841         code.
2842
2843 2005-07-13  David Zeuthen  <davidz@redhat.com>
2844
2845         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2846         64 bit signed and unsigned parameters
2847
2848 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2849
2850         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2851
2852         * python/service.py (class Name): renamed BusName to make it clearer
2853         what the object is for (a name on the bus)
2854
2855         * python/examples/example-service.py,
2856         python/examples/example-signal-emitter.py: change the Name object to
2857         BusName
2858
2859 2005-07-12  Colin Walters  <walters@verbum.org>
2860
2861         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2862
2863         * tools/dbus-launch.c: Include sys/select.h.
2864
2865 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2866         * python/dbus_bindings.pyx.in: removed
2867
2868         * python/dbus_bindings.pyx: Added.
2869         - Fixed some memleaks (patch from 
2870         Sean Meiners <sean.meiners@linspireinc.com>)
2871         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2872         own pxd file (Pyrex definition)
2873         - Broke out glib dependancies into its own pyx module
2874         
2875         * python/dbus_bindings.pdx: Added.
2876         - Defines C class Connection for exporting to other modules
2877
2878         * python/dbus_glib_bindings.pyx: Added.
2879         - New module to handle lowlevel dbus-glib mainloop integration
2880
2881         * python/glib.py: Added.
2882         - Registers the glib mainloop when you import this module
2883
2884         * python/services.py: Removed (renamed to service.py)
2885         
2886         * python/service.py: Added.
2887         - (class Server): renamed Name
2888
2889         * python/__init__.py: Bump ro version (0,41,0)
2890         -don't import the decorators or service module
2891         by default.  These now reside in the dbus.service namespace
2892
2893         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2894         setup function on creation 
2895
2896         * python/examples/example-service.py,
2897         python/examples/example-signal-emitter.py: update examples
2898
2899         * python/examples/gconf-proxy-service.py,
2900         python/examples/gconf-proxy-service2.py: TODO fix these up
2901
2902         * doc/TODO: Addition
2903         - Added a Python Bindings 1.0 section
2904         - added "Add match on args or match on details to match rules"
2905
2906
2907 2005-07-12  Colin Walters  <walters@verbum.org>
2908
2909         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2910         (statemachine-glue.h): 
2911         * glib/examples/Makefile.am (example-service-glue.h) 
2912         (example-signal-emitter-glue.h): 
2913         * glib/Makefile.am (dbus-glib-error-switch.h): 
2914         Add libtool --mode=execute so we use the built library instead
2915         of any installed one.
2916
2917 2005-07-11  Colin Walters  <walters@verbum.org>
2918
2919         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2920         (dbus_g_value_types_init): Remove assertion.
2921         (dbus_g_value_get_g_type, dbus_g_value_open)
2922         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2923         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2924         functions related to DBusGValue.  Now we marshal/demarshal
2925         structures as GValueArray.
2926         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2927         structures.
2928         (signature_iter_to_g_type_array): Don't call
2929         signature_iter_to_g_type_struct.
2930         (signature_iter_to_g_type_struct): Delete.
2931         (dbus_gvalue_to_signature): Delete.
2932         (dbus_gvalue_to_signature): New function with same name as other
2933         one; we can convert structures to signatures.
2934         (demarshal_valuearray): New function.
2935         (get_type_demarshaller): Use it.
2936         (demarshal_recurse): Delete.
2937         (marshal_proxy): New function.
2938         (marshal_map): Warn if we can't determine signature from type.
2939         (marshal_collection_ptrarray): Ditto.
2940         (marshal_collection_array): Ditto.
2941         (get_type_marshaller): Use marshal_valuearray.
2942         (marshal_recurse): Delete.
2943         (_dbus_gvalue_test): Add some tests.
2944
2945         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2946         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2947         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2948         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2949         (dbus_g_value_free): Remove prototypes.
2950
2951         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2952         G_TYPE_VALUE_ARRAY.
2953
2954         * glib/examples/example-service.c:
2955         * glib/examples/example-client.c: Implement GetTuple.
2956
2957         * test/glib/test-dbus-glib.c:
2958         * test/glib/test-service-glib.c:
2959         * test/glib/test-service-glib.xml: Add structure tests.
2960
2961 2005-07-10  Colin Walters  <walters@verbum.org>
2962
2963         * doc/TODO: Knock off some GLib items with this patch.
2964
2965         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2966         (_dbus_gvalue_signals_error): New functions.
2967
2968         * glib/dbus-gvalue-utils.h: Prototype them.
2969
2970         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2971         and change to not output const/retval flags for input args.  All
2972         callers updated.
2973         (invoke_object_method): Refactor to handle return values.  Add
2974         some more comments in various places.  Remove debug g_print.
2975
2976         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2977
2978         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2979         Handle G_TYPE_NONE.
2980         (compute_gsignature): New function; refactored from code from
2981         compute_marshaller and compute_marshaller_name.  Enhance to
2982         handle return values and async ops more cleanly.  Update for
2983         async ops returning NONE instead of BOOLEAN.
2984         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2985         and output appropriate string.
2986         (generate_glue): Handle return value annotation.  Also don't dump
2987         constness flag for input arguments.
2988
2989         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2990         files shared between installed library and utilities.
2991         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2992         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2993         binding tool can access gtype utility functions.
2994
2995         * test/glib/test-service-glib.c: 
2996         * test/glib/test-service-glib.xml: 
2997         * test/glib/test-dbus-glib.c: Add some tests for return values.
2998
2999 2005-07-09  Colin Walters  <walters@verbum.org>
3000
3001         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3002         argument if available, not method.
3003
3004         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3005         (invoke_object_method): First, remove some redundant
3006         GValues (object_value, error_value) in favor of working on
3007         array directly.  Second, rework constness to be less buggy.
3008         Now we iterate directly over the argument metadata instead
3009         of parallel iterating over output signature and metadata.
3010
3011         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3012
3013         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3014         annotation on input args.
3015         
3016 2005-07-09  Colin Walters  <walters@verbum.org>
3017
3018         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3019         Define.
3020
3021         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3022         annotation.
3023
3024         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3025         (method_dir_signature_from_object_info): Handle arg_iterate change.
3026         (write_interface): Ditto.
3027         (lookup_object_info): Don't barf if format_version is > 0.
3028         (invoke_object_method): Handle arg constness.
3029
3030         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3031         (arg_info_new): Create.
3032         (arg_info_unref): Destroy.
3033         (arg_info_get_annotations, arg_info_get_annotation) 
3034         (arg_info_add_annotation): New functions.
3035
3036         * glib/dbus-gidl.h: Prototype them.
3037
3038         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3039         args, disallow them in properties.
3040         (parse_annotation): Handle arg annotations.
3041
3042         * test/glib/test-service-glib.xml: 
3043         * test/glib/test-service-glib.c: Update to make some methods
3044         const.
3045
3046 2005-07-08  Colin Walters  <walters@verbum.org>
3047
3048         * test/glib/test-service-glib.xml: 
3049         * test/glib/test-service-glib.c:
3050         * test/glib/test-dbus-glib.c: Test a{sv}.
3051
3052         * glib/examples/statemachine/statemachine.c:
3053         * glib/examples/statemachine/statemachine-server.c:
3054         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3055         add progress bar, etc.
3056
3057         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3058         needed anymore due to generic array/map marshalling.
3059         (dbus_g_value_types_init): Don't register basic arrays or the
3060         string/string hash.
3061         (dbus_gtype_from_signature_iter): Don't try to recurse into
3062         variants.
3063         (dbus_gtype_to_signature): Check collection/map before type
3064         metadata.
3065         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3066         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3067         generic map creation/append functions instead of hash table
3068         specifically.
3069         (get_type_demarshaller): Handle maps.
3070         (demarshal_collection): Dispatch on collection type to either
3071         demarshal_collection_ptrarray or demarshal_collection_array.
3072         (get_type_marshaller): Handle maps.
3073         (marshal_collection): Dispatch collection type to either
3074         marshal_collection_ptrarray or marshal_collection_array.
3075         (_dbus_gvalue_test): New test.
3076
3077         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3078         (hash_free_from_gtype): Use it to free GValues.
3079         (hashtable_append): New function.
3080         (ptrarray_append): Fix prototype.
3081         (slist_append): Ditto.
3082         (_dbus_gvalue_utils_test): Extend tests.
3083
3084         * glib/dbus-gtype-specialized.c
3085         (dbus_g_type_specialized_init_append): Renamed from
3086         dbus_g_type_specialized_collection_init_append.  Remove const from
3087         value, since we steal it.
3088         (dbus_g_type_specialized_map_append): New function.
3089
3090         * glib/dbus-gtype-specialized.h: Update prototypes.
3091         Add DBusGTypeSpecializedMapAppendFunc.
3092
3093         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3094         _dbus_gvalue_test.
3095         
3096         * glib/dbus-gtest.h: Prototype it.
3097
3098 2005-07-08  Ross Burton  <ross@openedhand.com>
3099
3100         * dbus/dbus-glib.h:
3101         Add DBysGAsyncData for the async bindings.
3102
3103         * glib/dbus-binding-tool-glib.c:
3104         Re-enable the async bindings.
3105
3106         * test/glib/test-dbus-glib.c:
3107         Add a test for the generated async bindings.
3108
3109 2005-07-08  Colin Walters  <walters@verbum.org>
3110
3111         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3112         connection concept.
3113         
3114 2005-07-08  Colin Walters  <walters@verbum.org>
3115         
3116         * tools/Makefile.am: Kill of print-introspect in favor of using
3117         dbus-send --print-reply=literal.
3118
3119         * test/glib/test-service-glib.xml: 
3120         * test/glib/test-service-glib.c (my_object_get_objs): New test
3121         for "ao".
3122
3123         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3124         (main): Test GetObjs.
3125
3126         * glib/examples/statemachine/Makefile.am:
3127         * glib/examples/statemachine/sm-marshal.list:
3128         * glib/examples/statemachine/statemachine-client.c:
3129         * glib/examples/statemachine/statemachine-server.c:
3130         * glib/examples/statemachine/statemachine-server.xml:
3131         * glib/examples/statemachine/statemachine.c:
3132         * glib/examples/statemachine/statemachine.h:
3133         * glib/examples/statemachine/statemachine.xml:
3134
3135         New example.
3136
3137         * glib/examples/example-service.c (main): Move invocation
3138         of dbus_g_object_type_install_info earlier, to emphasize it
3139         should only be done once.
3140
3141         * glib/examples/example-signal-emitter.c (main): Ditto.
3142
3143         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3144
3145         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3146         (dbus_gvalue_marshal): Update prototypes.
3147
3148         * glib/dbus-gvalue.c: Update all marshalling functions to take
3149         const GValue instead of GValue.
3150         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3151         types.
3152         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3153         change.
3154         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3155         Return a newly-allocated string.
3156         (demarshal_proxy, demarshal_object_path, demarshal_object)
3157         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3158         we get the wrong types from message.
3159         (get_type_demarshaller): New function, extracted from
3160         dbus_gvalue_demarshal.
3161         (demarshal_collection): New function, demarshals generic
3162         collection.
3163         (dbus_gvalue_demarshal): Just invoke result of
3164         get_type_demarshaller.  Throw error if we don't have one.
3165         (marshal_garray_basic): Abort on OOM.
3166         (get_type_marshaller): New function, extracted from
3167         dbus_gvalue_marshal.
3168         (collection_marshal_iterator, marshal_collection): New functions;
3169         implements generic marshalling for an iteratable specialized
3170         collection.
3171         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3172
3173         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3174         G_TYPE_STRING.
3175         (ptrarray_value_from_gvalue): Ditto.
3176         (ptrarray_append, ptrarray_free): New functions.
3177         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3178         (slist_append, slist_end_append, slist_free): New functions.
3179         (dbus_g_type_specialized_builtins_init): Add append fuctions
3180         for GPtrArray and GSList.  Register GSList.
3181         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3182
3183         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3184         New.
3185         (dbus_g_type_specialized_collection_init_append)
3186         (dbus_g_type_specialized_collection_append)
3187         (dbus_g_type_specialized_collection_end_append): Prototype.
3188         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3189         end_append_func.
3190
3191         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3192         (dbus_g_type_specialized_collection_append) 
3193         (dbus_g_type_specialized_collection_end_append): New functions.
3194         (dbus_g_type_map_value_iterate): Take const GValue.
3195         (dbus_g_type_collection_value_iterate): Ditto.
3196
3197         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3198         _dbus_gvalue_utils_test.
3199         
3200         * glib/dbus-gtest.h: Prototype it.
3201
3202         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3203         using uninitialized owner_list.
3204         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3205         public API.
3206         (dbus_g_proxy_end_call_internal): Update to use error set
3207         from dbus_gvalue_demarshal instead of setting it here.
3208         (dbus_g_proxy_begin_call): Move return_if_fail here.
3209
3210         * glib/dbus-gobject.c (write_interface): Update for
3211         dbus_gtype_to_signature returning new string.
3212
3213         * configure.in: Add glib/examples/statemachine.
3214
3215 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3216
3217         * configure.in: Add a configure option, --with-console-auth-dir
3218         
3219         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3220         new setting.  Patch from Kay Sievers.
3221
3222 2005-07-06  Colin Walters  <walters@verbum.org>
3223
3224         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3225         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3226         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3227         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3228         Delete in favor of dbus_g_proxy_begin_call and
3229         dbus_g_proxy_cancel_call.
3230         (DBusGProxyCall, DBusGProxyCallNotify): New.
3231         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3232         data, and destroy function.  This replaces
3233         dbus_g_pending_call_set_notify.
3234         (dbus_g_proxy_cancel_call): Prototype.
3235         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3236
3237         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3238         pending_calls map.
3239         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3240         internal proxy for calls to the bus. Remove
3241         pending_nameowner_calls, now the internal proxy keeps track.
3242         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3243         pending_nameowner_calls.
3244         (got_name_owner_cb): Update prototype, and use
3245         dbus_g_proxy_end_call.
3246         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3247         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3248         favor of using internal proxy.
3249         (dbus_g_proxy_manager_unregister): Update to use
3250         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3251         (dbus_g_proxy_init): Initialize pending calls map.
3252         (dbus_g_proxy_constructor): New.
3253         (dbus_g_proxy_class_init): Add get/set property functions,
3254         constructor, and add NAME, PATH, and INTERFACE properties.
3255         (cancel_pending_call): New function.
3256         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3257         cancel them.
3258         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3259         (GPendingNotifyClosure): New structure.
3260         (d_pending_call_notify, d_pending_call_free): Moved here from
3261         dbus-glib.c.
3262         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3263         ordering.
3264         (manager_begin_bus_call): New internal function for talking to
3265         internal bus proxy.
3266         (dbus_g_proxy_new): Construct object using GObjet properties.
3267         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3268         Create closure of same, and insert call into map of pending calls.
3269         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3270         call.  Look up pending call in current set.  Remove it when we've
3271         completed.
3272         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3273         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3274         and destroy function directly.
3275         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3276         (dbus_g_proxy_call): Invoke with NULL callback.
3277         (dbus_g_proxy_cancel_call): New function, replaces
3278         dbus_g_pending_call_cancel.
3279
3280         * glib/dbus-gparser.c (validate_signature): Fix call to
3281         dbus_set_g_error.
3282
3283         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3284         New quark for attaching metadata to GType.
3285         (info_hash): Delete.
3286         (lookup_object_info): Look up using quark.
3287         (dbus_g_object_type_install_info): Check that a type is classed,
3288         not that it's an object.  Also just install type data using quark
3289         instead of using global hash.
3290
3291         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3292         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3293         (GPendingNotifyClosure): Delete.
3294         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3295         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3296
3297         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3298         client method generation until we can fix it...
3299         
3300         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3301         (load_from_service_thread_func): Ditto.
3302
3303         * tools/dbus-names-model.c (struct NamesModel): Hold
3304         DBusGProxyCall.
3305         (have_names_notify): Update prototype, use
3306         dbus_g_proxy_cancel_call.
3307         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3308
3309         * tools/dbus-monitor.c (filter_func): Update for print_message
3310         API change.
3311
3312         * test/glib/test-dbus-glib.c: Add more tests for async
3313         invocations.  Update many begin_call/end_call pairs to just use
3314         dbus_g_proxy_call.
3315
3316         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3317         allows us to dump print-introspect.c.
3318
3319         * tools/dbus-print-message.h (print_message): Add literal argument
3320         to print_message which is intended to allow printing arguments without
3321         metadata like "string=".
3322
3323         * tools/dbus-print-message.c (print_iter): Add literal argument.
3324         (print_message): Allow printing string messages literally.
3325
3326 2005-07-05  Colin Walters  <walters@verbum.org>
3327
3328         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3329         Remove value refcount leak, original patch from Jorn Baayen
3330         <jorn@openedhand.com>.  Also remove useless extra value in favor
3331         of prepending to value array directly.
3332
3333 2005-07-02  Colin Walters  <walters@verbum.org>
3334
3335         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3336
3337 2005-07-01  Colin Walters  <walters@verbum.org>
3338
3339         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3340         
3341         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3342         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3343         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3344         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3345
3346 2005-06-30  Colin Walters  <walters@verbum.org>
3347
3348         * test/glib/test-dbus-glib.c:
3349         * test/glib/test-service-glib.c:
3350         * test/glib/test-service-glib.xml: Update tests for new error
3351         setting bits, also add async tests (patch from Ross Burton).
3352
3353         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3354         DBUS_GLIB_THREADS_LIBS.
3355
3356         * glib/dbus-gproxy.c (get_name_owner)
3357         (dbus_g_pending_call_end_valist): Ditto.
3358
3359         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3360         domain (GQuark) to DBusGErrorInfo.  
3361         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3362         quark in error_metadata.  Take message interface as default
3363         error message interface.
3364         (gerror_to_dbus_error_message): Pass message interface.
3365         (dbus_set_g_error): Resurrected.
3366         (dbus_g_error_info_free): New function.
3367         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3368         of _peek to actually create the object class if it hasn't been
3369         created yet.
3370         (dbus_g_error_domain_register): New function.
3371
3372         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3373
3374         * glib/dbus-gparser.c (validate_signature): Ditto.
3375
3376         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3377         (dbus_g_error_domain_register): Prototype.
3378
3379         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3380         Update tests.
3381
3382 2005-06-29  Colin Walters  <walters@verbum.org>
3383
3384         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3385         DBUS_TYPE_G_OBJECT_PATH.
3386
3387         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3388         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3389         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3390         (dbus_g_object_path_get_g_type): New function.
3391         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3392         to DBUS_TYPE_G_OBJECT_PATH by default.
3393         (demarshal_proxy): Remove unused name variable.
3394         (demarshal_object_path, marshal_object_path): New functions.
3395         (demarshal_proxy_array, marshal_proxy_array): Delete.
3396         
3397         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3398         DBUS_TYPE_G_OBJECT_PATH to char *.
3399         (dbus_g_type_get_lookup_function): Map builtin
3400         DBUS_TYPE_G_OBJECT_PATH.
3401
3402         * test/glib/test-dbus-glib.c
3403         * test/glib/test-service-glib.c (my_object_objpath): 
3404         Adapt tests to new object path marshalling.
3405
3406 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3407
3408         * configure.in: force check for Python >= 2.4
3409
3410 2005-06-29  Colin Walters  <walters@verbum.org>
3411         
3412         Patch from Ross Burton <ross@openedhand.com>
3413         
3414         * glib/dbus-gobject.c (invoke_object_method): Unset object
3415         value in all cases, not only in async case.
3416
3417 2005-06-29  Colin Walters  <walters@verbum.org>
3418
3419         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3420         name_call for keeping track of any outgoing GetNameOwner call.
3421         Also add for_owner and associated.
3422         (struct _DBusGProxyManager): Add owner_names, which is hash table
3423         that maps a base name to a list of names it owns (that we're
3424         interested in).  Add pending_nameowner_calls which is a list of
3425         all outstanding GetNameOwner; avoids us having to iterate over
3426         every proxy.  Add unassociated_proxies which keeps track of name
3427         proxies with no associated name owner.
3428         (dbus_g_proxy_manager_unref): Destroy owner_names.
3429         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3430         name refcounts.
3431         (find_name_in_info, name_owner_foreach)
3432         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3433         (dbus_g_proxy_manager_monitor_name_owner)
3434         (dbus_g_proxy_manager_unmonitor_name_owner)
3435         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3436         New functions; they manipulate the owner_names mapping.
3437         (got_name_owner_cb): New function.
3438         (get_name_owner): New function, extracted from
3439         dbus_g_proxy_new_for_name_owner.
3440         (dbus_g_proxy_manager_register): For now we need to keep track of
3441         all NameOwnerChanged.  Also if the proxy is for a name, if we
3442         don't already know the name owner, queue a new GetNameOwner
3443         request and add it to our list of unassociated proxies.  Otherwise
3444         inc the refcount.
3445         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3446         cancel any pending GetNameOwner call, etc.
3447         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3448         the owner_names mapping to look up the current names for the
3449         signal source, and dispatch to any proxies for that name.
3450         (dbus_g_proxy_new): Initialize new members.
3451         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3452         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3453         (dbus_g_pending_call_end_valist): New function, extracted from
3454         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3455         but want to use the GLib infrastructure.  Also note how many
3456         arguments in reply were over.
3457         (dbus_g_pending_call_end): New function, just call
3458         dbus_g_pending_call_end_valist.
3459         (dbus_g_proxy_end_call_internal): Just call
3460         dbus_g_pending_call_end_valist.
3461
3462         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3463         of builtin marshaller for STRING_STRING_STRING.
3464
3465         * test/glib/test-dbus-glib.c: 
3466         * test/glib/test-service-glib.c:
3467         * test/glib/test-service-glib.xml:
3468         Extend tests to cover name proxies, destruction of owner proxies,
3469         etc.
3470         
3471         * glib/examples/example-signal-recipient.c
3472         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3473         
3474         * tools/dbus-send.c (main): Print D-BUS error name in addition
3475         to message.
3476
3477 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3478
3479         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3480         cmessage_function_handler): Patch from 
3481         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3482         by using the Py_GILState_Ensure/Release to synchronize with the
3483         python runtime.
3484         
3485 2005-06-28  Ray Strode  <rstrode@redhat.com>
3486
3487         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3488         babysitter helper process on last unref, bug #2813.
3489
3490 2005-06-27  Colin Walters  <walters@verbum.org>
3491
3492         * test/glib/test-dbus-glib.c: 
3493         * test/glib/test-service-glib.c:
3494         * test/glib/test-service-glib.xml:
3495         Test hash table signal emitting.
3496
3497         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3498         types to their fundamental basis types, since this is what
3499         marshallers operate on.  Also add an entry for VOID__BOXED.
3500         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3501
3502 2005-06-26  Havoc Pennington  <hp@redhat.com>
3503
3504         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3505         from Don Park
3506
3507 2005-06-26  Colin Walters  <walters@verbum.org>
3508
3509         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3510         (dbus_g_error_set): New public function from its ashes; used by
3511         both service-side method implementation and GLib bindings
3512         internals.
3513         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3514         (_dbus_glib_test): Add some tests.
3515
3516         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3517
3518         * test/glib/test-service-glib.c (my_object_throw_error): Use
3519         dbus_g_error_set.
3520
3521         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3522         errors thrown by dbus_g_error_set.
3523
3524         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3525
3526         * glib/dbus-gparser.c (validate_signature): Ditto.
3527
3528         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3529         (dbus_g_proxy_end_call_internal): Ditto.
3530
3531         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3532         converts DBUS_ERROR_x to DBUS_GERROR_x.
3533         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3534
3535         * doc/TODO: Remove error TODO.
3536
3537         * doc/dbus-tutorial.xml: Update with documentation about error
3538         handling.
3539
3540         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3541         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3542         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3543
3544 2005-06-22  Colin Walters  <walters@verbum.org>
3545         
3546         Patch from Ross Burton <ross@openedhand.com>
3547
3548         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3549
3550 2005-06-20  Colin Walters  <walters@verbum.org>
3551
3552         * configure.in: Add glib/examples.
3553
3554         * glib/Makefile.am: Add examples/
3555
3556         * glib/examples/.cvsignore
3557         * glib/examples/Makefile.am
3558         * glib/examples/example-client.c
3559         * glib/examples/example-service.c
3560         * glib/examples/example-service.xml
3561         * glib/examples/example-signal-emitter.c
3562         * glib/examples/example-signal-emitter.xml
3563         * glib/examples/example-signal-recipient.c:
3564         New files; GLib binding examples, ported from
3565         python/examples.
3566
3567 2005-06-20  Colin Walters  <walters@verbum.org>
3568
3569         * dbus/dbus-glib.h: 
3570         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3571         dbus_g_proxy_call.
3572
3573         * glib/dbus-binding-tool-glib.c: 
3574         * doc/dbus-tutorial.xml: 
3575         * test/glib/test-dbus-glib.c: Update for rename.
3576         
3577 2005-06-20  Colin Walters  <walters@verbum.org>
3578
3579         Patch suggested by Ross Burton <ross@openedhand.com>
3580
3581         * glib/dbus-gobject.c (export_signals): Free signal name.
3582         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3583         memory leak.  Add a bit of documentation.
3584         (dbus_g_method_return_error): Free context, and note we do
3585         so.
3586
3587 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3588
3589         * dbus/dbus-glib.h:
3590         * glib/dbus-gobject.c:
3591         * glib/dbus-gproxy.c:
3592         * glib/dbus-gvalue.c: Predeclare structs as 
3593         typedef struct _Something Something instead of 
3594         typedef struct Something Something, so we can 
3595         redeclare the prototypes. Other GNOME libraries 
3596         do this already.
3597
3598 2005-06-17  Colin Walters  <walters@verbum.org>
3599
3600         * tools/dbus-names-model.c (have_names_notify): Fix call
3601         to dbus_g_proxy_end_call.
3602         
3603 2005-06-17  Colin Walters  <walters@verbum.org>
3604
3605         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3606         spew warnings if we get malformed remote signals.
3607
3608         * glib/dbus-gobject.c (propsig_iterate): New function.
3609         (lookup_object_info): New function, extracted from
3610         lookup_object_and_method.
3611         (introspect_properties, introspect_signals): Delete; these
3612         are merged into write_interface.
3613         (write_interface): Write out signals and properties here;
3614         dump the org.gtk.object stuff and use the interface given
3615         in the introspection data blob.  Also fix up property XML.
3616         (lookup_values): New function.
3617         (introspect_interfaces): Gather a mapping from interface to a
3618         list of its methods, signals, and properties, then write out
3619         each interface.
3620         (lookup_object_and_method): Use lookup_object_info.
3621         (struct DBusGSignalClosure): Add interface.
3622         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3623         we can just use the constant data.
3624         (dbus_g_signal_closure_finalize): Don't free signal name.
3625         (signal_emitter_marshaller): Use interface from signal closure.
3626         (export_signals): Only export signals mentioned in introspection
3627         blob.
3628         (dbus_g_connection_register_g_object): Warn if we have no
3629         introspection data for an object.
3630         (funcsig_equal): Remove unused variable.
3631         (dbus_g_object_register_marshaller): Take varargs instead of
3632         list.
3633         (dbus_g_object_register_marshaller_array): New function,
3634         extracted from old dbus_g_object_register_marshaller.
3635
3636         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3637         signals and property data.
3638         (write_quoted_string): New function, extracted from generate_glue.
3639         (generate_glue): Write signals and properties to introspection
3640         blob.
3641
3642         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3643         exported_signals and exported_properties.
3644         (dbus_g_object_register_marshaller): Update prototype.
3645         (dbus_g_object_register_marshaller_array): Prototype.
3646         
3647         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3648
3649         * test/glib/test-service-glib.c: Add new test signals and method
3650         to emit them.
3651
3652         * test/glib/test-service-glib.xml: Add some test signals.
3653
3654         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3655         and my-object-marshal.h
3656         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3657         my-object-marshal.c.
3658         (my-object-marshal.c, my-object-marshal.h): Implement.
3659
3660         * test/glib/.cvsignore: Update.
3661
3662         * doc/TODO: Remove two GLib TODO items fixed by this
3663         patch.
3664
3665 2005-06-16  Colin Walters  <walters@verbum.org>
3666
3667         * doc/TODO: Update for GLib bindings.
3668         
3669 2005-06-16  Colin Walters  <walters@verbum.org>
3670
3671         * glib/dbus-binding-tool-glib.c:
3672         * glib/dbus-gobject.c:
3673         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3674         from Ross Burton, for his GLib bindings work.
3675
3676 2005-06-16  Colin Walters  <walters@verbum.org>
3677
3678         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3679         to iterate instead of walking to G_TYPE_INVALID.
3680
3681         Patch based on a patch from Ryan Gammon.
3682
3683 2005-06-16  Colin Walters  <walters@verbum.org>
3684
3685         * bus/bus.c (bus_context_new): Set parser to NULL
3686         after we unref it (Patch from Chris Boscolo, #2174).
3687         
3688 2005-06-16  Colin Walters  <walters@verbum.org>
3689
3690         * python/dbus_bindings.pyx.in: Import size_t,
3691         __int64_t, __uint64_t, and __signed.
3692
3693         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3694         Define cmsg struct, output it.
3695         (_dbus_read_credentials_unix_socket):
3696         Use cmsg struct.
3697         
3698         Patch from Joe Markus Clarke for FreeBSD support.
3699         
3700 2005-06-16  Colin Walters  <walters@verbum.org>
3701
3702         * tools/dbus-send.c (append_array): Use strtok.
3703         (append_dict): New function.
3704         (type_from_name): New function, extracted from main.
3705         (main): Handle sending dicts.
3706
3707         * tools/dbus-print-message.c (print_iter): Print dict
3708         entries.
3709         
3710 2005-06-16  Colin Walters  <walters@verbum.org>
3711
3712         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3713         values as the empty string (#2948).
3714         
3715 2005-06-16  Colin Walters  <walters@verbum.org>
3716
3717         * dbus/Makefile.am:
3718         * mono/doc/Makefile.am:
3719         * test/glib/Makefile.am:
3720
3721         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3722
3723 2005-06-16  Colin Walters  <walters@verbum.org>
3724
3725         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3726         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3727
3728         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3729         Increment pointer after swapping fixed array.  Add assertion
3730         for array length.
3731                 
3732 2005-06-15  Colin Walters  <walters@verbum.org>
3733
3734         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3735         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3736         
3737 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3738
3739         * NEWS: Update to 0.34
3740
3741 2005-06-15  David Zeuthen  <davidz@redhat.com>
3742
3743         * configure.in (LT_CURRENT): Revert back to 1 as the library
3744         hasn't changed and we've certainly not committed to protocol
3745         stability yet.  All this does is to break ABI. See commit note
3746         from hp@redhat.com 2005-05-05 for details.
3747         
3748 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3749
3750         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3751         (_dbus_connection_run_builtin_filters): New method
3752         (dbus_connection_dispatch): Run the builtin filters which in turn
3753         runs the peer filter which handles Ping messages.
3754
3755         * doc/TODO: 
3756          - Ping isn't handled: This patch fixes it
3757          
3758          - Add a test case for the Ping message: added TODO item
3759
3760 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3761
3762         * dbus/dbus-message.c:
3763         (dbus_message_has_path): New method
3764         (dbus_message_has_interface): New method
3765         (dbus_message_has_member): New method
3766
3767         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3768         New method
3769
3770         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3771         the keyring directory is private to the user
3772
3773         * doc/TODO:
3774          - The convenience functions in dbus-bus.h should perhaps have
3775          the signatures that they would have if they were autogenerated
3776          stubs. e.g. the acquire service function. We should also evaluate
3777          which of these functions to include, in light of the fact that
3778          GLib/Qt native stubs will probably also exist.: Punted
3779
3780          - add dbus_message_has_path(), maybe has_member/interface:
3781          fixed in this patch
3782
3783          - in dbus-keyring.c, enforce that the keyring dir is not
3784          world readable/writable: Fixed in this patch
3785
3786 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3787
3788         * dbus/dbus-marshal-validate.h: Added a new validation
3789         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3790         out of memory errors when validating signitures
3791
3792         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3793         in places where we previously used DBUS_VALID and a FALSE return 
3794         value to indicate OOM
3795         
3796         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3797         Use a stack to track the number of elements inside containers.  The 
3798         stack values are then used to validate that dict entries have only two
3799         elements within them.
3800         (validate_body_helper): check the reason for failure when validating
3801         varients
3802         
3803         * dbus/dbus-message.c (load_message): use 
3804         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3805         DBUS_VALID and a FALSE return value to indicate OOM
3806
3807         * doc/TODO: remove "- validate dict entry number of fields" as this
3808         patch fixes it
3809
3810 2005-06-14  David Zeuthen  <davidz@redhat.com>
3811
3812         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3813         watches (if applicable) and add new watches
3814
3815         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3816         (main): Setup SIGIO signal handler if using D_NOTIFY
3817
3818         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3819
3820         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3821         (merge_included): Also merge conf_dirs list
3822         (bus_config_parser_unref): Clear conf_dirs list
3823         (include_dir): Add directory to conf_dirs list
3824         (bus_config_parser_get_conf_dirs): New function
3825
3826         * bus/dir-watch.[ch]: New files
3827
3828         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3829
3830         * configure.in: Add checks for D_NOTIFY on Linux
3831
3832 2005-06-14  Colin Walters  <walters@verbum.org>
3833
3834         * glib/dbus-binding-tool-glib.c:
3835         * glib/dbus-gobject.c:
3836         * glib/dbus-gvalue.c: Fix indentation and brace style.
3837         
3838 2005-06-14  Ross Burton <ross@openedhand.com>.
3839
3840         * glib/dbus-glib.h: Make DBusGMethodInvocation
3841         a private structure.  Rearrange prototypes a bit.
3842         
3843         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3844         documentation for first_arg_type.
3845         
3846         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3847         here, add documentation.  Move dbus_g_method_return
3848         and dbus_g_method_return_error into public API
3849         section.
3850
3851 2005-06-14  Colin Walters  <walters@verbum.org>
3852
3853         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3854         Add missing return statements, noticed by Ross Burton.
3855         
3856 2005-06-13  Ross Burton <ross@openedhand.com>.
3857
3858         * glib/dbus-gobject.c: Handle errors on message
3859         demarshalling by sending error message back.
3860         * glib/dbus-gvalue.c: Initialize return variables.
3861
3862 2005-06-13  Colin Walters  <walters@verbum.org>
3863
3864         * glib/Makefile.am: Fix thinko in last patch.
3865
3866 2005-06-13  Colin Walters  <walters@verbum.org>
3867
3868         * glib/Makefile.am: Move dbus-gtype-specialized.c
3869         and dbus-gtype-specialized.h into a _HEADERS variable,
3870         install them.
3871
3872 2005-06-12  Colin Walters  <walters@verbum.org>
3873
3874         Async signals and various bugfixes and testing by
3875         Ross Burton <ross@openedhand.com>.
3876
3877         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3878         (dbus_gvalue_genmarshal_name_from_type)
3879         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3880         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3881         (dbus_g_value_types_init, dbus_gtype_from_signature)
3882         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3883         (dbus_gtypes_from_arg_signature): New function prototypes.
3884         (dbus_gvalue_demarshal): Take context and error arguments.
3885         (dbus_gvalue_demarshal_variant): New function.
3886         (dbus_gvalue_demarshal_message): New function.
3887         (dbus_gvalue_store): Delete.
3888
3889         * glib/dbus-gvalue.c:
3890
3891         File has been almost entirely rewritten; now we special-case
3892         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3893         hash tables correctly, etc.  Full support for recursive values
3894         is not yet complete.
3895
3896         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3897         argument of signal to G_TYPE_POINTER since we now pass a
3898         structure.
3899         (lookup_g_marshaller): Delete in favor of
3900         _dbus_gobject_lookup_marshaller.
3901         (marshal_dbus_message_to_g_marshaller): Use
3902         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3903         to handle remote signal callbacks.
3904         (dbus_g_proxy_new_from_proxy): New function; creates a new
3905         DBusGProxy by copying an existing one.
3906         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3907         (dbus_g_proxy_get_path): New functions.
3908         (dbus_g_proxy_marshal_args_to_message): New function;
3909         factored out of existing code.
3910         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3911         from a varargs array.
3912         (dbus_g_proxy_begin_call_internal): New function.
3913         (dbus_g_proxy_end_call_internal): New function.
3914         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3915         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3916         after collecting args into value array.
3917         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3918         invoke dbus_g_proxy_end_call_internal.
3919         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3920         end_call_internal.
3921         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3922         types.
3923         (array_free_all): New function.
3924         (dbus_g_proxy_add_signal): Take GTypes.
3925
3926         * glib/dbus-gobject.h:
3927         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3928         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3929         Prototype.
3930
3931         * glib/dbus-gobject.c: Add a global marshal_table hash which
3932         stores mappings from type signatures to marshallers.  Change lots
3933         of invocations of dbus_gtype_to_dbus_type to
3934         dbus_gtype_to_signature.
3935         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3936         (introspect_signals): Fix test for query.return_type.
3937         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3938         (invoke_object_method): Many changes.  Handle asynchronous
3939         invocations.  Convert arguments with
3940         dbus_gvalue_demarshal_message.  Handle errors.  Use
3941         DBusSignatureIter instead of strlen on args. Handle all arguments
3942         generically.  Special-case variants.
3943         (dbus_g_method_return, dbus_g_method_return_error): New function.
3944         (DBusGSignalClosure): New structure, closes over signal
3945         information.
3946         (dbus_g_signal_closure_new): New function.
3947         (dbus_g_signal_closure_finalize): New function.
3948         (signal_emitter_marshaller): New function; is special marshaller
3949         which emits signals on bus.
3950         (export_signals): New function; introspects object signals and
3951         connects to them.
3952         (dbus_g_object_type_install_info): Take GType instead of
3953         GObjectClass.
3954         (dbus_g_connection_register_g_object): Invoke export_signals.
3955         (dbus_g_connection_lookup_g_object): New function.
3956         (DBusGFuncSignature) New structure; used for mapping type
3957         signatures to marshallers.
3958         (funcsig_hash): New function; hashes DBusGFuncSignature.
3959         (funcsig_equal): New function; compares DBusGFuncSignature.
3960         (_dbus_gobject_lookup_marshaller): New function.
3961         (dbus_g_object_register_marshaller): New function; used to
3962         register a marshaller at runtime for a particular signature.
3963
3964         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3965
3966         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3967         which notes a server method implementation should be
3968         asynchronous.
3969
3970         * glib/dbus-binding-tool-glib.c
3971         (dbus_binding_tool_output_glib_server): Call
3972         dbus_g_value_types_init.
3973         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3974         variants specially.
3975         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3976         of a lookup function.
3977         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3978         (write_untyped_out_args): New method; write output arguments.
3979         (write_formal_declarations_for_direction): Function for
3980         writing prototypes.
3981         (write_formal_parameters_for_direction): Function for
3982         writing implementations.
3983         (write_typed_args_for_direction): Function for writing
3984         arguments prefixed with GTypes.
3985         (write_async_method_client): Write out async version
3986         of method.
3987
3988         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3989         (dbus_g_type_get_marshal_name): Move mapping from GType
3990         to marshal name into here.
3991         (dbus_g_type_get_c_name): Move into here.
3992         (compute_marshaller): Convert signature to type with
3993         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3994         (compute_marshaller_name): Ditto.
3995         (compute_marshaller): Handle async signal annotations.
3996         (gather_marshallers): Return if we don't have a known
3997         prefix.
3998         (generate_glue): Collect introspection blob here, and
3999         write all of the blob at the end.  This allows an object
4000         with multiple interfaces to work.
4001         Mark async methods in introspection blob.
4002
4003         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4004         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4005         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4006
4007         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4008         avoids people accidentally using DBUS_TYPE_* which should
4009         not be necessary anymore.
4010         Do include dbus-gtype-specialized.h, which are utilities
4011         for GLib container types.
4012         Add various #defines for types such as
4013         DBUS_TYPE_G_BOOLEAN_ARRAY.
4014         (DBusGValueIterator, DBusGValue): Define, not fully used
4015         yet.
4016         (dbus_g_value_get_g_type): Type for recursive value.
4017         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4018         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4019         (dbus_g_value_free): Prototypes.
4020         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4021         (dbus_g_proxy_set_interface): Prototype.
4022         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4023         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4024         types.
4025         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4026         Accessors.
4027         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4028         doing async invocations.
4029         (dbus_g_method_return, dbus_g_method_return_error):
4030         Prototypes.
4031         * doc/dbus-tutorial.xml: Update GLib section.
4032         
4033         * tools/dbus-viewer.c (load_child_nodes): Update
4034         for new invocation type of dbus_g_proxy_end_call.
4035         (load_from_service_thread_func): Ditto.
4036
4037         * tools/print-introspect.c (main): Ditto.
4038
4039         * tools/dbus-names-model.c (have_names_notify)
4040         (names_model_reload, names_model_set_connection)
4041         Use GTypes.
4042
4043         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4044         needed since Python bindings use GLib bindings.
4045
4046         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4047         Add --prefix argument.
4048
4049         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4050         unneeded --ignore-unsupported arg.
4051         
4052         * test/glib/test-service-glib.c: 
4053         * test/glib/test-service-glib.xml:
4054         * test/glib/test-dbus-glib.c: Add many more tests.
4055
4056 2005-06-06  David Zeuthen  <davidz@redhat.com>
4057
4058         * doc/TODO: Add item about need to remove deprecated functions.
4059
4060         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4061
4062         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4063         to repair the ABI which was broken with the last commit.
4064
4065 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4066
4067         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4068         (dbus_connection_disconnect): renamed to dbus_connection_close 
4069         for API symmetry with dbus_connection_open
4070         (_dbus_connection_open_internal): 
4071         s/dbus_connection_disconnect/dbus_connection_close
4072
4073         * dbus/dbus-bus.c (dbus_bus_get):
4074         s/dbus_connection_disconnect/dbus_connection_close
4075
4076         * bus/connection.c (bus_connections_unref, 
4077         bus_connections_setup_connection, bus_connections_expire_incomplete):
4078         s/dbus_connection_disconnect/dbus_connection_close
4079
4080         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4081         kill_client_connection_unchecked, check_hello_connection):
4082         s/dbus_connection_disconnect/dbus_connection_close
4083
4084         * bus/bus.c (new_connection_callback):
4085         s/dbus_connection_disconnect/dbus_connection_close
4086
4087         * tools/dbus-send.c (main):
4088         s/dbus_connection_disconnect/dbus_connection_close
4089
4090         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4091         s/dbus_connection_disconnect/dbus_connection_close
4092         
4093         * test/test-service.c (path_message_func, filter_func):
4094         s/dbus_connection_disconnect/dbus_connection_close
4095         
4096         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4097         
4098 2005-05-25  Colin Walters  <walters@verbum.org>
4099
4100         * dbus/dbus-protocol.h: Move various bus service #defines such
4101           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4102           dbus/dbus-shared.h.
4103         * dbus/dbus-shared.h: Various defines moved here.
4104         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4105
4106 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4107
4108         * python/__init__.py: Python bindings deserve a minor version
4109         update.  Upped to (0, 40, 2)
4110
4111 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4112
4113         * python/decorators.py: add explicitly_pass_message decorator
4114         for passing in the dbus message as keyword for edge case signal
4115         handling
4116
4117         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4118         to conform with what dbus expects for match rules
4119         (SignalMatchRule.execute): add the dbus message as a keyword
4120         if the signal handler has requested it
4121
4122         * python/examples/example/signal-recipient.py: added some more
4123         examples on how to hook up to signals
4124
4125 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4126
4127         * python/decorators.py: import dbus_bindings
4128
4129         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4130         SignalMatchNode): new classes that implement wildcard signal
4131         callback matching using a tree lookup. Heavily modified from a
4132         patch sent by Celso Pinto (fd.o bug #3241)
4133
4134         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4135         use new match classes to handle signals.
4136
4137 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4138         
4139         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4140
4141 2005-05-18  Havoc Pennington  <hp@redhat.com>
4142
4143         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4144         gettext. Not really worth requiring yet perhaps, but any
4145         production quality 1.0 would require it so we should go ahead and
4146         get things set up. We do have a couple token calls to
4147         bindtextdomain in the code already.
4148
4149 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4150
4151         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4152         when using recursive g_main_loops
4153
4154         * python/_dbus.py (class Bus): add the ProxyObjectClass
4155         alias for ProxyObject to make it easier for the Twisted 
4156         networking framework to integrate dbus.
4157
4158         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4159         alias for ProxyMethod to make it easier for the Twisted 
4160         networking framework to integrate dbus. 
4161
4162 2005-05-11  Ross Burton  <ross@openedhand.com>
4163
4164         * glib/dbus-glib-tool.c: Add --prefix argument.
4165         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4166         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4167         Add prefix argument.
4168         (generate_glue): Pass prefix argument down.
4169         (dbus_binding_tool_output_glib_server): Pass prefix to
4170         glib-genmarshal.
4171         
4172 2005-05-11  Colin Walters  <walters@verbum.org>
4173
4174         * tools/dbus-send.c (append_array): New function.
4175         (append_arg): Broken out from main.
4176         (main): Add cheesy hack to send arrays and variants.
4177         (usage): Update.
4178         * tools/dbus-print-message.c (print_iter): Broken out
4179         from main.
4180
4181 2005-05-11  Colin Walters  <walters@verbum.org>
4182
4183         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4184         New function, returns signature string for signature iter.
4185         * dbus/dbus-signature.h: Prototype it.
4186         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4187         New function, returns signature string for message iter.
4188         (dbus_message_iter_get_array_len): New function, returns
4189         length of array.
4190         (dbus_message_iter_get_fixed_array): Fix assertion; this
4191         function should be used when the iter is pointing to the
4192         contents of an array
4193         * dbus/dbus-message.h: Prototypes.
4194         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4195         New function; returns length of an array.
4196         * dbus/dbus-marshal-recursive.h: Prototype it.
4197         
4198 2005-05-11  Colin Walters  <walters@verbum.org>
4199
4200         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4201         compilation error.
4202         
4203 2005-05-08  Havoc Pennington  <hp@redhat.com>
4204
4205         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4206         daemon's pid, not the parent's pid, to the file descriptor.
4207         Reported by Taj Morton.
4208
4209 2005-05-05  Havoc Pennington  <hp@redhat.com>
4210
4211         * configure.in (LT_*): add notes on how the libtool versioning
4212         works to save thinking. Increment soname to indicate protocol
4213         breakage (though really the library interface hasn't changed I
4214         guess)
4215
4216         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4217         verify the GUID received from server matches what we were
4218         expecting, if we had an expectation
4219
4220         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4221         (_dbus_auth_get_guid_from_server): new function
4222         (send_begin): parse the OK args
4223
4224         * doc/dbus-specification.xml: add GUID to the auth protocol
4225
4226 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4227
4228         * Fix my name in previous changelog ;)
4229
4230         * python/proxies.py (ProxyObject.__getattr__): add further patch
4231         from Anthony Baxter to throw an AttributeError when python 
4232         __special__ functions are called instead of marshling them over 
4233         the bus (Bug#1685 comment 3).
4234
4235 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4236
4237         * python/Makefile.am: changed to use pyexecdir for the binding
4238         shared libraries (Bug#2494)
4239
4240         * python/exceptions.py: bring exceptions over from the bindings
4241         so they can be used in applications (Bug#2036)
4242         Make all exceptions derive from DBusException
4243
4244         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4245         of classes so that print obj doesn't throw an exception (Bug #1685)
4246
4247 2005-05-03  Ross Burton  <ross@openedhand.com>
4248
4249         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4250         Return if we get an error during registration.  Set up a
4251         weak reference on object to unregister if object is destroyed.
4252         (unregister_gobject): New function.
4253         
4254 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4255
4256         * python/dbus_bindings.pyx.in: 
4257         - added new type classes for hinting to the marashaler what type 
4258         to send over the wire
4259         - added int16 and uint16 marshalers
4260         - Fixed a bug in the type constants that caused int32 to go out
4261         as uint16 over the wire
4262         * python/dbus.py: split up into different files and renamed _dbus.py
4263         * python/__init__.py, python/_util.py, python/decorators.py, 
4264         python/exceptions.py, python/proxies.py, python/services.py,
4265         python/types.py: new files split off from dbus.py
4266         * python/Makefile.am: Add new files, remove dbus.py and 
4267         install all python files to <python module dir>/dbus
4268         * python/examples/*: Added #!/usr/bin/env python to the top of
4269         every example.  Patch provided by Tatavarty Kalyan
4270
4271 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4272
4273         * NEWS: Update to 0.33
4274
4275 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4276
4277         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4278         method for doing async calls
4279         (_pending_call_notification): New C function for handling pendning call
4280         callbacks
4281         (set_notify): New method for setting pending call notification
4282         
4283         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4284         Async capabilities added to remote method calls
4285         (Sender): class removed
4286         (RemoteService): class removed
4287         (ObjectTree): class removed for now
4288         (RemoteObject): Renamed to ProxyObject
4289         (RemoteMethod): Renamed to ProxyMethod
4290         (method): Decorator added for decorating python methods as dbus methods
4291         (signal): Decorator added for decorating python methods as signal emitters
4292         (ObjectType): Metaclass added for generating introspection data and the
4293         method callback vtable
4294         (Interface): Wrapper class added to wrap objects in a dbus interface
4295         (Object): Uses ObjectType as its metaclass and exports Introspect
4296         of the org.freedesktop.DBus.Introspectable interface
4297         (ValidationException, UnknownMethodException): new exceptions
4298
4299         * python/examples/*: Modified to fit with the new bindings
4300
4301 2005-04-23  Havoc Pennington  <hp@redhat.com>
4302
4303         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4304         reported by Tony Houghton
4305
4306         * test/test-service.c (main): test
4307         dbus_connection_get_object_path_data()
4308
4309         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4310         the exact_match
4311         (_dbus_object_tree_get_user_data_unlocked): new function used by
4312         dbus_connection_get_object_path_data()
4313         (do_register): add assertion test for get_user_data_unlocked
4314         (object_tree_test_iteration): more tests
4315
4316         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4317         new function from Dan Reed to let you get the user data from 
4318         dbus_connection_register_object_path()
4319
4320 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4321
4322         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4323         in numerous places that did not account for the NULL terminator
4324         (signature_from_seed): changed the manual string copy loop to 
4325         just use strcpy instead
4326         make check should now pass
4327
4328 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4329
4330         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4331         so that it allows messages that are not signals to pass in 
4332         NULL as the interface.
4333
4334 2005-04-18  David Zeuthen  <davidz@redhat.com>
4335
4336         * glib/dbus-gmain.c (io_handler_destroy_source): 
4337         (timeout_handler_destroy_source, connection_setup_free): 
4338         Also unref the source to avoid memory leaks.
4339
4340 2005-04-13  David Zeuthen  <davidz@redhat.com>
4341
4342         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4343         more reasonable, yet still totally arbitrary, value :-). 
4344
4345 2005-04-13  David Zeuthen  <davidz@redhat.com>
4346
4347         * doc/TODO: Added an "important for 1.0" item about selinux
4348         allow/deny messages
4349
4350 2005-04-13  David Zeuthen  <davidz@redhat.com>
4351
4352         * bus/selinux.c: Add c-file-style to top of file
4353         (log_audit_callback): Don't free the data here anymore
4354         (bus_selinux_check): Don't take spid and tpid since appending
4355         that to auxdata may OOM.
4356         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4357         to the caller if we are OOM by taking an error object.
4358         (bus_selinux_allows_send): -do-
4359
4360         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4361         and bus_selinux_allows_send
4362
4363         * bus/bus.c (bus_context_check_security_policy): Pass error and
4364         pass on OOM thrown by bus_selinux_allows_send()
4365
4366         * bus/services.c (bus_registry_acquire_service): Pass error and
4367         pass on OOM thrown by bus_selinux_allows_acquire_service()
4368
4369 2005-04-13  Havoc Pennington  <hp@redhat.com>
4370
4371         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4372         message at a time to avoid monopolizing the main loop, bug 
4373         #2953 from Benjamin Otte
4374
4375 2005-04-09  Havoc Pennington  <hp@redhat.com>
4376
4377         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4378         possible overlap, fix from Daniel Reed
4379         (fixup_alignment): fix signedness warnings
4380         (_dbus_string_append_unichar): ditto
4381
4382 2005-04-09  Havoc Pennington  <hp@redhat.com>
4383
4384         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4385
4386         * glib/dbus-glib-tool.c (main): fix warning
4387
4388         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4389
4390         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4391         add a new function that can be used in simple applications that
4392         don't have a main loop and are willing to block
4393
4394 2005-04-05  David Zeuthen  <davidz@redhat.com>
4395
4396         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4397
4398         * glib/dbus-gmain.c:
4399         (io_handler_destroy_source): Remove from list of IO handlers
4400         of the ConnectionSetup object
4401         (timeout_handler_destroy_source): -do- for timeout handlers
4402         (io_handler_source_finalized): Don't remove from list since
4403         we now do that in io_handler_destroy_source(). Renamed from
4404         io_handler_source_destroyed
4405         (timeout_handler_source_destroyed): -do- for timeout handlers
4406         (connection_setup_free): It is now safe to iterate over all
4407         IO and timeout handlers as the _destroy_source removes them
4408         from the list synchronously
4409
4410 2005-03-30  Havoc Pennington  <hp@redhat.com>
4411
4412         * configure.in: change check to gtk 2.4
4413
4414         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4415         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4416         to 2.4
4417
4418 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4419
4420         * News: Update 0.32
4421
4422         * HACKING: Fixed realease instructions.  configure.in should be updated to
4423           the next release by the person who made the last release.
4424
4425 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4426
4427         * python/lvalue_cast_post_process.py - removed.  Patch has been
4428           submitted to Pyrex maintainers that fixes gcc4.0 errors
4429
4430         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4431
4432 2005-03-24  Daniel Reed  <n@ml.org>
4433
4434         * tools/Makefile.am: Make print-introspect and
4435         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4436
4437 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4438
4439         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4440
4441         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4442           had in Red Hat packages for a while but for some reason never 
4443           got merged upstream
4444           (_dbus_is_a_number): New checks if a string
4445           can be converted to a number and does the conversion if it can
4446           (_dbus_user_database_lookup): Add check to see if the given username
4447           is a udi.  This allows udi's to be used instead of usernames in the
4448           config file.
4449           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4450           is a gdi.  This allows gdi's to be used instead of groupnames in the
4451           config file.
4452
4453 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4454
4455         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4456           code so that it compiles with gcc4.0
4457
4458         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4459           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4460           results back to dbus_binding.c
4461
4462 2005-03-20  Colin Walters  <walters@verbum.org>
4463
4464         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4465
4466         * configure.in: Require GTK+ 2.6.
4467         
4468 2005-03-20  Colin Walters  <walters@verbum.org>
4469
4470         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4471
4472 2005-03-17  Tom Parker  <palfrey@tevp.net>
4473
4474         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4475         print DBUS_UID_UNSET; instead print passed username.  Also
4476         be sure to actually use gid looked up in cache.
4477         
4478         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4479         for DBUS_GID_UNSET and groupname.
4480
4481 2005-03-17  Colin Walters  <walters@verbum.org>
4482
4483         * bus/print-introspect.c: Move to tools/.
4484         * bus/run-with-tmp-session-bus.sh: Ditto.
4485         
4486         * glib/Makefile.am (dbus-glib-bindings.h): Move
4487         generation to tools/Makefile.am.
4488
4489         * test/glib/run-test.sh: Update to handle move
4490         of run-with-tmp-session-bus.sh.
4491
4492         * test/glib/test-service-glib.c: Update to handle
4493         move of dbus-glib-bindings.h.
4494
4495         * tools/print-introspect.c: Moved here
4496         from bus/, and ported to GLib bindings.
4497
4498         * tools/run-with-tmp-session-bus.sh: Moved here
4499         from bus/.
4500
4501         * tools/Makefile.am: Generate dbus-glib-bindings.h
4502         and dbus-bus-introspect.xml here.
4503
4504         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4505         Update.
4506
4507 2005-03-17  Colin Walters  <walters@verbum.org>
4508
4509         * bus/driver.c (write_args_for_direction): Use
4510         _dbus_string_get_const_data to retrieve string;
4511         _dbus_string_get_const_data_len doesn't actually return
4512         a NULL-terminated substring.
4513
4514         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4515         (main): Change to use org_freedesktop_DBus_request_name
4516         instead of using g_proxy_begin_call/end_call.
4517
4518 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4519
4520         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4521         generating the finalizer.  Fixes from Ben Maurer.
4522
4523 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4524
4525         * mono/BusDriver.cs: Update method names: ListServices
4526         becomes ListNames; GetOwner becomes GetNameOwner.
4527
4528         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4529         onto the eval stack when removing the delegate.
4530
4531 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4532
4533         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4534         LT_CURRENT.  Set it to the autoconf variable.
4535                                                                                 
4536         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4537         classes that disconnects the signal handler delegate from the
4538         service object.  Fixes a big leak of proxy objects on the
4539         client side of things.  Patch from Ben Maurer
4540         <bmaurer@ximian.com>
4541
4542 2005-03-12  Colin Walters  <walters@verbum.org>
4543
4544         * bus/driver.c (write_args_for_direction): New function,
4545         parses a type signature into arguments and outputs to
4546         XML.
4547         (bus_driver_handle_introspect): Use it instead of
4548         hardcoding XML for certain signatures.
4549         
4550         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4551         dependency on dbus-daemon.
4552
4553         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4554         argument, pass it to dbus_binding_tool_output_glib_client.
4555
4556         * glib/dbus-binding-tool-glib.c
4557         (generate_client_glue): Protect against multiple inclusion.
4558         (dbus_binding_tool_output_glib_client): Add
4559         G_BEGIN_DECLS/G_END_DECLS.
4560
4561         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4562         Change to just take iface prefix directly.
4563         (write_formal_parameters): Clarify error message.
4564         (check_supported_parameters): New function; checks to see type
4565         signatures of method parameters are supported.
4566         (generate_client_glue): Handle ignore_unsupported flag.
4567         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4568         parameter.
4569
4570         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4571         --ignore-unsupported by default until glib bindings
4572         support arrays.
4573
4574 2005-03-11  Colin Walters  <walters@verbum.org>
4575
4576         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4577         install it.
4578
4579         * bus/print-introspect.c: New file; prints introspection
4580         data for a given name and object path.
4581
4582         * bus/run-with-tmp-session-bus.sh: New file, refactored
4583         from test/glib/run-test.sh.  Creates a temporary session
4584         bus and runs another program.
4585
4586         * test/glib/run-test.sh: Refactor to invoke
4587         run-with-tmp-session-bus.sh.
4588
4589         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4590         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4591         macros instead of hardcoding.
4592
4593         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4594
4595 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4596
4597         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4598         this unref; it doesn't match up evenly in some codepaths.
4599         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4600         this evenly matches with the ref near the top of this function.
4601
4602 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4603
4604         * dbus/dbus-object-tree.c
4605         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4606         and we try to unregister a path that's not registered, still go
4607         through the process of unlocking and don't just return.
4608
4609 2005-03-09  Colin Walters  <walters@verbum.org>
4610
4611         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4612         to this are generated for client-side wrappers.  Invokes a
4613         D-BUS method and returns reply values.  
4614
4615         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4616         function; writes signature string for argument direction.
4617         (write_args_for_direction): Change to pass input values directly
4618         instead of via address, and fix indentation.
4619         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4620         make generated wrappers inlineable.
4621
4622         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4623         note about using dbus_type_is_fixed.
4624
4625         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4626         dbus/dbus-signature.c as dbus_type_is_fixed.
4627
4628         All callers updated.
4629
4630         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4631         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4632
4633         * dbus/dbus-signature.h: Prototype.
4634
4635         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4636         error printf code.
4637
4638         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4639         appropriate instead of just freeing it.
4640         (main): Free returned strings using g_free.
4641
4642         * test/glib/Makefile.am (test-service-glib-glue.h)
4643         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4644
4645         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4646         simply maps a simple D-BUS type to GType.
4647         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4648         GType.
4649         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4650         initialize the value with it.
4651         (dbus_gvalue_binding_type_from_type): Unused, delete.
4652         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4653         various types instead of unmarshalling to value data directly.
4654         Remove can_convert boolean.
4655         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4656         returning directly instead of using can_convert boolean.
4657         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4658         Stores a GValue in a pointer to a value of its corresponding C
4659         type.
4660
4661         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4662         add dbus_gvalue_store.
4663
4664 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4665
4666         Fix a bunch of lifecycle and memory management problems
4667         in the mono bindings.
4668
4669         * mono/Arguments.cs (Arguments): Implement IDisposable
4670
4671         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4672         strictly a static class.
4673
4674         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4675         delegates into this file.
4676         (Connection): Implement IDisposable.
4677         (Dispose): Disconnect the connection and set the raw connection
4678         pointer to IntPtr.Zero.
4679         (~Connection): Call Dispose().
4680         (RegisterObjectPath): Added.  Manages the registration of object
4681         paths so we can cleanly disconnect them at dispose/finalize time.
4682         (UnregisterObjectPath): Ditto.
4683         (set_RawConnection): Unregister all of the object paths when
4684         changing the underlying DBusConnection.  Add them back onto the
4685         new connection, if any.
4686
4687         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4688         more unmanaged resources anymore, so it's not necessary.  Move all
4689         the DBusObjectPathVTable stuff out of here.
4690         (Handler): Save references to our delegates so that they don't get
4691         finalized.  Call Connection.RegisterObjectPath() instead of
4692         dbus_connection_register_object_path() directly.
4693         (Message_Called): Dispose the message after we're finished with
4694         it.
4695
4696         * mono/Message.cs (Message): Implement IDisposable.
4697         (Dispose): Dispose the Arguments, and set the RawMessage to
4698         IntPtr.Zero.
4699         (SendWithReplyAndBlock): We own the ref to the reply that comes
4700         back from dbus_connection_send_with_reply_and_block() so add a
4701         comment about that and unref it after we've constructed a managed
4702         MethodReturn class around it.  Fixes a big, big leak.
4703
4704         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4705         method.
4706         (BuildSignalHandler): After we've sent the Signal message, dispose
4707         of it.
4708         (BuildMethod): Dispose of the method call and reply messages after
4709         we've sent the message and extracted the data we want from the
4710         reply.
4711
4712         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4713         anymore.
4714         (Service_FilterCalled): Dispose of the message after we're
4715         finished with it.
4716
4717 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4718
4719         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4720         After we attach our pending call to the connection, unref
4721         it.  Fixes a leak.
4722  
4723         * mono/Connection.cs (set_RawConnection): Disconnect our
4724         filter and match callbacks from the old connection and
4725         reconnect them to the new connection, if any.
4726
4727         * mono/DBusType/Array.cs: "Code" is a static member, so
4728         don't use "this" to refer to it.  Fix for stricter checking
4729         in Mono 1.1.4.
4730  
4731         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4732         object path that we pass into unmanaged code.
4733  
4734         * mono/DBusType/String.cs (Append): Don't leak the string
4735         that we pass into unmanged code.
4736
4737 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4738         * NEWS: Update for 0.31
4739
4740         * configure.in: Release 0.31
4741         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4742
4743         * qt/Makefile.am: fixed build
4744
4745         * dbus/Makefile.am: soname bump for libdbus
4746
4747         * glib/Makefile.am: soname bump for libdbus-glib
4748
4749 2005-03-05  Havoc Pennington  <hp@redhat.com>
4750
4751         * dbus/dbus-sysdeps.c:
4752         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4753         value
4754         (_dbus_generate_random_bytes_buffer): fix return value
4755
4756         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4757         checks actually work, from Tom Parker <fdo@tevp.net>
4758
4759 2005-03-01  Colin Walters  <walters@verbum.org>
4760
4761         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4762         functions copied from dbus-glib-tool.c.
4763         (main): Convert lots of error code to use them.
4764         Also add some testing for introspection bits.
4765
4766 2005-03-01  Colin Walters  <walters@verbum.org>
4767         
4768         * doc/TODO: Remove introspection signature TODO.
4769
4770 2005-02-27  Colin Walters  <walters@verbum.org>
4771
4772         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4773         Change return value to const char * instead of int so we can do
4774         full signatures.
4775         (struct PropertyInfo, struct ArgInfo): Store char *.
4776         (property_info_new, arg_info_new): Update parameters, strdup.
4777         (property_info_unref, arg_info_unref): Free.
4778
4779         * glib/dbus-gidl.h: Update prototypes.
4780
4781         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4782         (validate_signature): New function, just validates signature and
4783         sets GError.
4784         (parse_property, parse_arg): Invoke validate_signature.  Store
4785         signature instead of just type code.
4786
4787         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4788         function to return a primary type for a signature, dropping
4789         information about types in container types.
4790         (dbus_gvalue_genmarshal_name_from_type)
4791         (dbus_gvalue_binding_type_from_type)
4792         (dbus_gvalue_ctype_from_type): Update to take full signature
4793          instead of type code.
4794         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4795
4796         * glib/dbus-gvalue.h: Update prototypes for above.
4797
4798         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4799         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4800         (introspect_properties, introspect_signals, write_interface):
4801         Update to handle signatures, and remove usage of
4802         _dbus_gutils_type_to_string.
4803         (handle_introspect): Print out type codes instead of e.g. "string"
4804         in hardcoded introspection XML; also use x_AS_STRING constants
4805         instead of hardcoding in string.
4806
4807         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4808         to string.  Remove usage of _dbus_gutils_type_to_string.
4809
4810         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4811
4812         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4813         deletion.
4814         
4815         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4816         (compute_marshaller_name, generate_glue): Handle signature change
4817         to string.
4818         (write_formal_parameters, write_args_for_direction): Ditto, and
4819         remove FIXME.
4820
4821         * tools/dbus-tree-view.c (type_to_string): Delete.
4822         (info_set_func_text): Update to print full signatures.
4823
4824         * test/glib/test-service-glib.xml: Change types to new
4825         introspection format.
4826
4827 2005-02-26  Havoc Pennington  <hp@redhat.com>
4828
4829         * doc/TODO: remove the "guid" item
4830
4831         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4832         (with_bus_thread_func): use open_private
4833
4834         * dbus/dbus-connection.c (dbus_connection_open_private): new
4835         function that works like the old dbus_connection_open()
4836         (dbus_connection_open): now returns an existing connection if
4837         possible
4838
4839         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4840         through the GUID to the transport
4841
4842         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4843         GUID in hex-encoded form.
4844
4845         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4846         pass GUID argument in to the transport
4847
4848         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4849         guid argument
4850
4851         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4852
4853         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4854
4855 2005-02-25  Havoc Pennington  <hp@redhat.com>
4856
4857         * doc/dbus-specification.xml: document the GUID thing
4858
4859         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4860         globally unique ID for the server, and put a "guid=hexencoded"
4861         field in the address
4862
4863         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4864
4865         * dbus/dbus-message.c: ditto
4866
4867         * dbus/dbus-dataslot.c: ditto
4868
4869         * dbus/dbus-list.c: ditto
4870
4871         * dbus/dbus-internals.h: wait, just include
4872         dbus-threads-internal.h here
4873         
4874         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4875         use in main library
4876
4877         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4878
4879 2005-02-24  Colin Walters  <walters@verbum.org>
4880
4881         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4882
4883 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4884
4885         * glib/Makefile.am: added dbus-gobject.h to sources list
4886         so distcheck doesn't fail
4887         
4888 2005-02-24  Havoc Pennington  <hp@redhat.com>
4889
4890         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4891         you must disconnect before unref, since locking and other things
4892         are screwed up otherwise. Fix assorted other locking stuff.
4893
4894         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4895         fix compilation
4896
4897         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4898         into a private header and don't export from the library
4899
4900         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4901
4902 2005-02-24  Colin Walters  <walters@verbum.org>
4903         
4904         * dbus/dbus-signature.c: New file; implements various functions
4905         related to type signatures.  Includes an interator for parsing,
4906         validation functions.
4907         (dbus_type_is_basic): Moved here from
4908         dbus-marshal-basic.c:_dbus_type_is_basic.
4909         (dbus_type_is_container): Moved here from
4910         dbus-marshal-basic.c:_dbus_type_is_container.
4911
4912         All callers of _dbus_type_is_container and _dbus_type_is_basic
4913         updated, and include dbus-signature.h.
4914
4915         * dbus/dbus-signature.h: New file; prototypes for the above.
4916
4917         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4918         dbus-signature.h.
4919
4920         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4921         function factored out of _dbus_first_type_in_signature.
4922         (_dbus_first_type_in_signature_c_str): New function; returns first
4923         type code for a type signature character.
4924
4925         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4926         handle function moves.
4927
4928         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4929
4930         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4931         function; skips to next complete type in type signature.
4932         Implemented using previous skip_one_complete_type.  Now
4933         skip_one_complete_type just delegates to
4934         _dbus_type_signature_next.
4935
4936         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4937         to dbus-signature.c
4938         (_dbus_type_is_container): Ditto.
4939
4940         * doc/dbus-specification.xml: Update introspection sample to
4941         use real type signatures.
4942
4943         * dbus/dbus-test.h: Prototype signature test.
4944
4945         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4946         signature tests.
4947
4948         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4949
4950 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4951
4952         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4953         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4954
4955 2005-02-21  Colin Walters  <walters@verbum.org>
4956
4957         * dbus/dbus-test-main.c (main): Take optional specific test
4958         argument.
4959
4960         * dbus/dbus-test.c (run_test): New function, runs a test function
4961         with no data directory.
4962         (run_data_test): Like above, but takes data directory.
4963         (dbus_internal_do_not_use_run_tests): Take
4964         specific test argument.  Replace lots of cut n' paste code
4965         with run_test and run_data_test.
4966
4967         * dbus/dbus-test.h: Update prototype for
4968         dbus_internal_do_not_use_run_tests.
4969
4970 2005-02-20  Havoc Pennington  <hp@redhat.com>
4971
4972         Fix bugs reported by Daniel P. Berrange
4973         
4974         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4975         (protected_change_watch): new function
4976         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4977         (_dbus_server_add_watch): change to work like the
4978         dbus-connection.c equivalents; like those, probably kind of
4979         busted, but should at least mostly work for now
4980         (dbus_server_disconnect): drop the lock if we were already
4981         disconnected, patch from Daniel P. Berrange
4982
4983         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4984         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4985         same stuff
4986
4987         * doc/TODO: todo about unscrewing this mess
4988
4989 2005-02-19  Colin Walters  <walters@verbum.org>
4990
4991         * glib/dbus-binding-tool-glib.c
4992         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4993
4994         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4995         as errno.h and sys/stat.h.
4996         (lose): New function, prints error with
4997         newline and exits.
4998         (lose_gerror): Similar, but takes GError for message.
4999         (main): Add --output argument to specify output file to write to,
5000         instead of always printing to stdout.  In this mode, determine
5001         timestamps on source files to see whether any are newer than the
5002         target file.  If not, exit.  Also convert a number of error
5003         messages to use lose (since it's shorter), and switch to using
5004         g_io_channel_shutdown.
5005
5006 2005-02-19  Havoc Pennington  <hp@redhat.com>
5007
5008         * glib/dbus-gobject.c
5009         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5010
5011         * glib/dbus-glib.c: fix doxygen warnings
5012
5013         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5014         is found on an <arg>
5015
5016 2005-02-17  Colin Walters  <walters@verbum.org>
5017
5018         * glib/dbus-gobject.h: Don't export
5019         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5020         
5021         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5022         (invoke_object_method): Handle it.
5023
5024         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5025         Handle rename.
5026         
5027 2005-02-17  Colin Walters  <walters@verbum.org>
5028
5029         * bus/.cvsignore, doc/.cvsignore
5030         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5031         Update.
5032
5033 2005-02-17  Colin Walters  <walters@verbum.org>
5034         
5035         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5036         Rename to DBUS_SERVICE_DBUS.
5037         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5038         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5039         Change the value from "org.freedesktop.Local"
5040         to "org.freedesktop.DBus.Local".
5041         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5042         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5043         DBUS_INTERFACE_INTROSPECTABLE.
5044         Change the value from "org.freedesktop.Introspectable"
5045         to "org.freedesktop.DBus.Introspectable".
5046         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5047         DBUS_INTERFACE_PROPERTIES.
5048         Change the value from "org.freedesktop.Properties"
5049         to "org.freedesktop.DBus.Properties".
5050         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5051         DBUS_INTERFACE_PEER.
5052         Change the value from "org.freedesktop.Peer"
5053         to "org.freedesktop.DBus.Peer".
5054         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5055         DBUS_INTERFACE_LOCAL.
5056         Change the value from "org.freedesktop.Local"
5057         to "org.freedesktop.DBus.Local".
5058
5059         All other users of those constants have been changed.
5060
5061         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5062
5063         * glib/dbus-gobject.c (handle_introspect): Use constants.
5064
5065         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5066
5067 2005-02-17  Colin Walters  <walters@verbum.org>
5068
5069         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5070         (parse_node, parse_interface, parse_method, parse_signal)
5071         (parse_property, parse_annotation): Lose if we're currently in an
5072         annotation.
5073         (parse_annotation): New function.
5074         (parser_start_element, parser_end_element): Handle annotation.
5075         (parse_method, parse_interface): Remove support for c_name attribute,
5076         switch to annotations.
5077
5078         * glib/dbus-gidl.h (interface_info_get_binding_names)
5079         (method_info_get_binding_names)
5080         (interface_info_get_binding_name, method_info_get_binding_name)
5081         (interface_info_set_binding_name, method_info_set_binding_name):
5082         Remove.
5083         (interface_info_get_annotations, method_info_get_annotations)
5084         (interface_info_get_annotation, method_info_get_annotation)
5085         (interface_info_add_annotation, method_info_add_annotation):
5086         Prototype.
5087
5088         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5089         for "bindings".
5090         (struct MethodInfo): Ditto.
5091         Straightfoward conversion of binding methods into annotation methods
5092         as prototyped.
5093
5094         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5095
5096         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5097
5098         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5099         Use new annotation API.
5100
5101         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5102         annotation element.
5103         
5104         * doc/dbus-specification.xml: Discuss introspection annotations,
5105         include list of well-known annotations.
5106
5107         * test/glib/test-service-glib.xml: Make validate against new DTD.
5108
5109 2005-02-17  Colin Walters  <walters@verbum.org>
5110
5111         This patch is based on initial work from
5112         Paul Kuliniewicz <kuliniew@purdue.edu>.
5113
5114         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5115         initialization of GValue from dbus type to here.
5116         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5117         for the "glib-genmarshal" program from a DBus type.
5118         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5119         into the C name for it we use in the glib bindings.
5120         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5121         glib C type (not GValue).
5122         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5123
5124         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5125         from dbus-gobject.c.
5126
5127         * glib/dbus-gutils.h: Prototype it.
5128
5129         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5130         (marshal_dbus_message_to_g_marshaller): Use new shared function
5131         dbus_glib_marshal_dbus_message_to_gvalue_array.
5132
5133         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5134         Will be changed once we have annotations.
5135
5136         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5137         GStaticRWLock.  Callers updated.
5138         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5139         (string_table_next): New function for iterating over zero-terminated
5140         string value array.
5141         (string_table_lookup): New function; retrieves specific entry in
5142         array.
5143         (get_method_data): New function; look up method data in object data chunk.
5144         (object_error_domain_prefix_from_object_info)
5145         (object_error_code_from_object_info): New functions, but not implemented yet.
5146         (method_interface_from_object_info): New function; retrieve interface name.
5147         (method_name_from_object_info): New function; retrieve method name.
5148         (method_arg_info_from_object_info): New function; retrieve argument data.
5149         (arg_iterate): New function; iterates over serialized argument data.
5150         (method_dir_signature_from_object_info): New function; returns a
5151         GString holding type signature for arguments for just one
5152         direction (input or output).
5153         (method_input_signature_from_object_info)
5154         (method_output_signature_from_object_info): New functions.
5155         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5156         converts dbus message arguments into a GValue array.  Used for both
5157         signal handling and method invocation.
5158         (struct DBusGlibWriteIterfaceData): New utility structure.
5159         (write_interface): New function; generate introspection XML for
5160         an interface.
5161         (introspect_interfaces): New function; gathers all interface->methods,
5162         generates introspection XML for them.
5163         (handle_introspect): Invoke introspect_interfaces.
5164         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5165         (lookup_object_and_method): New function; examines an incoming message
5166         and attempts to match it up (via interface, method name, and argument
5167         signature) with a known object and method.
5168         (gerror_domaincode_to_dbus_error_name): New function; converts a
5169         GError domain and code into a DBus error name.  Needs GError data
5170         added to object introspection to work well.
5171         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5172         GError.
5173         (invoke_object_method): New function to invoke an object method
5174         looked up via lookup_object_and_method.  Parses the incoming
5175         message, turns it into a GValue array, then invokes the marshaller
5176         specified in the DBusGMethodInfo.  Creates a new message with
5177         either return values or error message as appropriate.
5178         (gobject_message_function): Invoke lookup_object_and_method and
5179         invoke_object_method.
5180
5181         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5182         (enum DBusBindingOutputMode): New enum for binding output modes.
5183         (pretty_print): Print binding names.
5184         (dbus_binding_tool_error_quark): GError bits.
5185         (version): Fix typo.
5186         (main): Create GIOChannel for output.  Parse new --mode argument,
5187         possible values are "pretty-print", "glib-server", "glib-client".
5188         Use mode to invoke appropriate function.
5189         
5190         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5191
5192         * glib/dbus-glib-tool.h: New header, just includes GError bits
5193         for now.
5194
5195         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5196         maps binding style to name.
5197         (struct MethodInfo): Ditto.
5198         (get_hash_keys, get_hash_key): Utility function, returns keys for
5199         a GHashTable.
5200         (interface_info_new, method_info_new): Initialize bindings.
5201         (interface_info_unref, method_info_unref): Destroy bindings.
5202         (method_info_get_binding_names, method_info_get_binding_name)
5203         (interface_info_get_binding_names, interface_info_get_binding_name):
5204         Functions for retrieving binding names.
5205         (method_info_set_binding_name, interface_info_set_binding_name):
5206         Functions for setting binding names.
5207
5208         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5209         for glib binding generation.
5210
5211         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5212         and client-side glib glue generation.
5213
5214         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5215         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5216         dbus-glib-tool.h.
5217
5218         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5219         of using GClosureMarshal directly.
5220         (struct DBusGObjectInfo): Add n_infos member.
5221
5222         * test/glib/test-service-glib.xml: New file; contains introspection data
5223         for MyTestObject used in test-service-glib.c.
5224
5225         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5226         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5227         (my_object_uppercase, my_object_many_args): New test methods.
5228         (main): Use dbus_g_object_class_install_info to include generated object
5229         info.
5230
5231         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5232         as well as client-side bindings.
5233
5234         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5235         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5236         using both the dbus_gproxy stuff directly as well as the generated bindings.
5237
5238 2005-02-15  Havoc Pennington  <hp@redhat.com>
5239
5240         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5241         complete a pending call, don't run filters first.
5242
5243         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5244         dbus_pending_call_steal_reply
5245
5246         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5247         _dbus_connection_block_pending_call
5248         (dbus_pending_call_get_reply): change to steal_reply and return a
5249         ref
5250
5251         * dbus/dbus-connection.c
5252         (dbus_connection_send_with_reply_and_block): port to work in terms
5253         of DBusPendingCall
5254         (_dbus_connection_block_pending_call): replace block_for_reply
5255         with this
5256
5257 2005-02-14  Havoc Pennington  <hp@redhat.com>
5258
5259         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5260         properly handle looking up group information by name; fix 
5261         from j@bootlab.org
5262
5263 2005-02-13  Havoc Pennington  <hp@redhat.com>
5264
5265         * dbus/dbus-connection.c (dbus_connection_return_message) 
5266         (dbus_connection_borrow_message): hold dispatch lock while message
5267         is outstanding
5268         (_dbus_connection_block_for_reply): hold dispatch lock while we
5269         block for the reply, so nobody steals our reply
5270         (dbus_connection_pop_message): hold the dispatch lock while we
5271         pluck the message
5272
5273 2005-02-13  Havoc Pennington  <hp@redhat.com>
5274
5275         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5276         (_dbus_connection_release_dispatch)
5277         (_dbus_connection_acquire_io_path)
5278         (_dbus_connection_release_io_path): make the mutex and condvar
5279         control access to the "acquired" flag. Drop the connection lock
5280         while waiting on the condvar. Hopefully these are baby steps in
5281         roughly the right direction.
5282
5283 2005-02-13  Havoc Pennington  <hp@redhat.com>
5284
5285         * dbus/dbus-connection.c: use separate mutexes for the condition
5286         variables; this is some kind of baseline for sanity, but the
5287         condition variables still aren't used correctly afaict
5288
5289 2005-02-13  Havoc Pennington  <hp@redhat.com>
5290
5291         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5292         fix a double-unlock
5293
5294         * dbus/dbus-connection.c
5295         (_dbus_connection_detach_pending_call_unlocked): add this
5296
5297         Initial semi-correct pass through to fix thread locking; there are
5298         still some issues with the condition variable paths I'm pretty
5299         sure
5300         
5301         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5302         lock/unlock calls
5303
5304         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5305         rename to add _unlocked
5306         (struct DBusConnection): move "dispatch_acquired" and
5307         "io_path_acquired" to use only one bit each.
5308         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5309         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5310         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5311         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5312         (_dbus_connection_remove_timeout) 
5313         (_dbus_connection_toggle_timeout): drop lock when calling out to
5314         user functions; done in a hacky/bad way.
5315         (_dbus_connection_send_and_unlock): add a missing unlock
5316         (_dbus_connection_block_for_reply): add a missing unlock
5317
5318         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5319         drop lock in a hacky probably unsafe way to call out to user
5320         function
5321
5322 2005-02-12  Havoc Pennington  <hp@redhat.com>
5323
5324         * tools/dbus-tree-view.c (info_set_func_text): display more
5325         details on args
5326
5327         * bus/driver.c (bus_driver_handle_list_services): list the bus
5328         driver
5329
5330         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5331
5332         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5333         (method_info_get_n_args): new function
5334
5335 2005-02-12  Havoc Pennington  <hp@redhat.com>
5336
5337         * bus/driver.c (bus_driver_handle_introspect): add introspection
5338         for bus driver
5339
5340 2005-02-12  Havoc Pennington  <hp@redhat.com>
5341
5342         * bus/driver.c: put the signature of each bus driver method in the
5343         table of handlers and check it on incoming calls; this isn't
5344         really useful, but going to add introspect support in a minute.
5345
5346 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5347
5348         * mono/Connection.cs: The unpredictability of finalizers in mono
5349         prevents us from deterministically disconnecting the filters from
5350         the Service class's finalizer, so move tracking of filters and
5351         matches here.  Add API for that.
5352
5353         * mono/Service.cs: Remove the code, add code which calls the
5354         methods now on the Connection class.
5355
5356 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5357
5358         * python/dbus.py (class Sender): added to support dbus signals better
5359         (Bus::add_signal_receiver): added expand_args parameter which defaults
5360         to True.  When expand args is True the signal handler will pass the 
5361         message arguments as parameters to the signal handler.  If False
5362         revert to previous behavior where the signal handler must get the
5363         argument list from the message.  This is to help port applications
5364         like HAL that have a tendancy to send variable length argument lists.
5365         self._match_rule_to_receivers is now a dict of dicts.
5366         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5367         removing it from a list
5368         (Bus::_signal_func): change signal handlers so that interface,
5369         signal_name, service, path and message are packed into a Sender
5370         object and that is passed to the handler.  If expand_args is True
5371         extract the args list from the message and append it to the parameter
5372         list
5373         
5374         * python/dbus_bindings.pyx.in (class Signature): added to support 
5375         signiature types
5376         (MessageIter::__init__): changed iteration limit to match D-BUS
5377         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5378         STRUCT and VARIENT type support
5379         (MessageIter::python_value_to_dbus_sig): made recursive to support
5380         recursive types
5381         (MessageIter::append*): added Signature, dict, tuple 
5382         support
5383
5384         * python/examples/example-client.py: added examples of getting tuples
5385         and dicts
5386
5387         * python/examples/example-service.py: added examples of sending tuples
5388         and dicts
5389
5390         * python/examples/example-signal-recipient.py: Fixed to handle new
5391         signal callback format
5392
5393 2005-02-10  Havoc Pennington  <hp@redhat.com>
5394
5395         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5396         (call dbus_g_proxy_add_signal)
5397
5398         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5399         escape the hostname
5400         (_dbus_server_new_for_domain_socket): escape the path
5401
5402         * dbus/dbus-address.c (dbus_address_escape_value): new
5403         (dbus_address_unescape_value): new
5404         (dbus_parse_address): unescape values
5405
5406         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5407
5408         * doc/dbus-specification.xml: explain how to escape values in
5409         addresses
5410
5411 2005-02-10  Havoc Pennington  <hp@redhat.com>
5412
5413         * dbus/dbus-message-factory.c (generate_special): modify test to
5414         avoid using a non-basic dict key
5415
5416         * dbus/dbus-marshal-validate-util.c: add test for the below
5417
5418         * doc/dbus-specification.xml: require that dict keys are a basic
5419         type
5420
5421         * dbus/dbus-marshal-validate.c
5422         (_dbus_validate_signature_with_reason): require that dict key is a
5423         basic type
5424
5425 2005-02-10  Havoc Pennington  <hp@redhat.com>
5426
5427         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5428         change to be _and_unlock instead of _unlocked
5429
5430         * dbus/dbus-connection.c
5431         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5432         have no_update so we can find this bug quickly in future
5433
5434 2005-02-10  Havoc Pennington  <hp@redhat.com>
5435
5436         * dbus/dbus-message-util.c (verify_test_message): tests for string
5437         array
5438
5439         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5440         support for arrays of string/signature/path
5441
5442 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5443
5444         * dbus/dbus-connection.c
5445         (_dbus_connection_queue_received_message_link,
5446         _dbus_connection_message_sent): Add the path to
5447         the verbose output.
5448         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5449         _dbus_connection_send_preallocated_unlocked(), updated the
5450         dispatch status, and unlocks.  Fixes a bug where certain
5451         situations (like a broken pipe) could cause a Disconnect message
5452         to not be sent, tricking the bus into thinking a service was still
5453         there when the process had quit.
5454         (_dbus_connection_send_preallocated): Call
5455         _dbus_connection_send_preallocated_and_unlock().
5456         (_dbus_connection_send_and_unlock): Added.  Calls
5457         _dbus_connection_send_preallocated_and_unlock().
5458         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5459         (dbus_connection_send_with_reply): Update the dispatch status and
5460         unlock.
5461
5462         * mono/Service.cs (~Service): Added.  Removes the filter so that
5463         we don't get unmanaged code calling back into a GCed delegate.
5464         (RemoveFilter); Added.
5465
5466 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5467
5468         * dbus/dbus-message.c (dbus_message_iter_open_container):
5469         - Removed check for iterator type being an array because
5470         get_arg_type does not work with writer iterators
5471         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5472
5473 2005-02-07  Havoc Pennington  <hp@redhat.com>
5474
5475         * doc/dbus-specification.xml: some more language cleanups; add
5476         stuff about how to deal with invalid protocol and extension
5477         points; add _ to allowed chars in auth commands; add EXTENSION_
5478         auth command prefix
5479
5480 2005-02-06  Havoc Pennington  <hp@redhat.com>
5481
5482         * s/expected/required/ in a couple places for clarity
5483
5484 2005-02-07  Colin Walters  <walters@verbum.org>
5485
5486         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5487         sender or proposed_recipient.
5488
5489 2005-02-06  Havoc Pennington  <hp@redhat.com>
5490
5491         * dbus/dbus-message-factory.c (generate_special): more tests
5492
5493         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5494         array length that exceeds the maximum
5495
5496 2005-02-05  Havoc Pennington  <hp@redhat.com>
5497
5498         * dbus/dbus-message-factory.c (generate_special): more test cases,
5499         increasing coverage
5500
5501         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5502         reason why a signature was invalid
5503
5504         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5505         skip the length of the string before we look at it in validation
5506
5507         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5508         equal_substring
5509
5510         * dbus/dbus-message.c (_dbus_message_loader_new): default
5511         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5512
5513 2005-02-05  Havoc Pennington  <hp@redhat.com>
5514
5515         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5516         if the signature of a variant was empty
5517         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5518         struct with no element type)
5519
5520         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5521         mangled messages to break things
5522
5523 2005-02-04  Havoc Pennington  <hp@redhat.com>
5524
5525         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5526         g_quark_try_string() so it actually can return 0
5527         (dbus_g_proxy_connect_signal): ditto
5528
5529 2005-02-04  Havoc Pennington  <hp@redhat.com>
5530
5531         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5532         bogus warning
5533         (tristring_from_message): assert cleanly on null path/interface
5534         (should not be possible though I decided later)
5535         (dbus_g_proxy_dispose): move proxy manager unregistration here
5536         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5537         g_return_if_fail() checks
5538
5539 2005-02-04  Havoc Pennington  <hp@redhat.com>
5540
5541         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5542
5543         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5544         (with some minor changes)
5545
5546         * doc/dbus-specification.xml: add deprecated attribute to
5547         introspection format
5548
5549 2005-01-31  Havoc Pennington  <hp@redhat.com>
5550
5551         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5552         think it's sort of right
5553
5554 2005-01-30  Havoc Pennington  <hp@redhat.com>
5555
5556         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5557
5558 2005-01-30  Havoc Pennington  <hp@redhat.com>
5559
5560         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5561
5562         * autogen.sh: change to autotools 1.9
5563
5564         * glib/dbus-gproxy.c: completely change how signals work
5565         (dbus_g_proxy_add_signal): new function to specify signature of a
5566         signal
5567         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5568         and g_warning if the incoming message has the wrong signature.
5569
5570 2005-01-30  Havoc Pennington  <hp@redhat.com>
5571
5572         * tools/dbus-names-model.c (have_names_notify): fix this
5573
5574         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5575         up the string array handling a bit 
5576
5577 2005-01-30  Havoc Pennington  <hp@redhat.com>
5578
5579         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5580         (dbus_g_pending_call_cancel): new function
5581
5582         * dbus/dbus-glib.h: move GType decls for connection/message here;
5583         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5584         here, just kind of rationalizing how we handle all that
5585
5586         * tools/dbus-names-model.c: new file for a tree model listing the
5587         services on a bus
5588
5589         * tools/dbus-tree-view.c (model_new): use proper typing on the
5590         model rows
5591
5592 2005-01-30  Havoc Pennington  <hp@redhat.com>
5593
5594         * glib/dbus-gmain.c: add a custom GSource back that just checks
5595         whether the message queue has anything in it; otherwise, there are 
5596         cases where we won't see messages in the queue since there was no 
5597         IO visible to the glib main loop
5598
5599         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5600         increase default message timeout to 25 seconds
5601
5602 2005-01-30  Havoc Pennington  <hp@redhat.com>
5603
5604         * test/glib/test-profile.c (no_bus_stop_server): remove the
5605         warning about the g_warning that I just fixed
5606
5607         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5608         custom source, seems to be a lot easier to understand and work
5609         better.
5610
5611 2005-01-30  Havoc Pennington  <hp@redhat.com>
5612
5613         I think this main loop thing is conceptually broken, but here are 
5614         some band aids. I'll maybe rewrite it in a minute.
5615         
5616         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5617         custom GSource, so don't pass it in; confusing
5618         (gsource_server_finalize, gsource_connection_finalize): add
5619         finalize handlers that remove all the watches.  
5620
5621 2005-01-30  Havoc Pennington  <hp@redhat.com>
5622
5623         * glib/dbus-gobject.c (introspect_properties): fix the XML
5624         generated
5625
5626         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5627         which effectively detects the use of freed messages
5628
5629         * glib/dbus-gobject.c (handle_introspect): modify and return the
5630         reply message instead of the incoming message
5631
5632         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5633         gee, maybe it should SEND THE XML instead of just making a string
5634         and freeing it again ;-)
5635
5636         * tools/dbus-print-message.c (print_message): improve printing of
5637         messages
5638
5639         * configure.in: add debug-glib.service to the output
5640
5641 2005-01-30  Havoc Pennington  <hp@redhat.com>
5642
5643         dbus-viewer introspected and displayed the bus driver
5644         
5645         * dbus/dbus-object-tree.c 
5646         (object_tree_test_iteration): add tests for a handler registered on "/"
5647
5648         * dbus/dbus-object-tree.c
5649         (_dbus_decompose_path): fix to handle path "/" properly
5650         (run_decompose_tests): add tests for path decomposition
5651         
5652         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5653         properly
5654
5655         * glib/dbus-gobject.c (handle_introspect): fix quotes
5656
5657         * test/glib/run-test.sh: support launching the bus, then running
5658         dbus-viewer
5659
5660         * test/glib/test-service-glib.c (main): put in a trivial gobject
5661         subclass and register it on the connection
5662
5663         * bus/driver.c (bus_driver_handle_introspect): implement
5664         introspection of the bus driver service
5665
5666         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5667         identifiers, doctype decl
5668
5669         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5670         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5671         returning the service unchanged.
5672         (bus_driver_handle_message): remove old check for reply_serial in
5673         method calls, now the message type deals with that
5674         (bus_driver_handle_message): handle NULL interface
5675
5676         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5677
5678         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5679         -1 for len
5680
5681         * tools/dbus-viewer.c: add support for introspecting a service on
5682         a bus
5683
5684         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5685         (dbus_g_pending_call_unref): add
5686
5687 2005-01-29  Havoc Pennington  <hp@redhat.com>
5688
5689         * tools/dbus-tree-view.c: add support for displaying properties.
5690         (run dbus-viewer with an introspect xml file as arg, then resize
5691         the window so the tree elements show up, not sure what that is)
5692
5693         * glib/dbus-gobject.c (handle_introspect): return
5694         org.freedesktop.Properties and org.freedesktop.Introspectable
5695         interfaces when we are introspected.
5696
5697         * doc/dbus-specification.xml: allow empty interface name when 
5698         Get/Set a property
5699
5700 2005-01-29  Havoc Pennington  <hp@redhat.com>
5701
5702         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5703         though it uses glib, it could be extended for any binding in
5704         principle
5705
5706         * glib/dbus-gobject.c (gobject_message_function): change to the
5707         new way properties work
5708
5709         * dbus/dbus-protocol.h: add the new interfaces
5710
5711         * doc/dbus-specification.xml: document the introspection format,
5712         Introspectable interface, and add an org.freedesktop.Properties
5713         interface.
5714
5715         * glib/dbus-gparser.c: add support for a <property> element
5716
5717         * glib/dbus-gidl.c: add PropertyInfo
5718
5719         * glib/dbus-gobject.c (handle_introspect): put the outermost
5720         <node> outside the signal and property descriptions.
5721         (introspect_properties): export properties as <property> rather
5722         than as method calls
5723
5724 2005-01-28  Havoc Pennington  <hp@redhat.com>
5725
5726         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5727         related to authentication protocol
5728
5729 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5730
5731         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5732                 - BUS_ACTIVATION -> BUS_STARTER
5733                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5734                 - class MessageIter (__init__): Added recursion checking 
5735                 so we throw a nice error instead of just disconnecting from the
5736                 bus.
5737                 (get): Added arg_type parameter for recursion.
5738                 Removed the nil type
5739                 Added signiture type placeholder (not implemented)
5740                 Added struct type placeholder (not implemented)
5741                 Added varient type placeholder (not implemented)
5742                 Commented out dict type for now     
5743                 (get_element_type): renamed from get_array_type
5744                 (get_*): changed to use the dbus_message_iter_get_basic API
5745                 (get_*_array): removed in favor of recursive get_array method
5746                 (get_array): new recursive method which calls get to marshal
5747                 the elements of the array
5748                 (value_to_dbus_sig): New method returns the corrasponding
5749                 dbus signiture to a python value
5750                 (append): Comment out dict handling for now
5751                 Handle lists with the new recursive API
5752                 Comment out None handling for now
5753                 (append_nil): removed
5754                 (append_*): changed to use dbus_message_iter_append_basic API
5755                 (append_*_array): removed in favor of recursive append_array 
5756                 method
5757                 (__str__): Make it easier to print out recursive iterators
5758                 for debugging
5759                 - class Message (__str__): moved type inspection to the
5760                 MessageIter class' __str__ method
5761                 (get_iter): Added an append parameter wich defaults to False
5762                 If True use the new API's to create an append iterator
5763
5764         * python/dbus.py: Update to use new bindings API
5765                 - TYPE_ACTIVATION -> TYPE_STARTER
5766                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5767                 - class ActivationBus -> class StarterBus
5768                 - class RemoteObject (__call__): get an append iterator
5769                 - (_dispatch_dbus_method_call): get an append iterator
5770                 - class Object (emit_signal): get an append iterator
5771
5772         * python/examples/: Fixed up the examples to work with the new API
5773                 
5774 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5775
5776         * configure.in: Bump version up to 0.30.
5777
5778         * HACKING: Add a release item to bump the version number up after 
5779         a release.
5780
5781 2005-01-28  Havoc Pennington  <hp@redhat.com>
5782
5783         * doc/dbus-specification.xml: update to describe 16-bit types and
5784         dict entries
5785
5786         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5787         assertion
5788
5789         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5790         type
5791
5792         * dbus/dbus-marshal-recursive.c: implement
5793
5794 2005-01-27  Havoc Pennington  <hp@redhat.com>
5795
5796         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5797
5798         * configure.in: find the right type for 16 and 32 bit ints as well
5799         as 64
5800
5801         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5802         the 16-bit types so people don't have to stuff them in 32-bit or
5803         byte arrays.
5804
5805 2005-01-27  Havoc Pennington  <hp@redhat.com>
5806
5807         * dbus/dbus-message.c: byteswap the message if you init an
5808         iterator to read/write from it
5809         
5810         * dbus/dbus-marshal-byteswap.c: new file implementing 
5811         _dbus_marshal_byteswap()
5812
5813         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5814
5815 2005-01-26  Havoc Pennington  <hp@redhat.com>
5816         
5817         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5818         build, apparently - nobody noticed?)
5819         
5820 2005-01-26  Havoc Pennington  <hp@redhat.com>
5821
5822         * dbus/dbus-marshal-recursive.h: remove todo comment
5823
5824 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5825
5826         * Land the mono binding changes to conform to the new APIs.
5827
5828         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5829         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5830
5831         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5832         type code as a string.
5833         (InitAppending): Rename dbus_message_append_iter_init() to
5834         dbus_message_iter_init_append().
5835
5836         * mono/BusDriver.cs: Rename ServiceEventHandler to
5837         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5838         Rename ServiceOwnerChanged to NameOwnerChanged.
5839
5840         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5841         underlying C call.
5842
5843         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5844
5845         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5846         dbus_bus_acquire_service() to dbus_bus_request_name().
5847
5848         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5849         of Type.UnderlyingSystemType to get the correct element type for
5850         the array.
5851         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5852         dbus_message_get_{element|arg}_type() instead of
5853         dbus_message_iter_init_array_iterator().
5854         (Append): Replace dbus_message_iter_append_array() with
5855         dbus_message_iter_open_container() and
5856         dbus_message_iter_close_container().
5857
5858         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5859         types have been removed.
5860         
5861         * mono/DBusType/*.cs: Replace calls of
5862         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5863         but specify the type in the DllImport extern declaration.  Ditto
5864         for dbus_message_iter_append_[type]() ->
5865         dbus_message_iter_append_basic().
5866
5867         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5868         NameOwnerChangedHandler.
5869
5870 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5871
5872         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5873                 - get_base_service -> get_unique_name
5874                 - bus_get_base_service -> bus_get_unique_name
5875                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5876                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5877                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5878                 - bus_activate_service -> bus_start_service_by_name
5879                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5880                 - bus_acquire_service -> bus_request_name
5881                 - dbus_bus_acquire_service -> dbus_bus_request_name
5882                 - bus_service_exists -> bus_name_has_owner
5883                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5884
5885         * python/dbus.py: Rename of methods
5886                 - activate_service -> start_service_by_name
5887                 - bus_acquire_service -> bus_request_name
5888                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5889                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5890
5891         
5892 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5893
5894         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5895         signature for the method that can't be found.
5896
5897         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5898         the message has any arguments, we need to call
5899         _dbus_type_reader_get_current_type(), not
5900         _dbus_type_reader_has_next().
5901
5902 2005-01-24  Havoc Pennington  <hp@redhat.com>
5903
5904         * dbus/dbus-message-factory.c: more testing of message validation
5905
5906         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5907         header
5908
5909 2005-01-23  Havoc Pennington  <hp@redhat.com>
5910
5911         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5912         get this all working, not many tests in the framework yet though
5913
5914 2005-01-22  Havoc Pennington  <hp@redhat.com>
5915
5916         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5917         tutorial, based on work from David Wheeler.
5918
5919 2005-01-21  Havoc Pennington  <hp@redhat.com>
5920
5921         * dbus/dbus-bus.c: add more return_if_fail checks
5922
5923         * dbus/dbus-message.c (load_message): have the "no validation"
5924         mode (have to edit the code to toggle the mode for now though)
5925
5926         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5927         skips all validation; I want to use this at least for benchmark
5928         baseline, I'm not sure if it should be a publicly-available switch.
5929
5930 2005-01-21  Havoc Pennington  <hp@redhat.com>
5931
5932         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5933         toplevel doxygen group as the low-level API stuff
5934
5935         * dbus/dbus.h: note that libdbus is the low-level API
5936
5937 2005-01-20  Havoc Pennington  <hp@redhat.com>
5938
5939         * update-dbus-docs.sh: script to update docs on the web site, only
5940         works for me though. neener.
5941
5942 2005-01-20  Havoc Pennington  <hp@redhat.com>
5943
5944         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5945         code can reveal bugs in it
5946
5947 2005-01-20  Havoc Pennington  <hp@redhat.com>
5948
5949         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5950         select() version, patches from Tor Lillqvist
5951
5952 2005-01-20  Havoc Pennington  <hp@redhat.com>
5953
5954         * doc/dbus-tutorial.xml: replace > with &gt;
5955
5956         * bus/services.c (bus_registry_acquire_service): validate the name
5957         and return a better error if it's no good.
5958
5959         * doc/dbus-specification.xml: note NO_AUTO_START change
5960
5961         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5962         from AUTO_START, we're toggling the default
5963
5964         * bus/dispatch.c: adapt the tests to change of auto-start default
5965
5966 2005-01-18  Havoc Pennington  <hp@redhat.com>
5967
5968         * rename dbus-daemon-1 to dbus-daemon throughout
5969
5970 2005-01-18  Havoc Pennington  <hp@redhat.com>
5971
5972         * Throughout, grand renaming to strip out the use of "service",
5973         just say "name" instead (or "bus name" when ambiguous).  Did not
5974         change the internal code of the message bus itself, only the
5975         programmer-facing API and messages.
5976         
5977         * doc/dbus-specification.xml: further update the message bus section
5978         
5979         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5980         in error case
5981
5982 2005-01-17  Havoc Pennington  <hp@redhat.com>
5983
5984         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5985         ever
5986
5987         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5988         "invalid name character" not only non-ASCII
5989
5990         * doc/dbus-specification.xml: further update spec, message bus 
5991         parts are still out-of-date but the marshaling etc. stuff is now
5992         accurate-ish
5993
5994 2005-01-17  Havoc Pennington  <hp@redhat.com>
5995
5996         * doc/dbus-specification.xml: partially update spec
5997
5998 2005-01-17  Havoc Pennington  <hp@redhat.com>
5999
6000         * Throughout, align variant bodies according to the contained
6001         type, rather than always to 8. Should save a fair bit of space in
6002         message headers.
6003         
6004         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6005         fix handling of case where p == end
6006
6007         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6008
6009 2005-01-17  Havoc Pennington  <hp@redhat.com>
6010
6011         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6012
6013         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6014         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6015         are marshaling/unmarshaling a boolean.
6016
6017 2005-01-16  Havoc Pennington  <hp@redhat.com>
6018
6019         This is about it on what can be disabled/deleted from libdbus
6020         easily, back below 150K anyhow. Deeper cuts are more work than 
6021         just turning the code off as I've done here.
6022         
6023         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6024         signed int convenience funcs
6025
6026         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6027         verbose mode
6028
6029         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6030         things out of libdbus
6031
6032         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6033         
6034         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6035         tests-enabled-only, though it should probably be deleted)
6036
6037         * dbus/dbus-message-util.c: same stuff
6038
6039         * dbus/dbus-auth-util.c: same stuff
6040
6041 2005-01-16  Havoc Pennington  <hp@redhat.com>
6042
6043         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6044
6045         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6046         way for stripping down dbus-userdb.c stuff included in libdbus.
6047         Rename _dbus_parse_uid for consistency.
6048
6049 2005-01-16  Havoc Pennington  <hp@redhat.com>
6050
6051         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6052         name the assertion failed in
6053
6054         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6055         (_dbus_return_val_if_fail): assert that the name of the function
6056         containing the check doesn't start with '_', since we only want to 
6057         use checks on public functions
6058         
6059         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6060         checks to assertions
6061
6062         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6063         change checks to asserts for private function
6064
6065         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6066         to asserts for private function
6067
6068         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6069         broken assertion that was breaking make check
6070         (_dbus_type_reader_array_is_empty): remove this rather than fix
6071         it, was only used in assertions
6072
6073 2005-01-16  Havoc Pennington  <hp@redhat.com>
6074
6075         * test/unused-code-gc.py: hacky script to find code that's used
6076         only by the bus (not libdbus) or used only by tests or not used at
6077         all. It has some false alarms, but looks like we can clean up a
6078         lot of size from libdbus.
6079
6080         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6081         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6082         
6083 2005-01-16  Havoc Pennington  <hp@redhat.com>
6084
6085         * Add and fix docs according to Doxygen warnings throughout
6086         source.
6087         
6088         * dbus/dbus-marshal-recursive.c
6089         (_dbus_type_reader_array_is_empty): change this to just call
6090         array_reader_get_array_len() and make it static
6091
6092         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6093         from get_array_type
6094         (dbus_message_iter_init_append): rename from append_iter_init
6095
6096         * dbus/dbus-marshal-recursive.c
6097         (_dbus_type_reader_get_element_type): rename from
6098         _dbus_type_reader_get_array_type
6099
6100 2005-01-15  Havoc Pennington  <hp@redhat.com>
6101
6102         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6103
6104         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6105         when DBUS_DISABLE_ASSERT
6106         (_dbus_marshal_set_basic): be sure we align for the string length
6107
6108         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6109         this look faster
6110
6111         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6112         inline macro version
6113         (_dbus_string_set_byte): provide inline macro version
6114
6115 2005-01-15  Havoc Pennington  <hp@redhat.com>
6116
6117         * Land the new message args API and type system.
6118
6119         This patch is huge, but the public API change is not 
6120         really large. The set of D-BUS types has changed somewhat, 
6121         and the arg "getters" are more geared toward language bindings;
6122         they don't make a copy, etc.
6123
6124         There are also some known issues. See these emails for details
6125         on this huge patch:
6126         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6127         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6128         
6129         * dbus/dbus-marshal-*: all the new stuff
6130
6131         * dbus/dbus-message.c: basically rewritten
6132
6133         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6134         freed blocks to be all non-nul bytes so using freed memory is less
6135         likely to work right
6136
6137         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6138         DBUS_FAIL_MALLOC=N environment variable, so you can do
6139         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6140         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6141         thorough.
6142
6143         * qt/message.cpp: port to the new message args API
6144         (operator<<): use str.utf8() rather than str.unicode()
6145         (pretty sure this is right from the Qt docs?)
6146
6147         * glib/dbus-gvalue.c: port to the new message args API
6148
6149         * bus/dispatch.c, bus/driver.c: port to the new message args API
6150
6151         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6152         "locked" flag to TRUE and align_offset to 0; I guess we never
6153         looked at these anyhow, but seems cleaner.
6154
6155         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6156         move allocation padding macro to this header; use it to implement
6157         (_DBUS_STRING_STATIC): ability to declare a static string.
6158
6159         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6160         change to return TRUE if the interface is not set.
6161
6162         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6163         to dbus-marshal-validate.[hc]
6164
6165         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6166         dbus-internals.c
6167
6168         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6169         to dbus-marshal-*.[hc]
6170
6171         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6172         function here from dbus-marshal.c
6173
6174 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6175
6176         * NEWS: Update for 0.23.
6177
6178         * configure.in: Release 0.23.
6179
6180 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6181
6182         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6183         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6184         behind.
6185
6186         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6187         uninstall"
6188
6189         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6190         is an enum, get the enum's underlying type.  Another mono
6191         1.1.3 fix.
6192
6193 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6194
6195         Patch from Sjoerd Simons <sjoerd@luon.net>
6196
6197         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6198         DESTDIR.  It breaks stuff.
6199
6200 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6201
6202         Patch from Tambet Ingo <tambet@ximian.com>
6203
6204         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6205         calling type.GetElementType().  The code previously depended on
6206         broken Mono behavior, which was fixed in Mono 1.1.3.
6207
6208         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6209         Activator.CreateInstance() so that the class's constructor is
6210         called with the right parameters.
6211
6212 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6213
6214         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6215
6216         * dbus/dbus-connection.c
6217         (_dbus_connection_queue_received_message_link): Call
6218         _dbus_connection_remove_timeout() instead of the _locked()
6219         variant, since it's always called from
6220         _dbus_connection_handle_watch(), which handles the locking.
6221         Removed the _locked() variant since it's no longer used.
6222
6223 2005-01-03  Havoc Pennington  <hp@redhat.com>
6224
6225         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6226         return
6227         
6228 2004-12-26  Havoc Pennington  <hp@redhat.com>
6229
6230         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6231
6232 2005-01-03  Havoc Pennington  <hp@redhat.com>
6233
6234         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6235         floating point
6236
6237         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6238
6239 2005-01-02  Havoc Pennington  <hp@redhat.com>
6240
6241         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6242
6243 2005-01-01  Havoc Pennington  <hp@redhat.com>
6244
6245         * configure.in: add -Wfloat-equal
6246
6247 2005-01-01  Havoc Pennington  <hp@redhat.com>
6248
6249         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6250         for a variety of reasons '==' doesn't do this.
6251
6252 2004-12-31  Havoc Pennington  <hp@redhat.com>
6253
6254         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6255         I keep wishing I had
6256
6257 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6258
6259         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6260
6261 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6262
6263         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6264         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6265         dbus-protocol.h.  Because they are defines and not enums they are not
6266         autogenerated.
6267
6268 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6269
6270         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6271         dbus_bus_activate_service
6272
6273         * python/dbus.py (Bus.activate_service): activate a service on the
6274         bus.
6275
6276 2004-12-24  Havoc Pennington  <hp@redhat.com>
6277
6278         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6279         file format has also changed and I haven't adapted to that yet
6280         
6281         * Makefile.am: load .gcno files from latest gcc
6282
6283 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6284         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6285
6286         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6287         lowlevel binding
6288
6289         * python/dbus.py (get_unix_user): Added binding to 
6290         call dbus_bindings.bus_get_unix_user
6291
6292         * python/extract.py: Modified the proto_pat regex to
6293         handle unsigned long
6294
6295 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6296
6297         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6298         better POSIX compliance.
6299
6300 2004-12-19  Havoc Pennington  <hp@redhat.com>
6301
6302         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6303         (_dbus_string_insert_8_aligned): new functions
6304
6305         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6306
6307 2004-12-18  Havoc Pennington  <hp@redhat.com>
6308
6309         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6310         macro
6311
6312         * dbus/dbus-message.c: fix a comment, and add a still-unused
6313         not-implemented function
6314
6315         * dbus/dbus-marshal.h: fix comment
6316
6317         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6318
6319 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6320
6321         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6322         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6323         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6324         Type.UnderlyingSystemType to get the actual system type
6325         underneath.  This code previously depended on the broken Mono
6326         behavior, which was fixed in 1.1.3.
6327
6328 2004-11-27  Havoc Pennington  <hp@redhat.com>
6329
6330         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6331         are disabled
6332         (_dbus_string_get_const_data): inline when asserts are disabled
6333
6334         * dbus/dbus-message.c: record the _dbus_current_generation of
6335         creation so we can complain if dbus_shutdown() is used improperly.
6336         Do this only if checks are enabled.
6337
6338         * dbus/dbus-connection.c: ditto
6339         
6340 2004-11-26  Havoc Pennington  <hp@redhat.com>
6341
6342         * test/glib/test-profile.c: add with_bus mode to profile echoes
6343         that go through the bus.
6344
6345         * test/glib/run-test.sh: add ability to run test-profile
6346
6347         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6348         config file reload.
6349
6350 2004-11-26  Havoc Pennington  <hp@redhat.com>
6351
6352         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6353         thing was implemented
6354
6355 2004-11-26  Havoc Pennington  <hp@redhat.com>
6356
6357         * test/glib/test-profile.c: tweak a bit, add support for some
6358         made-up minimal malloc overhead with plain sockets, since in 
6359         real life some sort of buffers are unavoidable thus we could 
6360         count them in the theoretical best case
6361
6362 2004-11-26  Havoc Pennington  <hp@redhat.com>
6363
6364         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6365         where I was trying to cache one too many messages
6366
6367 2004-11-26  Havoc Pennington  <hp@redhat.com>
6368
6369         * dbus/dbus-message.c: reimplement message cache as an array which 
6370         makes the cache about twice as fast and saves maybe 1.5% overall
6371
6372 2004-11-26  Havoc Pennington  <hp@redhat.com>
6373
6374         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6375         message cache lock here
6376
6377 2004-11-26  Havoc Pennington  <hp@redhat.com>
6378
6379         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6380         the "char byte_order" next to each other to save 4 bytes
6381         (dbus_message_new_empty_header): reduce preallocation, since the
6382         message cache should achieve a similar effect
6383         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6384         message cache that keeps a few DBusMessage around in a pool,
6385         another 8% speedup or so.
6386
6387         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6388
6389 2004-11-25  Havoc Pennington  <hp@redhat.com>
6390
6391         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6392         to write, without reading or blocking, try it before the poll()
6393         and skip the poll() if nothing remains to write. This is about a
6394         3% speedup in the echo client/server
6395
6396 2004-11-25  Havoc Pennington  <hp@redhat.com>
6397
6398         The primary change here is to always write() once before adding
6399         the write watch, which gives us about a 10% performance increase.
6400         
6401         * dbus/dbus-transport-unix.c: a number of modifications to cope
6402         with removing messages_pending
6403         (check_write_watch): properly handle
6404         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6405         messages_pending stuff
6406         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6407         AUTHENTICATED cases
6408         (unix_handle_watch): after writing, see if the write watch can be
6409         removed
6410         (unix_do_iteration): assert that write_watch/read_watch are
6411         non-NULL rather than testing that they aren't, since they 
6412         aren't allowed to be NULL. check_write_watch() at the end so 
6413         we add the watch if we did not finish writing (e.g. got EAGAIN)
6414
6415         * dbus/dbus-transport-protected.h: remove messages_pending call,
6416         since it resulted in too much inefficient watch adding/removing; 
6417         instead we now require that the transport user does an iteration 
6418         after queueing outgoing messages, and after trying the first
6419         write() we add a write watch if we got EAGAIN or exceeded our 
6420         max bytes to write per iteration setting
6421
6422         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6423         function
6424
6425         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6426         freed and then accessed, valgrind flagged this bug, fix it
6427
6428         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6429         as the last valid field plus 1, where really it is equal to the
6430         last valid field. Corrects some message corruption issues.
6431
6432         * dbus/dbus-mainloop.c: verbosity changes
6433
6434         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6435         instead of aborting in one of the test codepaths
6436
6437         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6438         caused not printing the pid ever again if a verbose was missing
6439         the newline at the end
6440         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6441
6442         * dbus/dbus-connection.c: verbosity changes; 
6443         (dbus_connection_has_messages_to_send): new function
6444         (_dbus_connection_message_sent): no longer call transport->messages_pending
6445         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6446         try to write() immediately, so we can avoid the write watch. This
6447         is the core purpose of this patchset
6448         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6449         dump the outgoing message queue, so nobody will get confused
6450         trying to send them or thinking stuff is pending to be sent
6451
6452         * bus/test.c: verbosity changes
6453
6454         * bus/driver.c: verbosity/assertion changes
6455
6456         * bus/dispatch.c: a bunch of little tweaks to get it working again
6457         because this patchset changes when/where you need to block.
6458
6459 2004-11-23  Havoc Pennington  <hp@redhat.com>
6460
6461         * test/glib/test-profile.c: modify to accept a plain_sockets
6462         argument in which case it will bench plain sockets instead of
6463         libdbus, for comparison purposes.
6464
6465 2004-11-22  Havoc Pennington  <hp@redhat.com>
6466
6467         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6468         threads for more time, so sysprof can get a grip on it.
6469
6470         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6471         pointless variable
6472
6473 2004-11-13  Havoc Pennington  <hp@redhat.com>
6474
6475         * test/glib/test-profile.c: fix this thing up a bit
6476
6477         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6478         preallocation sizes by a fair bit; not sure if this will be an
6479         overall performance win or not, but it does reduce reallocs.
6480
6481         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6482         the test hack that forced constant realloc if asserts are
6483         disabled, so we can profile sanely. Sprinkle in some
6484         _DBUS_UNLIKELY() which are probably pointless, but before I
6485         noticed the real performance problem I put them in.
6486         (_dbus_string_validate_utf8): micro-optimize this thing a little
6487         bit, though callgrind says it didn't help; then special-case
6488         ascii, which did help a lot; then be sure we detect nul bytes as
6489         invalid, which is a bugfix.
6490         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6491         superstition; use memset to nul the padding instead of a manual
6492         loop.
6493         (_dbus_string_get_length): inline this as a
6494         macro; it showed up in the profile because it's used for loop
6495         tests and so forth
6496
6497 2004-11-10  Colin Walters  <walters@verbum.org>
6498
6499         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6500         for extra paranoia.
6501
6502 2004-11-09  Colin Walters  <walters@verbum.org>
6503
6504         * dbus/dbus-string.c (_dbus_string_get_length): New
6505         function, writes DBusString to C buffer.
6506
6507         * dbus/dbus-string.h: Prototype it.
6508
6509         * dbus/dbus-message.c (dbus_message_type_to_string): New
6510         function, converts message type into C string.
6511
6512         * dbus/dbus-message.h: Prototype it.
6513
6514         * bus/selinux.c (bus_selinux_check): Take source pid,
6515         target pid, and audit data.  Pass audit data to
6516         avc_has_perm.
6517         (log_audit_callback): New function, appends extra
6518         audit information.
6519         (bus_selinux_allows_acquire_service): Also take
6520         service name, add it to audit data.
6521         (bus_selinux_allows_send): Also take message
6522         type, interface, method member, error name,
6523         and destination, and add them to audit data.
6524         (log_cb): Initialize func_audit.
6525         
6526         * bus/selinux.h (bus_selinux_allows_acquire_service)
6527         (bus_selinux_allows_send): Update prototypes 
6528
6529         * bus/services.c (bus_registry_acquire_service): Pass
6530         service name to bus_selinux_allows_acquire_service.
6531
6532         * bus/bus.c (bus_context_check_security_policy): Pass
6533         additional audit data.  Move assignment of dest
6534         to its own line.
6535
6536 2004-11-07  Colin Walters  <walters@verbum.org>
6537
6538         * dbus/dbus-transport-unix.c (do_authentication): Always
6539         initialize auth_completed.
6540         
6541 2004-11-07  Colin Walters  <walters@verbum.org>
6542
6543         * bus/bus.c (load_config): Break into three
6544         separate functions: process_config_first_time_only,
6545         process_config_every_time, and process_config_postinit.
6546         (process_config_every_time): Move call of
6547         bus_registry_set_service_context_table into
6548         process_config_postinit.
6549         (process_config_postinit): New function, does
6550         any processing that needs to happen late
6551         in initialization (and also on reload).
6552         (bus_context_new): Instead of calling load_config,
6553         open config parser here and call process_config_first_time_only
6554         and process_config_every_time directly.  Later, after
6555         we have forked but before changing UID,
6556         invoke bus_selinux_full_init, and then call
6557         process_config_postinit.
6558         (bus_context_reload_config): As in bus_context_new,
6559         load parse file inside here, and call process_config_every_time
6560         and process_config_postinit.
6561
6562         * bus/services.h, bus/services.c
6563         (bus_registry_set_service_context_table): Rename
6564         from bus_registry_set_sid_table.  Take string hash from config
6565         parser, and convert them here into SIDs.
6566
6567         * bus/config-parser.c (struct BusConfigParser): Have
6568         config parser only store a mapping of service->context
6569         string.
6570         (merge_service_context_hash): New function.
6571         (merge_included): Merge context string hashes instead
6572         of using bus_selinux_id_table_union.
6573         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6574         simply create a new string hash.
6575         (bus_config_parser_unref): Unref it.
6576         (start_selinux_child): Simply insert strings into hash,
6577         don't call bus_selinux_id_table_copy_over.
6578
6579         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6580         (bus_selinux_id_table_copy_over): Delete.
6581
6582 2004-11-03  Colin Walters  <walters@verbum.org>
6583
6584         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6585         variables.
6586         
6587 2004-11-03  Colin Walters  <walters@verbum.org>
6588
6589         * bus/test-main.c (test_pre_hook): Fix test logic,
6590         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6591
6592 2004-11-02  Colin Walters  <walters@redhat.com>
6593
6594         * bus/selinux.c (bus_selinux_init): Split into two functions,
6595         bus_selinux_pre_init and bus_selinux_post_init.
6596         (bus_selinux_pre_init): Just determine whether SELinux is
6597         enabled.
6598         (bus_selinux_post_init): Do everything else.
6599
6600         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6601         config file, and bus_selinux_post_init after.  This ensures that
6602         we don't lose the policyreload notification thread that
6603         bus_selinux_init created before forking previously.
6604         
6605         * bus/test-main.c (test_pre_hook): Update for split.
6606
6607 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6608
6609         Patch from Johan Fischer <linux@fischaz.com>
6610         
6611         * mono/doc/Makefile.am (install-data-local): Added directory
6612         install for DESTDIR
6613
6614 2004-10-29  Colin Walters  <walters@redhat.com>
6615
6616         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6617         parameter for fd to write pid to.       
6618
6619         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6620         
6621         * bus/bus.c (bus_context_new): Pass print_pid_fd
6622         to _dbus_become_daemon (bug #1720)
6623
6624 2004-10-29  Colin Walters  <walters@redhat.com>
6625
6626         Patch from Ed Catmur <ed@catmur.co.uk>
6627
6628         * mono/doc/Makefile.am (install-data-local): Handle
6629         DESTDIR.
6630
6631 2004-10-29  Colin Walters  <walters@redhat.com>
6632
6633         * bus/.cvsignore, qt/.cvsignore: Update.
6634
6635 2004-10-29  Colin Walters  <walters@redhat.com>
6636
6637         Patch from Kristof Vansant <de_lupus@pandora.be>
6638
6639         * configure.in: Detect Slackware.
6640         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6641         * bus/rc.messagebus.in: New file.
6642
6643 2004-10-29  Colin Walters  <walters@redhat.com>
6644
6645         * tools/dbus-monitor.c (filter_func): Return
6646         DBUS_HANDLER_RESULT_HANDLED in filter function
6647         for now.  See:
6648         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6649
6650 2004-10-29  Colin Walters  <walters@redhat.com>
6651
6652         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6653
6654         * bus/services.c (bus_registry_acquire_service): 
6655         Correctly retrieve service name from DBusString
6656         for printing.
6657
6658 2004-10-29  Colin Walters  <walters@redhat.com>
6659
6660         * dbus/dbus-glib.h: Update documentation to not
6661         refer to internal APIs.
6662
6663 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6664
6665         * mono/Arguments.cs (GetDBusTypeConstructor):
6666         type.UnderlyingSystemType will return "System.Byte" if you do it
6667         on "byte[]", which is not what we want.  So check the type.IsArray
6668         property and use System.Array instead.
6669
6670 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6671
6672         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6673         the DBusUserInfo structure since this is passed into the function.
6674         This would cause a double free when the function that allocated
6675         the structure would try to free it when an error occured.
6676
6677         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6678         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6679         for service activation to avoid 32bit/64bit parallel install issues
6680
6681 2004-10-21  Colin Walters  <walters@verbum.org>
6682
6683         * AUTHORS: Fix my email address, the @gnu.org one
6684         has been bouncing for some time.  Also add J5.
6685         
6686 2004-10-21  Colin Walters  <walters@verbum.org>
6687
6688         * dbus/dbus-transport-unix.c (do_authentication): Return
6689         authentication status to callers.
6690         (unix_handle_watch): If we completed authentication this round,
6691         don't do another read.  Instead wait until the next iteration,
6692         after we've read any pending data in the auth buffer.
6693         (unix_do_iteration): Ditto.
6694         (unix_handle_watch): Updated for new do_authentication prototype.
6695
6696 2004-10-18  Colin Walters  <walters@verbum.org>
6697
6698         * bus/selinux.c (bus_selinux_enabled): Handle
6699         --disable-selinux case.
6700         
6701 2004-10-18  Colin Walters  <walters@verbum.org>
6702
6703         * bus/selinux.h: Add bus_selinux_enabled.
6704         
6705         * bus/selinux.c (bus_selinux_enabled): Implement it.
6706         
6707         * bus/config-parser.c (struct include): Add
6708         if_selinux_enabled member.
6709         (start_busconfig_child): Parse if_selinux_enabled
6710         attribute for include.
6711         (bus_config_parser_content): Handle it.
6712
6713         * bus/session.conf.in, bus/system.conf.in: Add
6714         inclusion of context mapping to default config files;
6715         conditional on SELinux being enabled.
6716         
6717         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6718         
6719         * test/data/invalid-config-files/badselinux-1.conf, 
6720         test/data/invalid-config-files/badselinux-2.conf:
6721         Test files for bad syntax.
6722         
6723 2004-10-17  Colin Walters  <walters@verbum.org>
6724
6725         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6726         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6727         format specifier mismatches.
6728
6729 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6730
6731         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6732         format string.
6733
6734         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6735         pointer (bug #1540, Leonardo Boiko).
6736
6737 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6738
6739         * mono/BusDriver.cs: Changed BusDriver struct to remove
6740         the ServiceCreated and ServiceDeleted events and replace them
6741         with the new ServiceOwnerChanged event.
6742
6743         * mono/example/BusListener.cs: Added a new example program,
6744         which listens for and reports any ServiceOwnerChanged events
6745         on the bus driver.
6746
6747         * mono/example/Makefile.am (DESTDIR): Build changes for the
6748         new BusListener.cs example.
6749
6750 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6751
6752         * bus/signals.c (bus_match_rule_parse): validate the components of
6753         match rules (bug #1439).
6754
6755         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6756
6757 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6758
6759         * doc/dbus-specification.xml: document ServiceOwnerChanged
6760         signal.
6761         
6762         * bus/driver.c, bus/driver.h, bus/services.c: Use
6763         ServiceOwnerChanged signal instead of ServiceCreated and
6764         ServiceDeleted.
6765         
6766         * bus/dispatch.c: update testcase for the new signal.
6767
6768 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6769
6770         Patch from Nat Friedman <nat@novell.com>
6771
6772         * mono/Makefile.am: A number of small build fixes to allow "make
6773         distcheck" to succeed.
6774
6775         * mono/example/Makefile.am: "make distcheck" fixes.
6776
6777         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6778         key in @srcdir@.
6779
6780         * test/Makefile.am: "make distcheck" fixes.
6781
6782 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6783
6784         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6785
6786         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6787
6788         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6789         messages after the first one (bug #1389).
6790         
6791         * bus/dispatch.c (check_double_hello_message): add a test case for
6792         the double hello message bug.
6793         (check_existent_service_activation): fix check of spawning error.
6794         
6795 2004-09-16  David Zeuthen  <david@fubar.dk>
6796
6797         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6798
6799 2004-09-12  David Zeuthen  <david@fubar.dk>
6800
6801         Patch from Kay Sievers <kay.sievers@vrfy.org>
6802
6803         * bus/bus.c (bus_context_new):
6804         * bus/bus.h:
6805         * bus/main.c (usage)
6806         (main):
6807         Add commandline option --nofork to override configuration file
6808         setting.
6809
6810 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6811
6812         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6813         compilers don't like it (bug #974).
6814
6815 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6816
6817         * qt/connection.*: Applied patch by Jérôme Lodewyck
6818         <lodewyck@clipper.ens.fr> to integrate an existing
6819         connection into the Qt eventloop
6820
6821 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6822
6823         * mono/BusDriver.cs: Added.  This is a class for interacting with
6824         the org.freedesktop.DBus service.
6825
6826         * mono/Message.cs: Added a mechanism to expose the message that is
6827         currently being dispatched via the static Message.Current
6828         property.  Added Message.Sender and Message.Destination
6829         properties.
6830
6831         * mono/Handler.cs: Expose the dispatched message via
6832         Message.Current when handling method calls.
6833
6834         * mono/Service.cs: Expose the dispatched message via
6835         Message.Current when handling signal emissions.
6836         
6837         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6838         Connection.BaseService property.
6839
6840 2004-08-28  Havoc Pennington  <hp@redhat.com>
6841
6842         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6843
6844         More fixes from Steve Grubb
6845         
6846         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6847         (_dbus_listen_tcp_socket): fix fd leak
6848
6849         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6850         EINTR to a bit lower in the code
6851
6852 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6853
6854         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6855         TRUE if we are inquiring about the existence of the built-in
6856         org.freedesktop.DBus service.
6857
6858 2004-08-25  John Palmieri  <johnp@redhat.com>
6859         * bus/config-parser.c:
6860         (struct PolicyType): Add POLICY_CONSOLE
6861         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6862         (start_busconfig_child): Sets up console element when
6863         <policy at_console=""> is encountered in a policy file
6864         (append_rule_from_element): Convert console elements to console
6865         rules.
6866
6867         * bus/policy.c: 
6868         (bus_policy_create_client_policy): Add console rules to the client
6869         policy based on if the client is at the console
6870         (bus_policy_append_console_rule): New function for adding a
6871         console rule to a policy
6872         (bus_policy_merge): Handle console rule merging
6873
6874         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6875         where we check for console user files
6876         
6877         * dbus/dbus-sysdeps.c:
6878         (_dbus_file_exists): New function which checks if the given
6879         file exists
6880         (_dbus_user_at_console): New function which does the system
6881         specific process of checking if the user is at the console
6882
6883         * dbus/dbus-userdb.c:
6884         (_dbus_is_console_user): New function converts a UID to user name
6885         and then calls the system specific _dbus_user_at_console to 
6886         see if the user is at the console and therefor a console user
6887
6888 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6889
6890         * bus/config-parser.c (set_limit):
6891         * bus/dbus-daemon-1.1.in:
6892         * test/data/valid-config-files/many-rules.conf: set the
6893         max_match_rules_per_connection limt from the config file. 
6894
6895         * doc/busconfig.dtd: update the DTD.
6896
6897         * bus/driver.c: remove some unused variables.
6898
6899 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6900
6901         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6902         it's been replaced by dbus_g_bus_get
6903
6904 2004-08-23  Colin Walters  <walters@redhat.com>
6905
6906         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6907
6908         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6909
6910         * bus/selinux.c: Create a thread for policy reload notification.
6911         (bus_selinux_get_policy_root): Implement.
6912
6913         * bus/config-parser.c (start_busconfig_child)
6914         (bus_config_parser_content): Support SELinux-root relative
6915         inclusion.
6916
6917         * configure.in <HAVE_SELINUX>: Add -lpthread.
6918         
6919         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6920         (test_post_hook): Move memory checking into here.
6921         (test_pre_hook, test_post_hook): Move SELinux checks in
6922         here, but conditional on a DBUS_TEST_SELINUX environment
6923         variable.  Unfortunately we can't run the SELinux checks
6924         as a normal user, since they won't have any permissions
6925         for /selinux.  So this will have to be tested manually
6926         for now, until we have virtualization for most of
6927         libselinux.
6928         
6929 2004-08-23  Havoc Pennington  <hp@redhat.com>
6930
6931         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6932         drop supplementary groups, suggested by Steve Grubb
6933
6934 2004-08-20  Colin Walters  <walters@redhat.com>
6935
6936         * bus/config-parser.c (start_busconfig_child): Remove some unused
6937         variables.
6938         
6939         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6940         warning.
6941
6942 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6943
6944         * configure.in: If --enable-mono is passed in, if we can't find
6945         mono error out.
6946
6947         * mono/Makefile.am: Use /gacutil to install assemblies into the
6948         GAC and not /root.
6949
6950 2004-08-12  Havoc Pennington  <hp@redhat.com>
6951
6952         * NEWS: update for 0.22
6953
6954         * configure.in: release 0.22
6955
6956 2004-08-11  Colin Walters  <walters@redhat.com>
6957
6958         * tools/dbus-send.c (main, usage): Add --reply-timeout
6959         argument.
6960
6961 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6962
6963         * bus/bus.c (process_config_first_time_only): get rid of an unused
6964         DBusError that was causing a memoy leak (bug #989).
6965
6966         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6967         fix compilation on Solaris/Forte C (bug #974)
6968
6969         * bus/main.c (main): plug two minuscule memleaks.
6970
6971 2004-08-10  Havoc Pennington  <hp@redhat.com>
6972
6973         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6974
6975 2004-08-09  Havoc Pennington  <hp@redhat.com>
6976
6977         * COPYING: switch to Academic Free License version 2.1 instead of
6978         2.0, to resolve complaints about patent termination clause.
6979
6980 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6981
6982         * README: added documentation for the --enable-python 
6983         configure switch.
6984
6985 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6986
6987         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6988         _unref in the SELinux support.
6989
6990         * doc/busconfig.dtd: update DTD for SELinux support.
6991
6992         * bus/config-loader-libxml.c: fix error handler and parser
6993         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6994
6995         * configure.in: remove the warning about libxml2.
6996
6997         * dbus/dbus-bus.c: silence doxygen warning.
6998
6999 2004-07-31  Colin Walters  <walters@redhat.com>
7000
7001         * configure.in: Move #error in SELinux check to its own line.
7002
7003 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7004
7005         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7006         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7007         dbus_error_set.
7008
7009         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7010         broken by the change in the _SET_OOM macros.
7011
7012 2004-07-31  Colin Walters  <walters@redhat.com>
7013
7014         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7015         BUS_SET_OOM.
7016
7017 2004-07-31  Colin Walters  <walters@redhat.com>
7018
7019         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7020         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7021         AC_MSG_CHECKING.
7022
7023 2004-07-24  Havoc Pennington  <hp@redhat.com>
7024
7025         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7026
7027         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7028         functionality
7029
7030         * configure.in: add --enable-selinux
7031         
7032         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7033
7034         * bus/main.c (main): initialize and shut down selinux
7035
7036         * bus/connection.c: store SELinux ID on each connection, to avoid 
7037         repeated getting of the string context and converting it into 
7038         an ID
7039
7040         * bus/bus.c (bus_context_get_policy): new accessor, though it
7041         isn't used
7042         (bus_context_check_security_policy): check whether the security
7043         context of sender connection can send to the security context of
7044         recipient connection
7045
7046         * bus/config-parser.c: add parsing for <selinux> and <associate>
7047         
7048         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7049         implement dbus_connection_get_unix_fd()
7050
7051         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7052         function, used by the selinux stuff
7053         
7054 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7055
7056         * bus/config-loader-libxml.c: complete the implementation of
7057         libxml backend for config file loader. Doesn't work with full OOM
7058         test yet. 
7059         
7060         * configure.in: change error when selecting libxml into a warning.
7061         
7062         * test/data/invalid-config-files: add two non-well-formed XML
7063         files. 
7064         
7065         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7066         
7067         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7068         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7069         be necessary to read all the buffer. (bug #894)
7070
7071         * bus/activation.c (bus_activation_activate_service): fix a
7072         potential assertion failure (bug #896). Small optimization in the
7073         case of auto-activation messages.
7074
7075         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7076         add test case for byte-through-vararg bug (#901). patch by Kimmo
7077         Hämäläinen. 
7078
7079 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7080
7081         * python/dbus.py:
7082         * python/dbus_bindings.pyx.in:
7083         Add dbus.init_gthreads (), allow emit_signal to pass
7084         arguments to the signal.
7085         
7086 2004-07-24  Havoc Pennington  <hp@redhat.com>
7087
7088         * AUTHORS: add some people, not really comprehensively, let me
7089         know if I missed you
7090
7091 2004-07-24  Havoc Pennington  <hp@redhat.com>
7092
7093         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7094         Owen
7095
7096         * test/Makefile.am (DIST_SUBDIRS): here also
7097
7098 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7099
7100         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7101         breaking build on Solaris, reported by Farhad Saberi on the ML.
7102
7103         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7104         va_arg invocation to account for integer promotion in the case of
7105         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7106
7107         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7108         _dbus_list_get_first_link, not _dbus_list_get_first.
7109
7110         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7111
7112         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7113         handler functions so that the asserts in _dbus_object_subtree_unref
7114         do not fail.
7115
7116         * dbus/dbus-transport-unix.c (do_reading):
7117         _dbus_transport_queue_messages return value is of type
7118         dbus_bool_t, not DBusDispatchStatus.
7119         
7120 2004-07-19  David Zeuthen  <david@fubar.dk>
7121
7122         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7123
7124         * bus/dispatch.c:
7125         (check_get_connection_unix_user): Debug says GetProperty; but the
7126         method is called GetConnectionUnixUser
7127         (check_get_connection_unix_process_id): New function
7128         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7129         also call check_get_connection_unix_process_id()
7130         
7131         * bus/driver.c:
7132         (bus_driver_handle_get_connection_unix_process_id): New function,
7133         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7134         interface
7135         
7136         * dbus/dbus-auth.c:
7137         (handle_server_data_external_mech): Set pid from the credentials
7138         obtained from the socket
7139         
7140         * dbus/dbus-connection.c:
7141         (dbus_connection_get_unix_process_id): New function
7142         
7143         * dbus/dbus-connection.h: 
7144         Add prototype for dbus_connection_get_unix_process_id
7145         
7146         * dbus/dbus-transport.c:
7147         (_dbus_transport_get_unix_process_id): New function
7148         
7149         * dbus/dbus-transport.h:
7150         Add prototype for _dbus_transport_get_unix_process_id
7151         
7152 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7153
7154         * dbus/dbus-message.c: Message counter fix, patch by Christian
7155         Hammond <chipx86@gnupdate.org>
7156
7157 2004-07-18  Seth Nickell  <seth@gnome.org>
7158
7159         * python/dbus.py:
7160         * python/dbus_bindings.pyx.in:
7161         * python/tests/test-client.py:
7162
7163         Add dbus.ByteArray and dbus_bindings.ByteArray
7164         types so that byte streams can be passed back.
7165
7166         Give jdahlin the heaps of credit that are so
7167         rightfully his.
7168         
7169 2004-07-12  Seth Nickell  <seth@gnome.org>
7170
7171         * python/dbus.py:
7172
7173         Add message argument to the default object_method_handler
7174         function.
7175         
7176         * python/dbus_bindings.pyx.in:
7177
7178         Automatically return NIL when passed an empty list
7179         (we can't pass back a list since lists are typed
7180         and we don't have any idea what type the the client
7181         intended the list to be... :-( )
7182         
7183 2004-07-10  Seth Nickell  <seth@gnome.org>
7184
7185         * python/examples/Makefile.am:
7186
7187         Fix distcheck breakage caused by new examples.
7188
7189 2004-07-10  Seth Nickell  <seth@gnome.org>
7190
7191         * python/dbus.py:
7192
7193         Add "message" argument to service-side dbus.Object
7194         methods. This will break existing services written
7195         using the python bindings, but will allow extraction
7196         of all the message information (e.g. who its from).
7197
7198         Add improved "object oriented" signal handling/emission.
7199         
7200         * python/examples/example-service.py:
7201
7202         Nix this example.
7203         
7204         * python/examples/example-signal-emitter.py:
7205         * python/examples/example-signal-recipient.py:
7206
7207         Two new examples that show how to emit and receive
7208         signals using the new APIs.
7209         
7210         * python/examples/example-signals.py:
7211         * python/examples/gconf-proxy-service.py:
7212         * python/examples/gconf-proxy-service2.py:
7213
7214         Add "message" argument to service methods.
7215
7216 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7217
7218         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7219         * dbus/bus.c (dbus_bus_get_unix_user)
7220         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7221         method of org.freedesktop.DBus interface.
7222
7223         * bus/dispatch.c: test case
7224
7225 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7226
7227         * python/Makefile.am: switched include directory from glib/ to dbus/
7228         since dbus-glib.h moved
7229  
7230 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7231
7232         * configure.in: prevent building the gcj stuff and libxml loader
7233         since they are broken.
7234
7235 2004-06-20  Havoc Pennington  <hp@redhat.com>
7236
7237         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7238         codes from the dbus error names
7239         
7240         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7241         as dbus/dbus-glib.h and that breakage is now visible due to 
7242         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7243         
7244         * glib/dbus-glib.h: s/gproxy/g_proxy/
7245
7246         * dbus/dbus-shared.h: new header to hold stuff shared with
7247         binding APIs
7248         
7249         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7250         than dbus-errors.h
7251
7252         * glib/dbus-glib.h (dbus_set_g_error): move to
7253         dbus-glib-lowlevel.h
7254
7255         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7256         of stuff to enable this
7257
7258         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7259
7260         * a bunch of other changes with the same basic "separate glib 
7261         bindings from dbus.h" theme
7262         
7263 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7264
7265         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7266
7267         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7268
7269 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7270
7271         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7272         the reply value of the ServiceExists message.
7273
7274 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7275
7276         * python/dbus_bindings.pyx.in: No longer need to parse path
7277         elements and pass them as arrays of strings.  The C API now
7278         accepts plain path strings.
7279         (_build_parsed_path): removed 
7280
7281 2004-06-07  Havoc Pennington  <hp@redhat.com>
7282
7283         * doc/TODO: remove auto-activation item since it's done; sort
7284         items by importance/milestone
7285
7286 2004-06-07  Havoc Pennington  <hp@redhat.com>
7287
7288         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7289         random signature when using REQUIRED_FIELDS (this hack won't work
7290         in the long term)
7291
7292         * dbus/dbus-message.c: change the signature to be a header field,
7293         instead of message->signature special-case string. Incremental
7294         step forward. Then we can fix up code to send the signature in the
7295         message, then fix up code to validate said signature, then fix up
7296         code to not put the typecodes inline, etc.
7297         (load_one_message): don't make up the signature after the fact
7298         (decode_header_data): require signature field for the known
7299         message types
7300
7301         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7302
7303         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7304
7305 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7306
7307         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7308
7309         * mono/Handler.cs: Updated to follow new path argument for
7310         (un-)registering objects.
7311
7312         * mono/example/Makefile.am:
7313         * mono/Makefile.am:
7314         * configure.in: Bumped required version for mono and use new -pkg
7315         syntax for deps
7316
7317 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7318
7319         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7320         registration functions take the path argument as char* instead of
7321         char**.
7322
7323         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7324         split off the path decompostion part of
7325         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7326         warnings. 
7327
7328         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7329         
7330 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7331  
7332         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7333         machine approach.  A state is implemented as a function that
7334         handles incoming events as specified for that state.
7335         
7336         * doc/dbus-specification.xml: Update auth protocol state machine
7337         specification to match implementation.  Remove some leftover
7338         base64 examples.
7339
7340 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7341
7342         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7343         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7344         quiet doxygen.
7345
7346         * Doxyfile.in: remove deprecated options.
7347
7348         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7349         glib/test-thread.h, glib/test-thread-client.c,
7350         glib/test-thread-server.c, glib/test-profile.c,
7351         glib/test-dbus-glib.c: remove these unused files.
7352
7353 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7354
7355         * dbus/dbus-object-tree.c
7356         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7357         non-fallback handlers (bug #684).
7358         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7359         (find_subtree_recurse): report wether the returned subtree is an
7360         exact match or a "fallback" match higher up in the tree.
7361         (object_tree_test_iteration): update test case.
7362
7363 2004-06-01  Seth Nickell  <seth@gnome.org>
7364
7365         * python/dbus_bindings.pyx.in:
7366         * python/tests/test-client.py:
7367
7368         Round off basic type support. Add dicts (yay!), and 
7369         remaining array types.
7370
7371         Make MessageIter more general so it works for dicts too.
7372
7373         Mark all loop variables as C integers.
7374         
7375 2004-05-31  Havoc Pennington  <hp@redhat.com>
7376
7377         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7378         "in" before "out"
7379
7380         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7381
7382         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7383         option that runs the tests, and start filling in some code
7384         including for starters just dumping the interfaces to stdout
7385
7386         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7387
7388         * test/data/valid-introspection-files/lots-of-types.xml: test of
7389         an example introspection file
7390
7391         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7392         "node" (I think...)
7393
7394 2004-05-31  Seth Nickell  <seth@gnome.org>
7395
7396         * python/dbus_bindings.pyx.in:
7397         * python/tests/test-client.py:
7398
7399         Test Suite: 1
7400         Python Bindings: 0
7401
7402         Fix string array memory trashing bug... oops...
7403
7404 2004-05-30  Seth Nickell  <seth@gnome.org>
7405
7406         * python/dbus.py:
7407
7408         Add a nicer-but-less-flexible alternate API for handling 
7409         calls to virtual objects in dbus.ObjectTree.
7410
7411         Screw up the argument order to the dbus.Object constructor
7412         for consistency with dbus.ObjectTree (and to make dbus_methods
7413         optional for future extension)
7414         
7415         * python/examples/Makefile.am:
7416         * python/examples/gconf-proxy-service.py:
7417         * python/examples/gconf-proxy-service2.py:
7418
7419         Alternate implementation of gconf-proxy-service using the
7420         nicer dbus.ObjectTree API.
7421         
7422         * python/examples/example-service.py:
7423         * python/tests/test-server.py
7424
7425         Reverse the argument order to deal with dbus.Object constructor
7426         changes.
7427         
7428 2004-05-30  Seth Nickell  <seth@gnome.org>
7429
7430         * python/examples/example-client.py:
7431         * python/examples/example-service.py:
7432
7433         Take it back. Lists seem to work but they're broken
7434         in the test suite. Make the base examples use
7435         lists (works fine).
7436
7437 2004-05-30  Seth Nickell  <seth@gnome.org>
7438
7439         * python/dbus_bindings.pyx.in:
7440         * python/tests/test-client.py:
7441
7442         Add some more tests and fix errors that crop up.
7443         Unfortunately, currently it seems like marshalling
7444         and unmarshalling of lists is completely broken :-(
7445
7446 2004-05-30  Seth Nickell  <seth@gnome.org>
7447
7448         * python/dbus_bindings.pyx.in:
7449
7450         Add support for ObjectPath type.
7451
7452         * python/dbus.py:
7453
7454         Refactor message handling code to a common function.
7455         
7456         * python/tests/test-client.py:
7457         * python/tests/test-server.py:
7458
7459         Add tests that check to make sure values of all types
7460         can be echoed from a service w/o mangling.
7461         
7462 2004-05-29  Seth Nickell  <seth@gnome.org>
7463
7464         * python/dbus.py:
7465
7466         Add ObjectTree class which allows implementation
7467         of trees of "virtual" objects. Basically the python
7468         wrapper for "register_fallback".
7469         
7470         * python/examples/Makefile.am
7471         * python/examples/gconf-proxy-client.py:
7472         * python/examples/gconf-proxy-service.py:
7473
7474         Implement a simple GConf proxy service that supports
7475         get/set on string and int GConf keys using the ObjectTree.
7476         
7477 2004-05-29  Seth Nickell  <seth@gnome.org>
7478
7479         * python/dbus.py:
7480         * python/examples/example-client.py:
7481         * python/examples/example-service.py:
7482         * python/examples/list-system-services.py:
7483
7484         Add SessionBus, SystemBus and ActivationBus classes
7485         so you don't need to know the special little BUS_TYPE
7486         flag.
7487         
7488 2004-05-29  Havoc Pennington  <hp@redhat.com>
7489
7490         * bus/config-parser.c (process_test_valid_subdir): temporarily
7491         stop testing config parser OOM handling, since expat has issues
7492         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7493
7494         * bus/dbus-daemon-1.1.in: change requested_reply to
7495         send_requested_reply/receive_requested_reply so we can send the
7496         replies, not just receive them.
7497
7498         * bus/config-parser.c: parse the new
7499         send_requested_reply/receive_requested_reply
7500
7501         * bus/policy.c (bus_client_policy_check_can_send): add
7502         requested_reply argument and use it
7503
7504         * bus/bus.c (bus_context_check_security_policy): pass through
7505         requested_reply status to message send check
7506
7507         * bus/system.conf.in: adapt to requested_reply change
7508         
7509 2004-05-28  Havoc Pennington  <hp@redhat.com>
7510
7511         * test/glib/test-service-glib.c (main): remove unused variable
7512
7513         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7514
7515         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7516         from the enum, no longer in use.
7517
7518         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7519         works right.
7520
7521         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7522         whether error_name passed in is a valid error name.
7523
7524 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7525
7526         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7527         OBJECT_PATH and OBJECT_PATH_ARRAY
7528
7529 2004-05-28  Seth Nickell  <seth@gnome.org>
7530
7531         * python/examples/Makefile.am:
7532
7533         Forget to add Makefile.am. Do not pass go.
7534
7535 2004-05-28  Michael Meeks  <michael@ximian.com>
7536
7537         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7538         fix no int64 case.
7539
7540         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7541
7542         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7543         (_dbus_message_iter_get_basic_type_array): impl.
7544         drastically simplify ~all relevant _get methods to use these.
7545         (_dbus_message_iter_append_basic_array),
7546         (dbus_message_iter_append_basic): impl
7547         drastically simplify ~all relevant _append methods to use these.
7548
7549         * dbus/dbus-message-builder.c (parse_basic_type) 
7550         (parse_basic_array, lookup_basic_type): impl.
7551         (_dbus_message_data_load): prune scads of duplicate /
7552         cut & paste coding.
7553
7554         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7555         (_dbus_demarshal_basic_type): implement,
7556         (demarshal_and_validate_len/arg): beef up debug.
7557         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7558
7559 2004-05-27  Seth Nickell  <seth@gnome.org>
7560
7561         * configure.in:
7562         * python/Makefile.am:
7563
7564         Include the example python apps in the tarball.
7565         
7566         * python/examples/list-system-services.py
7567
7568         Add a python new example that fetches the list of services
7569         from the system bus.
7570         
7571 2004-05-27  Seth Nickell  <seth@gnome.org>
7572
7573         * python/dbus.py:
7574         * python/dbus_bindings.pyx.in:
7575
7576         Fix failure to notify that a signal was not handled,
7577         resulted in hung functions.
7578         
7579 2004-05-25  Colin Walters  <walters@redhat.com>
7580
7581         * tools/dbus-monitor.c (main): Monitor all types of messages.
7582
7583 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7584
7585         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7586         which unregisters the object path and disposes the handler.
7587
7588 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7589  
7590         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7591          
7592         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7593         operands to && so we call dbus_message_iter_next () for the last
7594         argument also.
7595
7596 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7597
7598         * dbus/dbus-object-tree.c
7599         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7600         children even if the requested path isn't registered.
7601         (object_tree_test_iteration): test object_tree_list_registered.
7602
7603         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7604         it to 0.
7605         
7606 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7607
7608         * doc/TODO: Remove resolved items.
7609
7610         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7611         field.
7612         
7613         * bus/connection.c (bus_connections_expect_reply): Enforce the
7614         per-connection limit on pending replies.
7615         
7616         Patch from Jon Trowbridge <trow@ximian.com>:
7617  
7618         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7619         up a watch that triggers a config reload when one end of the pipe
7620         becomes readable.
7621         (signal_handler): Instead of doing the config reload in our SIGHUP
7622         handler, just write to the reload pipe and let the associated
7623         watch handle the reload when control returns to the main loop.
7624  
7625         * bus/driver.c (bus_driver_handle_reload_config): Added.
7626         Implements a ReloadConfig method for requesting a configuration
7627         file reload via the bus driver.
7628  
7629 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7630
7631         * HACKING: Updated release instructions concerning the wiki page.
7632
7633 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7634
7635         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7636         filter against auth->allowed_mechs; we only add allowed mechs in
7637         record_mechanisms().
7638  
7639         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7640         ALLOWED_MECHS to auth-script format so we can set the list of
7641         allowed mechanisms.
7642  
7643         * data/auth/client-out-of-mechanisms.auth-script: New test to
7644         check client disconnects when it is out of mechanisms to try.
7645  
7646         * dbus/dbus-auth.c (process_command): Remove check for lines
7647         longer that 1 MB; we only buffer up maximum 16 kB.
7648  
7649         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7650         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7651         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7652         assume there might be unused bytes.
7653  
7654         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7655         client-out-of-mechs, it is handled in process_reject(). Move check
7656         for max failures to send_rejected(), as it's a server-only thing.
7657
7658         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7659         send_auth(), send_data(), send_rejected(), send_error(),
7660         send_ok(), send_begin() and send_cancel().
7661
7662 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7663
7664         Remove base64 encoding, replace with hex encoding. Original patch
7665         from trow@ximian.com, added error handling.
7666
7667         * dbus/dbus-string.c (_dbus_string_base64_encode)
7668         (_dbus_string_base64_decode): Remove.
7669         (_dbus_string_hex_decode): Add end_return argument so we can
7670         distinguish between OOM and invalid hex encoding.
7671         (_dbus_string_test): Remove base64 tests and add test case for
7672         invalid hex.
7673
7674         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7675         Replace base64 with hex.
7676
7677         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7678         for invalid hex encoded data in auth protocol.
7679
7680 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7681
7682         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7683         leak.
7684
7685 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7686
7687         * mono/dbus-sharp.dll.config.in: Added for GAC
7688         * mono/dbus-sharp.snk: Added for GAC
7689         * mono/Assembly.cs.in: Added for GAC
7690         * mono/Makefile.am: Changes for GAC installation        
7691         * configure.in: Added refs for dbus-sharp.dll.config.in and
7692         Assembly.cs.in. More fixes for mono testing
7693         * mono/example/Makefile.am: Changed var to CSC
7694         * Makefile.am: Changed flag name to DBUS_USE_CSC
7695
7696 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7697
7698         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7699         * mono/doc/*: Added documentation framework
7700         * configure.in: Added monodoc check
7701         * README: Added description of mono configure flags
7702
7703 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7704
7705         * doc/dbus-specification.xml: Added a "Required" column to the 
7706         header fields table and changed the "zero or more" verbage in
7707         the above paragraph to read "The header must contain the required 
7708         named header fields and zero or more of the optional named header 
7709         fields".
7710         * test/data/invalid-messages/*.message: Added the required PATH 
7711         named header field to the tests so that they don't fail on 
7712         'Missing path field'
7713
7714 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7715
7716         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7717         the stack by implicitly defining variable and parameter types and
7718         removing the hack of defining C pointers as python objects and later
7719         casting them.
7720
7721 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7722
7723         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7724
7725 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7726
7727         * mono/DBusType/Dict.cs: Handle empty dicts
7728         * mono/DBusType/Array.cs: Handle empty arrays
7729         * mono/Arguments.cs: Handle empty arguments
7730
7731 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7732
7733         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7734         field
7735
7736 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7737
7738         * test/data/valid-messages/standard-*.message: Update message
7739         test scripts to new header field names.
7740
7741 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7742
7743         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7744         overflow to times_we_did_each_thing array which would chop off the
7745         first character of the failure_dir string. Increased the size of
7746         the array to 7 to reflect the number of random mutation functions
7747         we have.
7748
7749 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7750
7751         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7752         unix_server->watch here, it is unreffed in disconnect.
7753         (_dbus_server_new_for_tcp_socket): convert NULL host to
7754         "localhost" here so we don't append NULL to address.
7755         
7756         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7757         various addresses, including tcp with no explicit host.
7758
7759 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7760
7761         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7762         fix incorrect setting of .name_offset in the HeaderField (it was
7763         off by two bytes, positioned right after the name and typecode)
7764
7765         * bus/bus.c (bus_context_new, bus_context_unref): test before
7766         calling dbus_server_free_data_slot and _dbus_user_database_unref
7767         in case of an error.
7768
7769         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7770         by libdbus-gtool.
7771
7772 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7773
7774         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7775         _dbus_poll() instead of select().
7776
7777 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7778
7779         * bus/main.c (signal_handler): Reload the configuration files
7780         on SIGHUP.
7781         (main): Set up our SIGHUP handler.
7782
7783         * bus/bus.c (struct BusContext): Store the config file, user and
7784         fork flag in the BusContext.
7785         (process_config_first_time_only): Added.  Contains the code
7786         (previously in bus_context_new) for setting up the BusContext from
7787         the BusConfigParser that should only be run the first time the
7788         config files are read.
7789         (process_config_every_time): Added.  Contains the code (previously
7790         in bus_context_new) for setting up the BusContext from the
7791         BusConfigParser that should be run every time the config files are
7792         read.
7793         (load_config): Added.  Builds a BusConfigParser from the config
7794         files and passes the resulting structure off to
7795         process_config_first_time_only (assuming this is the first time)
7796         and process_config_every_time.
7797         (bus_context_new): All of the config-related code has been moved
7798         to process_config_first_time_only and process_config_every_time.
7799         Now this function just does the non-config-related initializations
7800         and calls load_config.
7801         (bus_context_reload_config): Added.
7802
7803 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7804
7805         * bus/driver.c (bus_driver_handle_get_service_owner):
7806         implement a GetServiceOwner method.
7807         * doc/dbus-specification.xml: document it.
7808         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7809         
7810         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7811         implement, using the bus GetServiceOwner method.
7812
7813         * test/glib/test-dbus-glib.c:
7814         use dbus_gproxy_new_for_service_owner so that we can receive the
7815         signal. 
7816
7817 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7818
7819         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7820         dbus/dbus-message.c, dbus/dbus-protocol.h
7821         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7822
7823         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7824         dbus/dbus-message.c, dbus/dbus-protocol.h
7825         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7826
7827         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7828         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7829         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7830
7831         * doc/dbus-specification.xml (Header Fields Table):
7832         s/SERVICE/DESTINATION
7833         s/SENDER_SERVICE/SENDER
7834
7835
7836 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7837
7838         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7839         a few seconds.
7840
7841 2004-04-13  Michael Meeks  <michael@ximian.com>
7842
7843         * glib/dbus-gobject.c (handle_introspect): split out
7844         (introspect_properties): this.
7845         (handle_introspect): implement this.
7846
7847         * test/glib/Makefile.am: use the absolute path so the bus
7848         daemon's chdir ("/") doesn't kill us dead.
7849
7850         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7851
7852 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7853
7854         * bus/config-parser.c (struct BusConfigParser): Added
7855         included_files field.
7856         (seen_include): Added.  Checks whether or not a file has already
7857         been included by any parent BusConfigParser.
7858         (bus_config_parser_new): Copy the parent's included_files.
7859         (include_file): Track which files have been included, and fail on
7860         circular inclusions.
7861         (process_test_valid_subdir): Changed printf to report if we are
7862         testing valid or invalid conf files.
7863         (all_are_equiv): Changed printf to be a bit clearer about
7864         what we are actually doing.
7865         (bus_config_parser_test): Test invalid configuration files.
7866
7867 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7868
7869         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7870         argument.  If non-null, the newly-constructed BusConfigParser will
7871         be initialized with the parent's BusLimits instead of the default
7872         values.
7873         (include_file): When including a config file, pass in
7874         the current parser as the parent and then copy the BusLimits
7875         from the included BusConfigParser pack to the current parser.
7876         (process_test_valid_subdir): Renamed from process_test_subdir.
7877         (process_test_equiv_subdir): Added.  Walks through a directory,
7878         descending into each subdirectory and loading the config files
7879         it finds there.  If any subdirectory contains two config files
7880         that don't produce identical BusConfigParser structs, fail.
7881         For now, the BusConfigParser's BusPolicies are not compared.
7882         (bus_config_parser_test): Call both process_test_valid_subdir and
7883         process_test_equiv_subdir.
7884
7885         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7886         argument and pass it along to the call to bus_config_parser_new.
7887         Also made a few small changes to allow this code to compile.
7888
7889         * bus/config-loader-expat.c (bus_config_load): Take a parent
7890         argument and pass it along to the call to bus_config_parser_new.
7891
7892         * bus/bus.c (bus_context_new): Load the config file
7893         with a NULL parent argument.
7894
7895 2004-03-29  Michael Meeks  <michael@ximian.com>
7896
7897         * glib/dbus-gobject.c (introspect_properties): split
7898         out, fix mangled 'while' flow control.
7899         (introspect_signals): implement.
7900         (handle_introspect): update.
7901
7902 2004-03-29  Michael Meeks  <michael@ximian.com>
7903
7904         * glib/dbus-gobject.c (set_object_property): split out / 
7905         re-work, use the property type, and not the message type(!)
7906         (get_object_property): ditto.
7907
7908         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7909         (dbus_gvalue_marshal): make this code re-usable, needed
7910         for signals too, also on both proxy and server side.
7911         Re-write for more efficiency / readability.
7912
7913 2004-03-29  Michael Meeks  <michael@ximian.com>
7914
7915         * dbus/dbus-message.c
7916         (dbus_message_new_error_printf): impl.
7917
7918         * dbus/dbus-connection.c
7919         (dbus_connection_unregister_object_path): fix warning.
7920
7921         * configure.in: fix no-mono-installed situation.
7922
7923 2004-03-27  Havoc Pennington  <hp@redhat.com>
7924
7925         Patch from Timo Teräs:
7926         
7927         * tools/dbus-send.c (main): if --print-reply, assume type is
7928         method call; support boolean type args
7929         
7930         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7931         bunch of memleak and logic bugs
7932         
7933 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7934
7935         * mono/Arguments.cs:
7936         * mono/Introspector.cs:
7937         * mono/Handler.cs:
7938         * mono/InterfaceProxy.cs:
7939         * mono/Message.cs
7940         * mono/ProxyBuilder.cs:
7941         * mono/Service.cs:
7942         Added InterfaceProxy class to avoid building proxies for every
7943         object.
7944
7945         * dbus-message.h:
7946         * dbus-message.c (dbus_message_append_args_valist)
7947         (dbus_message_iter_get_object_path)
7948         (dbus_message_iter_get_object_path_array)
7949         (dbus_message_iter_append_object_path)
7950         (dbus_message_iter_append_object_path_array):
7951         Added object_path iter functions to handle OBJECT_PATH arguments
7952         
7953 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7954
7955         First checkin of mono bindings.
7956         * configure.in:
7957         * Makefile.am:
7958         Build stuff for the bindings
7959         * dbus-sharp.pc.in: Added for pkgconfig
7960         
7961 2004-03-21  Havoc Pennington  <hp@redhat.com>
7962
7963         * test/test-service.c (main): remove debug spew
7964
7965 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7966
7967         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7968         arrays
7969
7970         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7971         (dbus_message_iter_init_array_iterator)
7972         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7973         indicate whether the iterator is empty
7974
7975         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7976         warnings
7977
7978 2004-03-19  Havoc Pennington  <hp@redhat.com>
7979
7980         * NEWS: 0.21 updates
7981
7982         * configure.in: 0.21
7983
7984         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7985         
7986         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7987         you don't need pyrex to make dist
7988
7989         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7990         sources; run moc
7991         
7992 2004-03-18  Richard Hult  <richard@imendio.com>
7993
7994         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7995         (dbus_message_set_auto_activation): Add doxygen docs.
7996
7997 2004-03-16  Richard Hult  <richard@imendio.com>
7998
7999         * bus/activation.c: (bus_activation_service_created),
8000         (bus_activation_send_pending_auto_activation_messages),
8001         (bus_activation_activate_service):
8002         * bus/activation.h:
8003         * bus/dispatch.c: (bus_dispatch),
8004         (check_nonexistent_service_auto_activation),
8005         (check_service_auto_activated),
8006         (check_segfault_service_auto_activation),
8007         (check_existent_service_auto_activation), (bus_dispatch_test):
8008         * bus/driver.c: (bus_driver_handle_activate_service):
8009         * bus/services.c: (bus_registry_acquire_service):
8010         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8011         (dbus_message_get_auto_activation):
8012         * dbus/dbus-message.h:
8013         * dbus/dbus-protocol.h: Implement auto-activation.
8014         
8015         * doc/dbus-specification.xml: Add auto-activation to the spec.
8016
8017 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8018
8019         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8020         fix a bug with CUSTOM types.
8021
8022         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8023         a unit test for this bug (used to fail).
8024
8025 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8026
8027         * bus/activation.c:
8028         (babysitter_watch_callback): notify all pending activations waiting for
8029           the same exec that the activation failed.
8030         (bus_activation_activate_service): shortcut the activation if we 
8031           already waiting for the same executable to start up.
8032
8033 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8034
8035         * bus/activation.c: 
8036         - Added service file reloading. 
8037           Each service files directory is kept in an hash table in 
8038           BusActivation and each BusActivationEntry knows what .service-file it
8039           was read from. So when you try to activate a service the bus will 
8040           check if it's been updated, removed or if new .service-files has 
8041           been installed.
8042         - Test code at the bottom for the service file reloading.
8043         * bus/test-main.c: (main):
8044         * bus/test.h:
8045         - added service reloading test.
8046         * dbus/dbus-sysdeps.c: 
8047         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8048
8049 2004-03-08  Michael Meeks  <michael@ximian.com>
8050
8051         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8052         bail immediately if disconnected, to avoid busy loop.
8053
8054         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8055         cleanup cut/paste/inefficiency.
8056
8057 2004-03-01  David Zeuthen  <david@fubar.dk>
8058
8059         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8060         bug where args were used twice. This bug resulted in a segfault
8061         on a Debian/PPC system when starting the messagebus daemon. Include
8062         dbus-sysdeps.h for DBUS_VA_COPY
8063
8064         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8065
8066         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8067         appropriate va_copy implementation. From GLib
8068         
8069 2004-02-24  Joe Shaw  <joe@ximian.com>
8070
8071         * bus/services.c (bus_registry_acquire_service): We need to pass
8072         in the service name to dbus_set_error() to prevent a crash.
8073
8074 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8075
8076         * AUTHORS: Reveal my True identity.
8077
8078 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8079
8080         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8081         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8082
8083 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8084
8085         * doc/TODO: Added not about better error check of configuration files.
8086
8087 2003-12-02  Richard Hult  <richard@imendio.com>
8088
8089         * Update AFL version to 2.0 throughout the source files to reflect
8090         the update that was done a while ago.
8091
8092 2003-12-02  Richard Hult  <richard@imendio.com>
8093
8094         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8095         wrote_dict_key to FALSE on the iter that the dict is appended to,
8096         just like when appending other types. Fixes a bug where a dict
8097         couldn't be put inside a dict.
8098         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8099         (message_iter_test, _dbus_message_test): Add test case for dict
8100         inside dict.
8101
8102 2003-12-01  David Zeuthen  <david@fubar.dk>
8103
8104         * python/dbus.py: Add the actual message when calling the reciever
8105         of a signal such that parameters can be inspected. Add the method
8106         remove_signal_receiver
8107         
8108 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8109
8110         * bus/*.[ch]:
8111         * dbus/*.[ch]:
8112         * glib/*.[ch]: Made ref functions return the pointer
8113
8114 2003-11-25  Zack Rusin  <zack@kde.org>
8115
8116         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8117
8118         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8119         wrappers,
8120
8121         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8122         the Integrator and to better fit with the server,
8123
8124 2003-11-24  Zack Rusin  <zack@kde.org>
8125
8126         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8127         the integrator handles it now
8128
8129         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8130         since QTimer wasn't really meant to be used the way DBusTimeout is
8131
8132 2003-11-24  Zack Rusin  <zack@kde.org>
8133
8134         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8135         Integrator class which integrates D-BUS with the Qt event loop,
8136
8137         * qt/connection.h, qt/connection.cpp: Move all the code which
8138         was dealing with D-BUS integration to the Integrator class,
8139         and start using Integrator,
8140
8141 2003-11-23  Zack Rusin  <zack@kde.org>
8142
8143         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8144         wrapper
8145
8146         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8147         switching namespaces to DBusQt, reworking the class,
8148
8149         * Makefile.cvs: switching dependencies so that it matches KDE 
8150         schematics,
8151         
8152         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8153         the library
8154
8155 2003-11-19  Havoc Pennington  <hp@redhat.com>
8156
8157         * NEWS: update
8158
8159         * configure.in: bump version to 0.20
8160
8161         * configure.in (have_qt): add yet another place to look for qt
8162         (someone hand trolltech a .pc file...)
8163
8164 2003-11-01  Havoc Pennington  <hp@redhat.com>
8165
8166         * doc/dbus-specification.xml: add state machine docs on the auth
8167         protocol; just a first draft, I'm sure it's wrong.      
8168
8169 2003-10-28  David Zeuthen  <david@fubar.dk>
8170
8171         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8172         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8173         
8174 2003-10-28  Havoc Pennington  <hp@redhat.com>
8175
8176         * dbus/dbus-message.c (get_next_field): delete unused function
8177
8178 2003-10-28  Havoc Pennington  <hp@redhat.com>
8179
8180         * bus/expirelist.c (do_expiration_with_current_time): detect
8181         failure of the expire_func due to OOM
8182
8183         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8184
8185         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8186         NoReply error that's now created by the bus when the service exits
8187
8188 2003-10-28  Havoc Pennington  <hp@redhat.com>
8189
8190         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8191         tests for set_path, set_interface, set_member, etc.
8192
8193         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8194
8195         * dbus/dbus-message.c (set_string_field): always just delete and
8196         re-append the field; accept NULL for deletion
8197         (re_align_fields_recurse): reimplement
8198         
8199 2003-10-26  Havoc Pennington  <hp@redhat.com>
8200
8201         * dbus/dbus-connection.c: fix docs to properly describe the
8202         disconnected message
8203         (_dbus_connection_notify_disconnected): remove this function; 
8204         we can't synchronously add the disconnected message, we have to 
8205         do it after we've queued any remaining real messages
8206         (_dbus_connection_get_dispatch_status_unlocked): queue the
8207         disconnect message only if the transport has finished queueing all
8208         its real messages and is disconnected.
8209         (dbus_connection_disconnect): update the dispatch status here
8210
8211 2003-10-22  Havoc Pennington  <hp@redhat.com>
8212
8213         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8214
8215         * bus/connection.c (bus_transaction_send_from_driver): set the
8216         destination to the connection's base service
8217
8218 2003-10-20  Havoc Pennington  <hp@redhat.com>
8219
8220         hmm, make check is currently not passing.
8221         
8222         * doc/dbus-specification.xml: add requirement that custom type
8223         names follow the same rules as interface names.
8224
8225         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8226         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8227         'map'
8228
8229         * doc/dbus-specification.xml: update type codes to match
8230         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8231         CUSTOM. Add type OBJECT_PATH to the spec.
8232
8233 2003-10-17  Havoc Pennington  <hp@redhat.com>
8234
8235         * bus/driver.c (create_unique_client_name): use "." as separator
8236         in base service names instead of '-'
8237
8238         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8239         byte at the end of the string
8240
8241         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8242         optimization macros since string validation seems to be a slow
8243         point.
8244         
8245         * doc/dbus-specification.xml: restrict valid
8246         service/interface/member/error names. Add test suite code for the
8247         name validation.
8248
8249         * dbus/dbus-string.c: limit service/interface/member/error names 
8250         to [0-9][A-Z][a-z]_
8251
8252         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8253         format arg to verbose spew
8254
8255         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8256         memory, return instead of g_error
8257
8258         * test/test-service.c (path_message_func): support emitting a
8259         signal on request
8260
8261         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8262         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8263         assuming the activation bus was the session bus so that services
8264         started manually will still register.
8265         (init_connections_unlocked): fix so that in OOM situation we get
8266         the same semantics when retrying the function
8267         
8268         * test/test-service.c (main): change to use path registration, to
8269         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8270         than DBUS_BUS_SESSION
8271
8272 2003-10-16  Havoc Pennington  <hp@redhat.com>
8273
8274         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8275
8276         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8277         coverage of the tests
8278         (coverage-report.txt): don't move the .da and .bbg files around
8279
8280 2003-10-16  Havoc Pennington  <hp@redhat.com>
8281
8282         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8283         to put there
8284
8285 2003-10-16  Havoc Pennington  <hp@redhat.com>
8286
8287         * bus/connection.c (bus_pending_reply_expired): either cancel or
8288         execute, not both
8289         (bus_connections_check_reply): use unlink, not remove_link, as we
8290         don't want to free the link; fixes double free mess
8291
8292         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8293         where no reply was received
8294
8295         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8296         fix a refcount leak
8297
8298         * bus/signals.c (match_rule_matches): add special cases for the
8299         bus driver, so you can match on sender/destination for it.
8300
8301         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8302         DBUS_PRINT_BACKTRACE is set
8303
8304         * dbus/dbus-internals.c: add pid to assertion failure messages
8305
8306         * dbus/dbus-connection.c: add message type code to the debug spew
8307
8308         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8309         sender=foo not service=foo
8310
8311         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8312         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8313         DBUS_ACTIVATION_ADDRESS instead
8314
8315         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8316         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8317
8318         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8319         context struct
8320
8321         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8322         (dbus_message_iter_get_object_path_array): new function (half
8323         finished, disabled for the moment)
8324         
8325         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8326         DBUS_MESSAGE_TYPE_ERROR
8327
8328         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8329         avoid redirecting stderr to /dev/null
8330         (babysit): close stdin if not doing the "exit_with_session" thing
8331
8332         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8333         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8334         stdout/stdin, so things don't get confused
8335         
8336         * bus/system.conf.in: fix to allow replies, I modified .conf
8337         instead of .conf.in again.
8338
8339 2003-10-14  David Zeuthen  <david@fubar.dk>
8340
8341         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8342         argtype to arg_type when raising unknown arg type exception.
8343         Changed type list to reflect the changes in dbus-protocol.h so 
8344         the bindings actually work.
8345
8346 2003-10-14  Havoc Pennington  <hp@redhat.com>
8347
8348         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8349         to have a bug keeping it from outputting the .da files sometimes
8350         (string_get_string): don't append garbage nul bytes to the string.
8351
8352 2003-10-15  Seth Nickell  <seth@gnome.org>
8353
8354         * python/Makefile.am:
8355
8356         Include dbus_h_wrapper.h in the dist tarball.
8357
8358 2003-10-14  Havoc Pennington  <hp@redhat.com>
8359
8360         * bus/bus.c (bus_context_check_security_policy): revamp this to
8361         work more sanely with new policy-based requested reply setup
8362
8363         * bus/connection.c (bus_transaction_send_from_driver): set bus
8364         driver messages as no reply
8365
8366         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8367         requested_reply attribute on allow/deny rules
8368
8369         * bus/system.conf: add <allow requested_reply="true"/>
8370
8371         * bus/driver.c (bus_driver_handle_message): fix check for replies
8372         sent to the bus driver, which was backward. How did this ever work
8373         at all though? I think I'm missing something.
8374
8375         * dbus/dbus-message.c (decode_header_data): require error and
8376         method return messages to have a reply serial field to be valid
8377         (_dbus_message_loader_queue_messages): break up this function;
8378         validate that reply serial and plain serial are nonzero; 
8379         clean up the OOM/error handling.
8380         (get_uint_field): don't return -1 from this
8381         (dbus_message_create_header): fix signed/unsigned bug
8382
8383         * bus/connection.c (bus_connections_expect_reply): save serial of
8384         the incoming message, not reply serial
8385
8386 2003-10-14  Havoc Pennington  <hp@redhat.com>
8387
8388         * bus/connection.c: implement pending reply tracking using
8389         BusExpireList
8390
8391         * bus/bus.c (bus_context_check_security_policy): verify that a
8392         reply is pending in order to allow a reply to be sent. Deny 
8393         messages of unknown type.
8394
8395         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8396
8397         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8398         (bus_context_get_reply_timeout): new
8399
8400 2003-10-13  Seth Nickell  <seth@gnome.org>
8401
8402         * python/Makefile.am:
8403
8404         Pass "make distcheck": remove a couple files from DIST_FILES
8405         that weren't included in the final version.
8406
8407 2003-10-12  Havoc Pennington  <hp@pobox.com>
8408
8409         Added test code that 1) starts an actual bus daemon and 2) uses
8410         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8411         more testing possible, but this is the basic framework.
8412         
8413         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8414         empty proxy lists from the proxy list hash
8415
8416         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8417         couple of return_if_fail checks
8418
8419         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8420         to allocate, so everything is cleared to NULL as it should be.
8421
8422         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8423         source as data to dbus_connection_set_timeout_functions() as the 
8424         timeout functions expected
8425
8426         * test/glib/run-test.sh: add a little script to start up a message
8427         bus and run tests using it
8428
8429         * tools/dbus-launch.1: updates
8430
8431         * tools/dbus-launch.c (main): add --config-file option
8432
8433         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8434         that could never be reached.
8435
8436         * dbus/dbus-message.c (dbus_message_new_method_return) 
8437         (dbus_message_new_error, dbus_message_new_signal): set the
8438         no-reply-expected flag on all these. Redundant, but may
8439         as well be consistent.
8440
8441 2003-10-11  Havoc Pennington  <hp@pobox.com>
8442
8443         * test/decode-gcov.c (function_solve_graph): make broken block
8444         graph a nonfatal error since it seems to be broken. Need to debug
8445         this.
8446
8447         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8448         can't just check type > INVALID < LAST anymore
8449
8450         * dbus/dbus-message.c (dbus_message_get_signature): new function
8451         (dbus_message_has_signature): new function
8452         (struct DBusMessage): add signature field (right now it isn't sent
8453         over the wire, just generated on the fly)
8454         (dbus_message_copy): copy the signature, and init strings to
8455         proper length to avoid some reallocs
8456         (dbus_message_iter_init_array_iterator): return void, since it
8457         can't fail
8458         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8459         (_dbus_message_loader_queue_messages): add silly temporary hack to
8460         fill in message->signature on load
8461
8462         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8463         characters, so they are relatively human-readable.
8464
8465 2003-10-11  Havoc Pennington  <hp@pobox.com>
8466
8467         * dbus/dbus-message.c (_dbus_message_test): add more test
8468         coverage, but #if 0 for now since they uncover a bug 
8469         not fixed yet; I think in re_align_field_recurse()
8470         (re_align_field_recurse): add FIXME about broken assertion
8471
8472         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8473
8474         * bus/connection.c: share a couple code bits with expirelist.c
8475
8476         * bus/expirelist.h, bus/expirelist.c: implement a generic
8477         expire-items-after-N-seconds facility, was going to share between
8478         expiring connections and replies, decided not to use for expiring
8479         connections for now.
8480
8481         * COPYING: include AFL 2.0 (still need to change all the file headers)
8482
8483 2003-10-09  Havoc Pennington  <hp@redhat.com>
8484
8485         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8486         gcc 3.3. Not that we do anything about it yet.
8487
8488         * bus/signals.c (bus_match_rule_parse): impose max length on the
8489         match rule text
8490
8491         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8492
8493 2003-10-09  Havoc Pennington  <hp@redhat.com>
8494
8495         Make matching rules theoretically work (add parser).
8496         
8497         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8498         the case where destination is explicitly specified as bus driver
8499         and someone else is eavesdropping.
8500         
8501         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8502         definition of eavesdropping and assertion
8503
8504         * tools/dbus-send.c (main): use dbus_message_type_from_string
8505
8506         * bus/signals.c (bus_match_rule_parse): implement
8507
8508         * dbus/dbus-message.c (dbus_message_type_from_string): new
8509
8510         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8511
8512 2003-10-02  Havoc Pennington  <hp@pobox.com>
8513
8514         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8515         dbus_gproxy_oneway_call
8516
8517         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8518         (dbus_server_setup_with_g_main): fix to allow calling them more
8519         than once on the same args
8520         (dbus_bus_get_with_g_main): new function
8521
8522 2003-10-02  Havoc Pennington  <hp@redhat.com>
8523
8524         * doc/dbus-tutorial.xml: write some stuff
8525
8526 2003-09-29  Havoc Pennington  <hp@pobox.com>
8527
8528         * configure.in: split checks for Doxygen from XML docs, check for
8529         xmlto
8530
8531         * doc/Makefile.am: XML-ify all the docs, and add a blank
8532         dbus-tutorial.xml
8533
8534 2003-09-29  Havoc Pennington  <hp@pobox.com>
8535
8536         * Merge dbus-object-names branch. To see the entire patch 
8537         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8538         it's huuuuge though.
8539         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8540         
8541 2003-09-28  Havoc Pennington  <hp@pobox.com>
8542
8543         * HACKING: update to reflect new server
8544
8545 2003-09-26  Seth Nickell  <seth@gnome.org>
8546
8547         * python/dbus.py:
8548         * python/examples/example-signals.py:
8549
8550         Start implementing some notions of signals. The API
8551         is really terrible, but they sort of work (with the
8552         exception of being able to filter by service, and to
8553         transmit signals *as* a particular service). Need to
8554         figure out how to make messages come from the service
8555         we registered :-(
8556         
8557         * python/dbus_bindings.pyx.in:
8558
8559         Removed duplicate message_handler callbacks.
8560         
8561 2003-09-25  Havoc Pennington  <hp@redhat.com>
8562
8563         * bus/session.conf.in: fix my mess
8564
8565 2003-09-25  Havoc Pennington  <hp@pobox.com>
8566
8567         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8568
8569 2003-09-25  Seth Nickell  <seth@gnome.org>
8570
8571         * python/examples/example-service.py:
8572
8573         Johan notices complete wrong code in example-service, but
8574         completely wrong in a way that works exactly the same (!).
8575         Johan is confused, how could this possibly work? Example
8576         code fails to serve purpose of making things clear.
8577         Seth fixes.
8578
8579 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8580
8581         * doc/dbus-specification.sgml: don't require header fields
8582         to be 4-byte aligned and specify that fields should be
8583         distinguished from padding by the fact that zero is not
8584         a valid field name.
8585         
8586         * doc/TODO: remove re-alignment item and add item to doc
8587         the OBJECT_PATH type.
8588         
8589         * dbus/dbus-message.c:
8590         (HeaderField): rename the original member to value_offset
8591         and introduce a name_offset member to keep track of where
8592         the field actually begins.
8593         (adjust_field_offsets): remove.
8594         (append_int_field), (append_uint_field),
8595         (append_string_field): don't align the start of the header
8596         field to a 4-byte boundary.
8597         (get_next_field): impl finding the next marhsalled field
8598         after a given field.
8599         (re_align_field_recurse): impl re-aligning a number of
8600         already marshalled fields.
8601         (delete_field): impl deleting a field of any type and
8602         re-aligning any following fields.
8603         (delete_int_or_uint_field), (delete_string_field): remove.
8604         (set_int_field), (set_uint_field): no need to re-check
8605         that we have the correct type for the field.
8606         (set_string_field): ditto and impl re-aligning any
8607         following fields.
8608         (decode_header_data): update to take into account that
8609         the fields aren't 4-byte aligned any more and the new
8610         way to distinguish padding from header fields. Also,
8611         don't exit when there is too much header padding.
8612         (process_test_subdir): print the directory.
8613         (_dbus_message_test): add test to make sure a following
8614         field is re-aligned correctly after field deletion.
8615         
8616         * dbus/dbus-string.[ch]:
8617         (_dbus_string_insert_bytes): rename from insert_byte and
8618         allow the insert of multiple bytes.
8619         (_dbus_string_test): test inserting multiple bytes.
8620
8621         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8622         warning note to docs about having to re-align any
8623         marshalled values following the string.
8624         
8625         * dbus/dbus-message-builder.c:
8626         (append_string_field), (_dbus_message_data_load):
8627         don't align the header field.
8628         
8629         * dbus/dbus-auth.c: (process_test_subdir): print the
8630         directory.
8631         
8632         * test/break-loader.c: (randomly_add_one_byte): upd. for
8633         insert_byte change.
8634         
8635         * test/data/invalid-messages/bad-header-field-alignment.message:
8636         new test case.
8637         
8638         * test/data/valid-messages/unknown-header-field.message: shove
8639         a dict in the unknown field.
8640
8641 2003-09-25  Seth Nickell  <seth@gnome.org>
8642
8643         * python/dbus.py:
8644         * python/dbus_bindings.pyx.in:
8645
8646         Handle return values.
8647         
8648         * python/examples/example-client.py:
8649         * python/examples/example-service.py:
8650
8651         Pass back return values from the service to the client.
8652         
8653 2003-09-24  Seth Nickell  <seth@gnome.org>
8654
8655         * python/dbus.py:
8656
8657         Connect Object methods (when you are sharing an object) up... pass
8658         in a list of methods to be shared. Sharing all the methods just
8659         worked out too weird. You can now create nice Services over the
8660         DBus in Python. :-)
8661         
8662         * python/dbus_bindings.pyx.in:
8663
8664         Keep references to user_data tuples passed into C functions so 
8665         Python doesn't garbage collect on us.
8666
8667         Implement MethodReturn and Error subclasses of Message for creating
8668         DBusMessage's of those types.
8669         
8670         * python/examples/example-client.py:
8671         * python/examples/example-service.py:
8672
8673         Simple example code showing both how create DBus services and objects,
8674         and how to use them.
8675
8676 2003-09-23  Havoc Pennington  <hp@pobox.com>
8677
8678         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8679
8680 2003-09-23  Havoc Pennington  <hp@redhat.com>
8681
8682         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8683         (dbus_gproxy_disconnect_signal): implement
8684         (dbus_gproxy_manager_remove_signal_match): implement
8685         (dbus_gproxy_manager_add_signal_match): implement
8686         (dbus_gproxy_oneway_call): implement
8687
8688 2003-09-23  Havoc Pennington  <hp@pobox.com>
8689
8690         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8691         subclass. This means dropping the transparent thread safety of the
8692         proxy; you now need a separate proxy per-thread, or your own
8693         locking on the proxy. Probably right anyway.
8694         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8695
8696 2003-09-22  Havoc Pennington  <hp@redhat.com>
8697
8698         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8699
8700 2003-09-21  Seth Nickell  <seth@gnome.org>
8701
8702         First checkin of the Python bindings.
8703         
8704         * python/.cvsignore:
8705         * python/Makefile.am:
8706         * python/dbus_bindings.pyx.in:
8707         * python/dbus_h_wrapper.h:
8708
8709         Pieces for Pyrex to operate on, building a dbus_bindings.so
8710         python module for low-level access to the DBus APIs.
8711         
8712         * python/dbus.py:
8713
8714         High-level Python module for accessing DBus objects.
8715
8716         * configure.in:
8717         * Makefile.am:
8718
8719         Build stuff for the python bindings.
8720
8721         * acinclude.m4:
8722
8723         Extra macro needed for finding the Python C header files.
8724
8725 2003-09-21  Havoc Pennington  <hp@pobox.com>
8726
8727         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8728         implementing the proxy manager, didn't get very far.
8729
8730         * dbus/dbus-bus.c (dbus_bus_add_match): new
8731         (dbus_bus_remove_match): new
8732
8733         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8734         path_name argument; adjust the other not-yet-implemented 
8735         gproxy constructors to be what I think they should be.
8736
8737 2003-09-21  Havoc Pennington  <hp@pobox.com>
8738
8739         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8740         by default for message bus connections.
8741
8742         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8743         exit_on_disconnect flag is set and we process the disconnected
8744         signal.
8745         (dbus_connection_set_exit_on_disconnect): new function
8746
8747 2003-09-21  Havoc Pennington  <hp@pobox.com>
8748
8749         Get matching rules mostly working in the bus; only actually
8750         parsing the rule text remains. However, the client side of
8751         "signal connections" hasn't been started, this patch is only the
8752         bus side.
8753         
8754         * dbus/dispatch.c: fix for the matching rules changes
8755         
8756         * bus/driver.c (bus_driver_handle_remove_match)
8757         (bus_driver_handle_add_match): send an ack reply from these
8758         method calls
8759
8760         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8761         arguments, reported by Seth Nickell
8762
8763         * bus/config-parser.c (append_rule_from_element): support
8764         eavesdrop=true|false attribute on policies so match rules 
8765         can be prevented from snooping on the system bus.
8766
8767         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8768         and "destination" in attribute names; fix some docs bugs; 
8769         add eavesdrop=true|false attribute
8770
8771         * bus/driver.c (bus_driver_handle_add_match)
8772         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8773         messages
8774
8775         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8776         rid of broadcast service concept, signals are just always broadcast
8777
8778         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8779         mostly implement matching rules stuff (currently only exposed as signal
8780         connections)
8781
8782 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8783
8784         * doc/dbus-specification.sgml: Change the header field name
8785         to be an enum and update the rest of the spec to reference
8786         the fields using the conventinal name.
8787
8788         * dbus/dbus-protocol.h: update to reflect the spec.
8789
8790         * doc/TODO: add item to remove the 4 byte alignment requirement.
8791         
8792         * dbus/dbus-message.c: Remove the code to generalise the
8793         header/body length and serial number header fields as named
8794         header fields so we can reference field names using the 
8795         protocol values.
8796         (append_int_field), (append_uint_field), (append_string_field):
8797         Append the field name as a byte rather than four chars.
8798         (delete_int_or_uint_field), (delete_string_field): reflect the
8799         fact that the field name and typecode now occupy 4 bytes instead
8800         of 8.
8801         (decode_string_field), (decode_header_data): update to reflect
8802         protocol changes and move the field specific encoding from
8803         decode_string_field() back into decode_header_data().
8804         
8805         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8806         Add utility to aid debugging.
8807         
8808         * dbus/dbus-message-builder.c:
8809         (append_string_field), (_dbus_message_data_load): Update to
8810         reflect protocol changes; Change the FIELD_NAME directive
8811         to HEADER_FIELD and allow it to take the field's conventional
8812         name rather than the actual value.
8813         
8814         * test/data/*/*.message: Update to use HEADER_FIELD instead
8815         of FIELD_NAME; Always align the header on an 8 byte boundary
8816         *before* updating the header length.
8817
8818 2003-09-15  Havoc Pennington  <hp@pobox.com>
8819
8820         * dbus/dbus-pending-call.c: add the get/set object data
8821         boilerplate as for DBusConnection, etc. Use generic object data
8822         for the notify callback.
8823
8824         * glib/dbus-gparser.c (parse_node): parse child nodes
8825
8826         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8827         
8828         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8829         contain functions shared between the convenience lib and the
8830         installed lib
8831
8832         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8833         -export-symbols-regex to the GLib library
8834
8835         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8836         fix the locking in here, and add a default handler for
8837         Introspect() that just returns sub-nodes.
8838
8839 2003-09-14  Havoc Pennington  <hp@pobox.com>
8840
8841         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8842         rather than gfoo consistent
8843
8844         * glib/dbus-gproxy.h: delete for now, move contents to
8845         dbus-glib.h, because the include files don't work right since we
8846         aren't in the dbus/ subdir.
8847         
8848         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8849         (dbus_gproxy_end_call): finish
8850         (dbus_gproxy_begin_call): finish
8851
8852         * glib/dbus-gmain.c (dbus_set_g_error): new
8853
8854         * glib/dbus-gobject.c (handle_introspect): include information
8855         about child nodes in the introspection
8856
8857         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8858         function to help in implementation of introspection
8859
8860         * dbus/dbus-object-tree.c
8861         (_dbus_object_tree_list_registered_and_unlock): new function
8862
8863 2003-09-12  Havoc Pennington  <hp@pobox.com>
8864
8865         * glib/dbus-gidl.h: add common base class for all the foo_info
8866         types
8867
8868         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8869         similar to kdcop
8870
8871         * test/Makefile.am: try test srcdir -ef . in addition to test
8872         srcdir = ., one of them should work (yeah lame)
8873         
8874         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8875         library
8876         
8877         * glib/dbus-gparser.h: make description_load routines return
8878         NodeInfo* not Parser*
8879
8880         * Makefile.am (SUBDIRS): build test dir after all library dirs
8881
8882         * configure.in: add GTK+ detection
8883
8884 2003-09-07  Havoc Pennington  <hp@pobox.com>
8885
8886         * Make Doxygen contented.
8887
8888 2003-09-07  Havoc Pennington  <hp@pobox.com>
8889
8890         * doc/dbus-specification.sgml: more updates
8891
8892 2003-09-06  Havoc Pennington  <hp@pobox.com>
8893
8894         * doc/dbus-specification.sgml: partial updates
8895
8896         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8897         zillionth time; hopefully I edited the right file this time.
8898
8899         * bus/config-parser.c (append_rule_from_element): support
8900         send_type, send_path, receive_type, receive_path
8901
8902         * bus/policy.c: add message type and path to the list of things
8903         that can be "firewalled"
8904
8905 2003-09-06  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8908         (dbus_connection_register_object_path): make this not handle
8909         messages to paths below the given path
8910
8911 2003-09-03  Havoc Pennington  <hp@pobox.com>
8912
8913         * test/glib/Makefile.am: add this with random glib-linked test
8914         programs
8915
8916         * glib/Makefile.am: remove the random test programs from here,
8917         leave only the unit tests
8918
8919         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8920         uscore/javacaps conversion, and fix     
8921         (get_object_property, set_object_property): change to .NET
8922         convention for mapping props to methods, set_FooBar/get_FooBar, 
8923         since one language has such a convention we may as well copy it. 
8924         Plus real methods in either getFooBar or get_foo_bar style won't 
8925         collide with this convention.
8926
8927 2003-09-01  Havoc Pennington  <hp@pobox.com>
8928
8929         * glib/dbus-gparser.c: implement
8930
8931         * glib/dbus-gobject.c: start implementing skeletons support
8932
8933         * configure.in: when disabling checks/assert, also define
8934         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8935
8936 2003-09-01  Havoc Pennington  <hp@pobox.com>
8937
8938         * glib/Makefile.am: rearrange a bunch of files and get "make
8939         check" framework set up
8940
8941 2003-08-31  Havoc Pennington  <hp@pobox.com>
8942
8943         * fix build with --disable-tests
8944
8945 2003-08-30  Havoc Pennington  <hp@pobox.com>
8946
8947         * dbus/dbus-connection.c: purge DBusMessageHandler
8948
8949         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8950         use callbacks everywhere
8951
8952 2003-08-30  Havoc Pennington  <hp@pobox.com>
8953
8954         * test/data/valid-config-files/system.d/test.conf: change to 
8955         root for the user so warnings don't get printed
8956
8957         * dbus/dbus-message.c: add dbus_message_get_path,
8958         dbus_message_set_path
8959         
8960         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8961         dispatching to a path
8962
8963         * dbus/dbus-string.c (_dbus_string_validate_path): add
8964
8965         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8966         (_dbus_marshal_object_path): implement
8967
8968         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8969         to contain the path to the target object
8970         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8971         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8972
8973 2003-08-30  Havoc Pennington  <hp@pobox.com>
8974
8975         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8976
8977 2003-08-29  Havoc Pennington  <hp@pobox.com>
8978
8979         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8980         registered
8981         (struct DBusObjectSubtree): shrink this
8982         a lot, since we may have a lot of them
8983         (_dbus_object_tree_free_all_unlocked): implement
8984         (_dbus_object_tree_dispatch_and_unlock): implement
8985
8986 2003-08-29  Havoc Pennington  <hp@pobox.com>
8987
8988         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8989
8990 2003-08-28  Havoc Pennington  <hp@pobox.com>
8991
8992         purge DBusObjectID
8993         
8994         * dbus/dbus-connection.c: port to no ObjectID, create a
8995         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8996
8997         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8998         everything except UnregisterFunction and MessageFunction
8999         
9000         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9001         add DBUS_TYPE_OBJECT_PATH
9002         
9003         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9004         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9005         path-based object IDs
9006
9007 2003-08-25  Havoc Pennington  <hp@pobox.com>
9008
9009         Just noticed that dbus_message_test is hosed, I wonder when I
9010         broke that. I thought make check was passing earlier...
9011         
9012         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9013         container tree, will replace most of dbus-object-registry
9014
9015         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9016         screwup
9017
9018 2003-08-19  Havoc Pennington  <hp@pobox.com>
9019
9020         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9021         (dbus_message_is_error): fix this function
9022
9023         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9024         match
9025
9026         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9027         reflect clarified man page
9028         (bus_client_policy_check_can_send): ditto
9029         
9030         * bus/session.conf.in: fixup
9031
9032         * bus/system.conf.in: fixup
9033
9034 2003-08-18  Havoc Pennington  <hp@redhat.com>
9035
9036         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9037
9038         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9039         dumb bug created earlier (wrong order of args to
9040         decode_header_data())
9041         
9042         * tools/dbus-send.c: port
9043
9044         * tools/dbus-print-message.c (print_message): port
9045
9046         * test/data/*messages: port all messages over
9047         
9048         * dbus/dbus-message-builder.c: support including 
9049         message type
9050         
9051         * bus/driver.c: port over
9052         
9053         * bus/dispatch.c: port over to new stuff
9054
9055         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9056         rename disconnect signal to "Disconnected"
9057
9058 2003-08-17  Havoc Pennington  <hp@pobox.com>
9059
9060         This doesn't compile yet, but syncing up so I can hack on it from
9061         work. What are branches for if not broken code? ;-)
9062         
9063         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9064         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9065         DBUS_HEADER_FIELD_ERROR_NAME
9066         
9067         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9068         for the interface+member pairs
9069         (string_hash): change to use g_str_hash algorithm
9070         (find_direct_function, find_string_function): refactor these to
9071         share most code.
9072         
9073         * dbus/dbus-message.c: port all of this over to support 
9074         interface/member fields instead of name field
9075
9076         * dbus/dbus-object-registry.c: port over
9077         
9078         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9079         from _dbus_string_validate_name
9080
9081         * bus/dbus-daemon-1.1: change file format for the 
9082         <deny>/<allow> stuff to match new message naming scheme
9083
9084         * bus/policy.c: port over
9085
9086         * bus/config-parser.c: parse new format
9087         
9088 2003-08-16  Havoc Pennington  <hp@pobox.com>
9089
9090         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9091         broken assertion
9092
9093         * glib/dbus-gproxy.c: some hacking
9094
9095 2003-08-15  Havoc Pennington  <hp@redhat.com>
9096
9097         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9098
9099         * dbus/dbus-connection.c
9100         (dbus_connection_send_with_reply_and_block): factor out internals;
9101         change to convert any error replies to DBusError instead of 
9102         returning them as a message
9103
9104 2003-08-15  Havoc Pennington  <hp@pobox.com>
9105
9106         * dbus/dbus-connection.c, 
9107         dbus/dbus-pending-call.c: Finish the pending call stuff
9108
9109 2003-08-14  Havoc Pennington  <hp@redhat.com>
9110
9111         * dbus/dbus-pending-call.c: start on new object that will replace
9112         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9113         replies
9114
9115         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9116         with remote interfaces
9117
9118         * dbus/dbus-gidl.c: do the boring boilerplate in here
9119         
9120 2003-08-12  Havoc Pennington  <hp@pobox.com>
9121
9122         * bus/dispatch.c (bus_dispatch): make this return proper 
9123         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9124
9125         * dbus/dbus-errors.c (dbus_set_error): use
9126         _dbus_string_append_printf_valist
9127
9128         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9129         (_dbus_string_append_printf): new
9130
9131         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9132         UNKNOWN_METHOD
9133
9134         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9135         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9136         message is unhandled.
9137
9138 2003-08-11  Havoc Pennington  <hp@pobox.com>
9139
9140         * bus/test.c (client_disconnect_handler): change to return
9141         HANDLED (would have been REMOVE_MESSAGE)
9142
9143         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9144         HANDLED/NOT_YET_HANDLED instead of
9145         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9146         should be used.
9147
9148 2003-08-10  Havoc Pennington  <hp@pobox.com>
9149
9150         * tools/dbus-send.c (main): add --type argument, for now
9151         supporting only method_call and signal types.
9152
9153         * tools/dbus-print-message.c: print message type
9154
9155         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9156         init connection->objects
9157
9158         * doc/dbus-specification.sgml: fix sgml
9159
9160         * bus/*.c: port over to object-instance API changes
9161
9162         * test/test-service.c: ditto
9163         
9164         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9165         name, we will have to fix up the rest of the code to also handle
9166         this
9167         (dbus_message_new): generic message-creation call
9168         (set_string_field): allow appending name field
9169
9170 2003-08-06  Havoc Pennington  <hp@pobox.com>
9171
9172         * dbus/dbus-object-registry.c: implement signal connection 
9173         and dispatch
9174
9175         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9176
9177         * dbus/dbus-internals.c (_dbus_memdup): new function
9178
9179 2003-08-02  Havoc Pennington  <hp@pobox.com>
9180
9181         * dbus/dbus-message.c (dbus_message_get_no_reply)
9182         (dbus_message_set_no_reply): add these and remove
9183         set_is_error/get_is_error
9184
9185         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9186         remove the ERROR flag, since there's now an ERROR type
9187
9188 2003-08-01  Havoc Pennington  <hp@pobox.com>
9189
9190         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9191         implement
9192
9193         * dbus/dbus-message.c (dbus_message_get_type): new function
9194
9195         * doc/dbus-specification.sgml: add "type" byte to messages
9196
9197 2003-08-01  Havoc Pennington  <hp@pobox.com>
9198
9199         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9200         a message type enum to distinguish kinds of message
9201         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9202         that need not be replied to
9203
9204 2003-08-01  Havoc Pennington  <hp@pobox.com>
9205
9206         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9207         (unpack_8_octets): fix no-64-bit-int bug
9208
9209         * dbus/dbus-object-registry.c (validate_id): validate the 
9210         connection ID bits, not just the instance ID.
9211
9212         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9213         the connection-global 33 bits of the object ID
9214
9215         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9216         object ID in the new way
9217
9218         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9219         define server/client/instance bits.
9220
9221 2003-07-30  Havoc Pennington  <hp@pobox.com>
9222
9223         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9224         build
9225
9226 2003-07-13  Havoc Pennington  <hp@pobox.com>
9227
9228         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9229         fields to DBusObjectVTable and DBusObjectInfo
9230
9231 2003-07-12  Havoc Pennington  <hp@pobox.com>
9232
9233         * dbus/dbus-object-registry.c: implement unit test,
9234         fix bugs discovered in process
9235
9236         * dbus/dbus-connection.c: remove handler_table and
9237         register_handler(), add DBusObjectRegistry usage
9238
9239         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9240         (dbus_object_id_set_null): new functions
9241
9242 2003-07-08  Havoc Pennington  <hp@pobox.com>
9243
9244         * dbus/dbus-object.c: implement some of this
9245
9246         * dbus/dbus-object-registry.c
9247         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9248         param
9249         (_dbus_object_registry_new): handle OOM
9250
9251 2003-07-08  Havoc Pennington  <hp@pobox.com>
9252
9253         * dbus/dbus-object.h: sketch out an API for registering objects
9254         with a connection, that allows us to use as little as 24 bytes
9255         per object and lets application code represent an object in 
9256         any conceivable way.
9257
9258         * dbus/dbus-object-registry.c: implement the hard bits of the
9259         DBusConnection aspect of object API. Not yet wired up.
9260         
9261 2003-07-06  Havoc Pennington  <hp@pobox.com>
9262
9263         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9264         (_dbus_marshal_object_id): new
9265         (_dbus_demarshal_object_id): new
9266         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9267         consolidate identical switch cases. Don't conditionalize handling
9268         of DBUS_TYPE_UINT64, need to handle the type always.
9269         (_dbus_marshal_validate_arg): consolidate identical cases, and
9270         handle DBUS_TYPE_OBJECT_ID
9271
9272         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9273
9274         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9275
9276 2003-09-28  Havoc Pennington  <hp@pobox.com>
9277
9278         * real 0.13 release
9279
9280 2003-09-28  Havoc Pennington  <hp@pobox.com>
9281
9282         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9283         to work with Debian db2html
9284
9285 2003-09-28  Havoc Pennington  <hp@pobox.com>
9286
9287         * configure.in: 0.13
9288
9289         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9290         stylesheet-images for benefit of Debian
9291         
9292         Change back to using filesystem-linked sockets for the system
9293         bus, so only root can create the default system bus address.
9294         
9295         * bus/system.conf.in: change to use
9296         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9297
9298         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9299         from here.
9300
9301         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9302         here, and AC_DEFINE DBUS_SYSTEM_PATH
9303
9304 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9305
9306         * doc/TODO:
9307         * doc/busconfig.dtd:
9308         Add busconfig DTD.
9309         
9310 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9311
9312         * doc/dbus-specification.sgml:
9313         Add activation reply values.
9314         
9315 2003-08-05  Havoc Pennington  <hp@redhat.com>
9316
9317         * configure.in: 0.12
9318
9319 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9320
9321         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9322         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9323         (add_watch), (remove_watch), (create_source):
9324         Refcount fds, fixes some reentrancy issues.
9325         
9326 2003-07-30  Havoc Pennington  <hp@redhat.com>
9327
9328         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9329         bus address to be abstract if we have abstract sockets
9330
9331         * NEWS: update
9332
9333 2003-07-28  Havoc Pennington  <hp@redhat.com>
9334
9335         * bus/messagebus.in: fix to avoid processname/servicename 
9336         confusion, from Michael Kearey
9337         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9338         
9339 2003-07-23  Havoc Pennington  <hp@pobox.com>
9340
9341         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9342         fix from Andy Hanton to remove broken "+1"
9343
9344 2003-07-16  Havoc Pennington  <hp@pobox.com>
9345
9346         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9347         babysitter process, as suggested by Thomas Leonard, so 
9348         an "eval `dbus-launch --exit-with-session`" will actually 
9349         return
9350
9351 2003-07-16  Havoc Pennington  <hp@pobox.com>
9352
9353         * configure.in: print out EXPANDED_* variables in the summary at
9354         the end; clean up the code that computes EXPANDED_ variables and
9355         get the ones using exec_prefix right. Should make things work
9356         when you build without --prefix
9357
9358 2003-06-29  Havoc Pennington  <hp@pobox.com>
9359
9360         * mono/Test.cs (class Test): fire up a main loop and run it
9361
9362         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9363         done once, the app has to do it
9364
9365 2003-06-26  Havoc Pennington  <hp@pobox.com>
9366
9367         * mono/Connection.cs: set up connection with the glib main loop
9368
9369 2003-07-01  Havoc Pennington  <hp@redhat.com>
9370
9371         * doc/dbus-specification.sgml: clarify the format of a type code,
9372         change suggested by Jim Blandy
9373
9374 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9375
9376         * doc/Makefile.am:
9377         * tools/Makefile.am: Don't assume srcdir == builddir.
9378
9379         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9380         the allocated block.
9381         (_dbus_memory_test): New function.
9382         * dbus/dbus-test.h: Add _dbus_memory_test ().
9383         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9384
9385         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9386         of %c%c%c%c.
9387         (dbus_message_new): Remove obsolete @todo.
9388
9389         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9390         (_dbus_marshal_set_uint64): Fix comment.
9391
9392         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9393         hardcode FIELD_REPLY_SERIAL.
9394
9395         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9396         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9397
9398         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9399         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9400
9401 2003-06-24  Havoc Pennington  <hp@pobox.com>
9402
9403         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9404
9405 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9406
9407         * configure.in:
9408         * gcj/.cvsignore:
9409         * gcj/Hello.java:
9410         * gcj/Makefile.am:
9411         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9412         * gcj/org/.cvsignore:
9413         * gcj/org/Makefile.am:
9414         * gcj/org/freedesktop/.cvsignore:
9415         * gcj/org/freedesktop/Makefile.am:
9416         * gcj/org/freedesktop/dbus/.cvsignore:
9417         * gcj/org/freedesktop/dbus/Makefile.am:
9418         * gcj/org/freedesktop/dbus/Message.java: (Message),
9419         (Message.Message):
9420         * gcj/org/freedesktop/dbus/natMessage.cc:
9421         Fix the build system.
9422
9423 2003-06-22  Havoc Pennington  <hp@pobox.com>
9424
9425         * mono/Connection.cs: add more bindings
9426
9427         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9428         more than once.
9429
9430 2003-06-22  Havoc Pennington  <hp@pobox.com>
9431
9432         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9433         Start wrapping more stuff.
9434
9435 2003-06-22  Havoc Pennington  <hp@pobox.com>
9436
9437         * mono/Message.cs: implement Message.Wrap() that ensures we only
9438         have a single C# wrapper per DBusMessage, assuming it works which
9439         it probably doesn't.
9440
9441         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9442         (dbus_message_free_data_slot): new
9443         (dbus_message_set_data): new
9444         (dbus_message_get_data): new
9445
9446 2003-06-22  Havoc Pennington  <hp@pobox.com>
9447
9448         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9449         (_dbus_data_slot_allocator_alloc): rework these to keep a
9450         reference count on each slot and automatically manage a global
9451         slot ID variable passed in by address
9452
9453         * bus/bus.c: convert to new dataslot API
9454
9455         * dbus/dbus-bus.c: convert to new dataslot API
9456
9457         * dbus/dbus-connection.c: convert to new dataslot API
9458
9459         * dbus/dbus-server.c: convert to new dataslot API
9460
9461         * glib/dbus-gmain.c: ditto
9462
9463         * bus/test.c: ditto
9464
9465         * bus/connection.c: ditto
9466
9467 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9468
9469         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9470         after the gcj checks so that the correct configuration tags
9471         will be added to libtool.
9472
9473         * dbus-glib-1.pc.in: No need to specify any includes since
9474         dbus-1.pc.in has those.
9475
9476 2003-06-22  Havoc Pennington  <hp@pobox.com>
9477
9478         * mono/*, gcj/*, configure.in, Makefile.am:
9479         Check in makefiles and subdirs for mono and gcj bindings.
9480         Neither binding actually exists, just trying to get through
9481         all the build and other boring bits.
9482
9483 2003-06-21  Philip Blundell  <philb@gnu.org>
9484
9485         * tools/dbus-monitor.1: Updated.
9486
9487         * tools/dbus-send.1: Likewise.
9488
9489 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9490
9491         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9492         for hangup and error after checking read so we won't discard
9493         pending data if both hangup and read are set.
9494
9495 2003-06-19  Philip Blundell  <philb@gnu.org>
9496
9497         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9498
9499         * tools/dbus-send.c: Accept both --system and --session.
9500
9501         * tools/dbus-monitor.c: Same here.
9502
9503 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9504
9505         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9506         from C++ (Patch by Miloslav Trmac).
9507
9508 2003-06-15  Joe Shaw  <joe@assbarn.com>
9509
9510         * configure.in: Check for socklen_t.
9511
9512         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9513
9514         * test/test-segfault.c: Add #include <sys/time.h>
9515
9516         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9517         dbus-launch needs it.
9518
9519 2003-06-09  Havoc Pennington  <hp@redhat.com>
9520
9521         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9522         SUN_LEN, it breaks abstract socket usage
9523
9524         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9525         starts of lines.
9526
9527 2003-06-04  Havoc Pennington  <hp@pobox.com>
9528
9529         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9530         using unix:abstract=/foo, and when listening in a tmpdir
9531         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9532
9533         * dbus/dbus-transport.c (_dbus_transport_open): support
9534         unix:abstract=/foo
9535
9536         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9537         support abstract sockets
9538
9539         * dbus/dbus-transport-unix.c
9540         (_dbus_transport_new_for_domain_socket): support abstract sockets
9541
9542         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9543         toggle as an argument, implement abstract namespace support
9544         (_dbus_listen_unix_socket): ditto
9545
9546         * configure.in: add --enable-abstract-sockets and implement
9547         a configure check for autodetection of the right value.
9548
9549 2003-06-01  Havoc Pennington  <hp@pobox.com>
9550
9551         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9552         in /tmp (though on Linux this will end up being useless,
9553         when we add abstract namespace support)
9554
9555         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9556         subst'ing it
9557
9558 2003-05-28  Colin Walters  <walters@verbum.org>
9559
9560         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9561
9562 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9563
9564         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9565
9566 2003-05-17  Colin Walters  <walters@gnu.org>
9567
9568         * tools/dbus-send.c: Don't exit with an error code if --help was
9569         passed.  Default to using the session bus instead of the system
9570         one.
9571
9572         * tools/dbus-launch.c: Ditto.
9573
9574         * tools/dbus-monitor.c: Ditto.
9575
9576         * tools/dbus-send.1: Update with new arguments.
9577
9578         * tools/dbus-launch.c: Emit code to export variables.  New
9579         arguments -s and -c to specify shell syntax, and a bit of code to
9580         autodetect syntax.  Also, allow specifying a program to run.
9581
9582         * tools/dbus-launch.1: Update with new arguments.
9583
9584         * tools/dbus-send.1: Ditto.
9585
9586         * tools/dbus-monitor.1: Ditto.
9587
9588 2003-05-17  Havoc Pennington  <hp@pobox.com>
9589
9590         * bus/config-parser.c (merge_included): merge in policies from
9591         child configuration file.
9592
9593         * bus/policy.c (bus_policy_merge): function to merge two policies
9594         together
9595
9596 2003-05-16  Havoc Pennington  <hp@redhat.com>
9597
9598         * dbus/dbus-connection.c: disable verbose lock spew
9599
9600         * tools/dbus-send.c: add --print-reply command line option
9601
9602         * tools/dbus-print-message.h (print_message): new util function
9603         shared by dbus-send and dbus-monitor
9604
9605         * tools/dbus-monitor.c (handler_func): exit on disconnect
9606
9607         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9608         disconnected, don't try to use the read_watch
9609
9610         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9611         so we can find this bug more easily
9612
9613 2003-05-16  Havoc Pennington  <hp@redhat.com>
9614
9615         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9616         NULL as DBusHashTable is annoyingly likely to do.
9617
9618 2003-05-16  Colin Walters  <walters@verbum.org>
9619
9620         * tools/dbus-monitor.c: Add --session argument and usage()
9621         function.
9622
9623         * tools/dbus-monitor.1: Update with new --session arg.
9624
9625         * bus/Makefile.am (install-data-hook): Create
9626         $(libdir)/dbus-1.0/services so that the session bus is happy.
9627
9628 2003-05-15  Havoc Pennington  <hp@redhat.com>
9629
9630         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9631         on non-x86. ifdef's are evil.
9632
9633 2003-05-15  Havoc Pennington  <hp@redhat.com>
9634
9635         * configure.in: 0.11
9636
9637         * NEWS: update
9638
9639         * bus/Makefile.am (initddir): apparently we are supposed to put
9640         init scripts in /etc/rc.d/init.d not /etc/init.d
9641
9642         * bus/Makefile.am: remove the "you must --enable-tests to make
9643         check" as it broke distcheck
9644
9645         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9646
9647 2003-05-13  James Willcox  <jwillcox@gnome.org>
9648
9649         * configure.in:
9650         * bus/activation.c: (bus_activation_service_created),
9651         (bus_activation_activate_service):
9652         * bus/driver.c: (bus_driver_send_service_deleted),
9653         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9654         (bus_driver_send_service_acquired),
9655         (bus_driver_send_welcome_message),
9656         (bus_driver_handle_list_services):
9657         * bus/session.conf.in:
9658         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9659         (dbus_bus_service_exists), (dbus_bus_activate_service):
9660         * dbus/dbus-bus.h:
9661
9662         Add some convenience API which lets you activate a service, and did a
9663         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9664         and dbus_message_get_args()
9665
9666 2003-05-11  Havoc Pennington  <hp@pobox.com>
9667
9668         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9669         calling _dbus_marshal_validate_arg() for every byte in a byte
9670         array, etc.
9671
9672         * dbus/dbus-message-handler.c: use atomic reference counting to
9673         reduce number of locks slightly; the global lock in here sucks
9674
9675         * dbus/dbus-connection.c
9676         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9677         update_dispatch_status that can be called with lock held; then use
9678         in a couple places to reduce locking/unlocking
9679         (dbus_connection_send): hold the lock over the whole function
9680         instead of acquiring it twice.
9681
9682         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9683
9684         * bus/connection.c (bus_connections_setup_connection): fix access
9685         to already-freed memory.
9686
9687         * dbus/dbus-connection.c: keep a little cache of linked list
9688         nodes, to avoid using the global linked list alloc lock in the
9689         normal send-message case. Instead we just use the connection lock
9690         that we already have to take.
9691
9692         * dbus/dbus-list.c (_dbus_list_find_last): new function
9693
9694         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9695         change to use a struct for the atomic type; fix docs,
9696         they return value before increment, not after increment.
9697
9698         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9699         (_dbus_string_append_8_aligned): new functions to try to
9700         microoptimize this operation.
9701         (reallocate_for_length): break this out of set_length(), to
9702         improve profile info, and also so we can consider inlining the
9703         set_length() part.
9704
9705         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9706         strings with some preallocation, cuts down on our calls to realloc
9707         a fair bit. Though if we can get the "move entire string to empty
9708         string" optimization below to kick in here, it would be better.
9709
9710         * dbus/dbus-string.c (_dbus_string_move): just call
9711         _dbus_string_move_len
9712         (_dbus_string_move_len): add a special case for moving
9713         an entire string into an empty string; we can just
9714         swap the string data instead of doing any reallocs.
9715         (_dbus_string_init_preallocated): new function
9716
9717 2003-05-11  Havoc Pennington  <hp@pobox.com>
9718
9719         Write a "test-profile" that does echo client-server with threads;
9720         profile reveals lock contention, memcpy/realloc of buffers, and
9721         UTF-8 validation as hot spots. 20% of lock contention eliminated
9722         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9723         contention is global mempool locks for GList and DBusList.
9724
9725         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9726         x86 implementation
9727
9728         * dbus/dbus-connection.c (struct DBusConnection): use
9729         dbus_atomic_t for the reference count
9730
9731         * dbus/dbus-message.c (struct DBusMessage): declare
9732         dbus_atomic_t values as volatile
9733
9734         * configure.in: code to detect ability to use atomic integer
9735         operations in assembly, from GLib patch
9736
9737         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9738         time, tired of it being wrong in threads and forked processes
9739
9740         * glib/test-profile.c: a little program to bounce messages back
9741         and forth between threads and eat CPU
9742
9743         * dbus/dbus-connection.c: add debug spew macros for debugging
9744         thread locks; include config.h at top; fix deadlock in
9745         dbus_connection_flush()
9746
9747 2003-05-08  Havoc Pennington  <hp@pobox.com>
9748
9749         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9750         data from getting written, and there wasn't a good reason to
9751         use _exit really.
9752
9753         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9754         dbus_verbose lines in test coverage
9755         (main): add list of functions sorted by # of untested blocks
9756         to the coverage report
9757
9758         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9759
9760         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9761
9762         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9763         extend test coverage
9764
9765         * test/data/auth/cancel.auth-script: test canceling an
9766         authentication
9767
9768         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9769         aren't used. in CVS history if we end up needing them.
9770
9771 2003-05-04  Havoc Pennington  <hp@pobox.com>
9772
9773         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9774         unit test
9775
9776         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9777         function, which assumed length was in # of strings, not bytes
9778
9779         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9780         missing coverage
9781
9782         * dbus/dbus-connection.c
9783         (_dbus_connection_queue_received_message): disable function for
9784         now, we are only using it in test mode
9785
9786         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9787         remove a mistaken FIXME
9788
9789 2003-05-04  Havoc Pennington  <hp@pobox.com>
9790
9791         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9792         unlock mutex on successful return, patch from Anders Gustafsson
9793
9794 2003-05-04  Havoc Pennington  <hp@pobox.com>
9795
9796         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9797         Anders Gustafsson
9798
9799 2003-05-04  Havoc Pennington  <hp@pobox.com>
9800
9801         * tools/dbus-launch.c: implement
9802
9803         * bus/main.c (main), bus/bus.c (bus_context_new):
9804         implement --print-pid and --fork
9805
9806 2003-05-03  Havoc Pennington  <hp@redhat.com>
9807
9808         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9809         the address had no value, and add to test suite. Fix and
9810         regression test from Miloslav Trmac
9811
9812 2003-05-03  Havoc Pennington  <hp@pobox.com>
9813
9814         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9815         watch is invalid when handled
9816
9817         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9818         dbus-launch utility to launch the bus from a shell script.  Didn't
9819         actually implement dbus-launch yet, it's just a placeholder still.
9820
9821 2003-05-03  Havoc Pennington  <hp@pobox.com>
9822
9823         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9824         daemon; also documents daemon config file, so replaces
9825         doc/config-file.txt. Corrected some stuff from config-file.txt in
9826         the process of moving it.
9827
9828 2003-05-03  Havoc Pennington  <hp@pobox.com>
9829
9830         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9831         add some man pages
9832
9833 2003-05-03  Colin Walters  <walters@verbum.org>
9834
9835         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9836         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9837
9838         * Makefile.am: Update to use new .pc versioning scheme.
9839
9840 2003-05-02  Havoc Pennington  <hp@redhat.com>
9841
9842         * bus/system.conf.in: allow send/receive to/from message bus
9843         service
9844
9845 2003-04-30  Havoc Pennington  <hp@redhat.com>
9846
9847         * configure.in: print a note when building with unit tests and
9848         without assertions
9849
9850 2003-04-30  Havoc Pennington  <hp@redhat.com>
9851
9852         * Makefile.am: add a check-local that complains if you didn't
9853         configure with --enable-tests
9854
9855 2003-04-29  Havoc Pennington  <hp@redhat.com>
9856
9857         * glib/dbus-gmain.c: docs cleanups
9858
9859         * dbus/dbus-types.h: add docs on int64 types
9860
9861         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9862         public API docs section
9863
9864 2003-04-29  Havoc Pennington  <hp@redhat.com>
9865
9866         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9867         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9868         parallel install API version, not with the D-BUS package version.
9869
9870         * HACKING: move some of README over here
9871
9872         * README: updates, and document API/ABI policy
9873
9874         * configure.in: reindentation
9875
9876 2003-04-29  Havoc Pennington  <hp@redhat.com>
9877
9878         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9879         to use this library" to be sure people have the right
9880         expectations.
9881
9882 2003-04-28  Havoc Pennington  <hp@redhat.com>
9883
9884         * configure.in: add --enable-docs which by default is auto yes if
9885         doxygen and db2html found, no otherwise; but can be forced on/off
9886
9887         * doc/Makefile.am: conditionalize whether to build docs on
9888         --enable-docs
9889
9890 2003-04-28  Havoc Pennington  <hp@redhat.com>
9891
9892         * configure.in: 0.10
9893
9894         * NEWS: update
9895
9896         * bus/system.conf.in: add <includedir>system.d</includedir>
9897
9898         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9899         username was provided but not uid
9900
9901         * bus/config-parser.c (struct BusConfigParser): keep track of
9902         whether the parser is toplevel or was included; change some
9903         of the error handling if it's included.
9904
9905 2003-04-27  Havoc Pennington  <hp@pobox.com>
9906
9907         Unbreak my code...
9908
9909         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9910         report correct status if we finish processing authentication
9911         inside this function.
9912
9913         * bus/activation.c (try_send_activation_failure): use
9914         bus_transaction_send_error_reply
9915
9916         * bus/connection.c (bus_connection_get_groups): return an error
9917         explaining the problem
9918
9919         * bus/bus.c (bus_context_check_security_policy): implement
9920         restriction here that inactive connections can only send the
9921         hello message. Also, allow bus driver to send anything to
9922         any recipient.
9923
9924         * bus/connection.c (bus_connection_complete): create the
9925         BusClientPolicy here instead of on-demand.
9926         (bus_connection_get_policy): don't return an error
9927
9928         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9929         sender field in message being replied to
9930
9931         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9932         causing it to return FALSE always
9933
9934         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9935         we checked sender rather than destination
9936
9937 2003-04-25  Havoc Pennington  <hp@redhat.com>
9938
9939         test suite is slightly hosed at the moment, will fix soon
9940
9941         * bus/connection.c (bus_connections_expire_incomplete): fix to
9942         properly disable the timeout when required
9943         (bus_connection_set_name): check whether we can remove incomplete
9944         connections timeout after we complete each connection.
9945
9946         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9947         probably still broken.
9948
9949         * bus/services.c (bus_registry_acquire_service): implement max
9950         number of services owned, and honor allow/deny rules on which
9951         services a connection can own.
9952
9953         * bus/connection.c (bus_connection_get_policy): report errors here
9954
9955         * bus/activation.c: implement limit on number of pending
9956         activations
9957
9958 2003-04-25  Havoc Pennington  <hp@redhat.com>
9959
9960         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9961         where we used >= 0 instead of != DBUS_UID_UNSET.
9962
9963 2003-04-25  Havoc Pennington  <hp@redhat.com>
9964
9965         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9966         were toggled without add/remove, fix from Anders Gustafsson
9967
9968 2003-04-24  Havoc Pennington  <hp@redhat.com>
9969
9970         * test/data/valid-config-files/basic.conf: add <limit> tags to
9971         this test
9972
9973         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9974         <limit> tag in configuration file.
9975
9976 2003-04-24  Havoc Pennington  <hp@redhat.com>
9977
9978         * bus/dispatch.c: somehow missed some name_is
9979
9980         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9981         (_dbus_timeout_set_interval): new
9982
9983         * bus/connection.c (bus_connections_setup_connection): record time
9984         when each connection is first set up, and expire them after the
9985         auth timeout passes.
9986
9987 2003-04-24  Havoc Pennington  <hp@redhat.com>
9988
9989         * dbus/dbus-message.c (dbus_message_name_is): rename
9990         (dbus_message_service_is): rename
9991         (dbus_message_sender_is): rename
9992         (dbus_message_get_service): rename
9993
9994 2003-04-24  Havoc Pennington  <hp@redhat.com>
9995
9996         * configure.in: add --enable-checks
9997
9998         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9999
10000         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10001         to use thread locks.
10002         (_dbus_connection_handler_destroyed_locked): move some private
10003         functions into proper docs group
10004
10005         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10006         _dbus_return_val_if_fail
10007
10008         Throughout: use dbus_return_if_fail
10009
10010 2003-04-23  James Willcox  <jwillcox@gnome.org>
10011
10012         * glib/dbus-glib.h:
10013         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10014         (dbus_connection_setup_with_g_main),
10015         (dbus_server_setup_with_g_main):
10016         * glib/test-dbus-glib.c: (main):
10017         * glib/test-thread-client.c: (main):
10018         * glib/test-thread-server.c: (new_connection_callback), (main):
10019         * tools/dbus-monitor.c: (main):
10020
10021         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10022         and dbus_server_setup_with_g_main().
10023
10024 2003-04-20  Havoc Pennington  <hp@pobox.com>
10025
10026         * doc/dbus-specification.sgml: document the restrictions on
10027         message and service names
10028
10029 2003-04-22  Havoc Pennington  <hp@redhat.com>
10030
10031         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10032         support, and do some code cleanups to share more code and
10033         speed up array marshal/demarshal.
10034
10035         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10036
10037         * configure.in: generate dbus-arch-deps.h
10038
10039         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10040         64-bit typecodes
10041
10042 2003-04-22  Havoc Pennington  <hp@redhat.com>
10043
10044         * test/data/valid-messages/opposite-endian.message: fix test
10045         to use proper type for rply field
10046
10047         * test/data/invalid-messages: add tests for below validation
10048
10049         * dbus/dbus-message.c (decode_header_data): validate field types,
10050         and validate that named fields are valid names
10051         (decode_name_field): consider messages in the
10052         org.freedesktop.Local. namespace to be invalid.
10053
10054         * dbus/dbus-string.c (_dbus_string_validate_name): new
10055
10056 2003-04-19  Havoc Pennington  <hp@pobox.com>
10057
10058         * bus/driver.c (bus_driver_handle_hello): check limits and
10059         return an error if they are exceeded.
10060
10061         * bus/connection.c: maintain separate lists of active and inactive
10062         connections, and a count of each. Maintain count of completed
10063         connections per user. Implement code to check connection limits.
10064
10065         * dbus/dbus-list.c (_dbus_list_unlink): export
10066
10067         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10068         number of bytes in the message queue for a connection
10069
10070 2003-04-18  Havoc Pennington  <hp@pobox.com>
10071
10072         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10073
10074         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10075         memleaks
10076
10077         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10078         on realloc be sure to update the pointer in the keyring
10079
10080         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10081         offset to avoid writing to unallocated memory
10082
10083         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10084         try the next mechanism, so we properly handle OOM
10085
10086         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10087         on OOM.
10088         (_dbus_keyring_new): fix OOM bug
10089         (_dbus_keyring_new_homedir): always set error; impose a maximum
10090         number of keys we'll load from the file, mostly to speed up the
10091         test suite and make its OOM checks more useful, but also for
10092         general sanity.
10093
10094         * dbus/dbus-auth.c (process_error_server): reject authentication
10095         if we get an error from the client
10096         (process_cancel): on cancel, send REJECTED, per the spec
10097         (process_error_client): send CANCEL if we get an error from the
10098         server.
10099
10100 2003-04-18  Havoc Pennington  <hp@pobox.com>
10101
10102         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10103         debug spew
10104
10105         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10106         handling problem
10107
10108         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10109         about DBUS_TEST_HOMEDIR once
10110
10111         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10112         the environment
10113
10114         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10115         config file so we test the right thing
10116
10117         Throughout: assorted docs improvements
10118
10119 2003-04-18  Havoc Pennington  <hp@pobox.com>
10120
10121         * glib/dbus-gmain.c: adapt to watch changes
10122
10123         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10124
10125         * dbus/dbus-server.h: remove dbus_server_handle_watch
10126
10127         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10128
10129         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10130         like DBusTimeout, so we don't need dbus_connection_handle_watch
10131         etc.
10132
10133 2003-04-17  Havoc Pennington  <hp@redhat.com>
10134
10135         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10136         database usage so it all goes via the DBusUserDatabase cache.
10137
10138 2003-04-17  Havoc Pennington  <hp@redhat.com>
10139
10140         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10141         there was an OOM watch we skipped, we always return TRUE so we
10142         iterate again to have a look at it again. Fixes test suite hang.
10143         Code rearrangement also lets us lose some memset and only iterate
10144         over callbacks once.
10145
10146         * bus/driver.c (bus_driver_handle_message): sense of test for
10147         reply was backward
10148
10149 2003-04-16  Havoc Pennington  <hp@pobox.com>
10150
10151         * doc/dbus-specification.sgml: make spec say serials are unsigned
10152
10153         * dbus/dbus-message.h: change message serials to unsigned
10154
10155         * dbus/dbus-connection.c: adapt to message serials being unsigned
10156
10157 2003-04-15  Havoc Pennington  <hp@pobox.com>
10158
10159         * bus/bus.c: create and keep around a shared DBusUserDatabase
10160         object.
10161
10162         * bus/connection.c (bus_connection_get_groups): don't cache
10163         groups for user in the connection object, since user database
10164         object now does that.
10165
10166 2003-04-16  Havoc Pennington  <hp@redhat.com>
10167
10168         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10169         list of size counters
10170         (_dbus_message_loader_putback_message_link): put back a popped link
10171
10172         * dbus/dbus-connection.c
10173         (dbus_connection_set_max_live_messages_size): rename
10174         max_received_size
10175         (dbus_connection_get_outgoing_size): get size of outgoing
10176         queue
10177         (_dbus_connection_set_connection_counter): remove this cruft
10178
10179 2003-04-14  Havoc Pennington  <hp@redhat.com>
10180
10181         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10182         caching, but at some point we might want to be able to use a
10183         different database.
10184
10185         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10186         SHA1 conf file to test the sha1 auth mechanism, since the regular
10187         test always uses EXTERNAL when available.
10188
10189         * configure.in,
10190         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10191         add conf file that requires use of sha1 auth
10192
10193 2003-04-13  Havoc Pennington  <hp@pobox.com>
10194
10195         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10196         from Philip Blundell to send messages and monitor them.
10197
10198 2003-04-13  Havoc Pennington  <hp@pobox.com>
10199
10200         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10201         callbacks
10202
10203         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10204         users
10205
10206         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10207         fix to only recover unused bytes if we're already authenticated
10208         (_dbus_transport_get_is_authenticated): fix to still mark us
10209         authenticated if there are unused bytes.
10210
10211         * bus/dispatch.c: implement security policy checking
10212
10213         * bus/connection.c (bus_transaction_send_from_driver): new
10214
10215         * bus/bus.c (bus_context_check_security_policy): new
10216
10217         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10218         now we just set the DBusError and it gets converted to an error
10219         reply.
10220
10221         * bus/connection.c (allow_user_function): enable code using actual
10222         data from the config file
10223
10224         * bus/policy.c (list_allows_user): handle wildcard rules for
10225         user/group connection perms
10226
10227 2003-04-13  Havoc Pennington  <hp@pobox.com>
10228
10229         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10230
10231         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10232
10233         * bus/policy.c (bus_policy_append_mandatory_rule)
10234         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10235         (bus_policy_append_group_rule): new functions
10236
10237 2003-04-12  Havoc Pennington  <hp@pobox.com>
10238
10239         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10240
10241         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10242         the pid/gid/uid, just for paranoia.
10243
10244         * test/break-loader.c (randomly_do_n_things): find a byte
10245         containing a type code, and randomly change it to a different
10246         type code.
10247
10248 2003-04-12  Havoc Pennington  <hp@pobox.com>
10249
10250         * bus/policy.h: change BusPolicy to be the thing from the config
10251         file, and rename old BusPolicy to BusClientPolicy
10252
10253         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10254         match change in how policy works
10255
10256         * dbus/dbus-internals.h: mark assert_not_reached as
10257         __attribute((noreturn))__
10258
10259 2003-04-11  Havoc Pennington  <hp@redhat.com>
10260
10261         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10262         the broadcast service. Use boolean return for ServiceExists.
10263
10264 2003-04-11  Havoc Pennington  <hp@redhat.com>
10265
10266         * configure.in: add another directory to look for qt in.
10267
10268 2003-04-11  Havoc Pennington  <hp@redhat.com>
10269
10270         * AUTHORS: add Colin Walters
10271
10272 2003-04-11  Havoc Pennington  <hp@redhat.com>
10273
10274         * NEWS: update
10275
10276         * configure.in: 0.9
10277
10278 2003-04-11  Havoc Pennington  <hp@redhat.com>
10279
10280         * bus/messagebus.in: remove pid file when stopping the
10281         message bus, since the bus won't have privileges to remove it
10282         itself.
10283
10284 2003-04-11  Havoc Pennington  <hp@redhat.com>
10285
10286         * bus/bus.c (bus_context_new): move credentials change after
10287         creating pidfile
10288
10289 2003-04-11  Havoc Pennington  <hp@pobox.com>
10290
10291         * test/decode-gcov.c: add "below average functions" to the
10292         coverage report, and change how some of the code works.
10293
10294         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10295         not in the coverage stats.
10296
10297         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10298         couple places so running the test suite doesn't result in megaspam.
10299
10300 2003-04-11  Havoc Pennington  <hp@pobox.com>
10301
10302         * bus/dispatch.c (check_existent_service_activation): accept a no
10303         memory error in a place we didn't before
10304
10305         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10306         in case the first one failed," since the test suite is less
10307         broken now.
10308
10309 2003-04-10  Havoc Pennington  <hp@pobox.com>
10310
10311         * bus/dispatch.c (check_segfault_service_activation): add test
10312         for launching an executable that just crashes.
10313
10314         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10315         don't leave a million cores. We'll see how portable this is.
10316
10317 2003-04-10  Havoc Pennington  <hp@pobox.com>
10318
10319         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10320         the possible parent failures before we fork, so that we don't
10321         fail to create a babysitter after creating the child.
10322
10323         * bus/activation.c (bus_activation_activate_service): kill child
10324         if we don't successfully complete the activation.
10325
10326 2003-04-10  Havoc Pennington  <hp@redhat.com>
10327
10328         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10329         the connection if it's disconnected
10330
10331         * bus/activation.c (bus_activation_service_created): use new
10332         transaction features to roll back removal of pending activation if
10333         we don't successfully create the service after all. Don't remove
10334         pending activation if the function fails.
10335
10336         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10337         (_dbus_list_insert_after_link): new code to facilitate
10338         services.c fixes
10339
10340         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10341         new functionality, so we can preallocate the ability to insert
10342         into a hash table.
10343
10344         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10345         allowing us to put custom hooks in a transaction to be used for
10346         cancelling said transaction
10347
10348         * doc/dbus-specification.sgml: add some discussion of secondary
10349         service owners, and disallow zero-length service names
10350
10351         * bus/services.c (bus_registry_acquire_service): new function,
10352         splits out part of bus_driver_handle_acquire_service() and fixes
10353         a bug where we didn't remove the service doing the acquiring
10354         from the secondary queue if we failed to remove the current owner
10355         from the front of the queue.
10356
10357 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10358
10359         * doc/dbus-specification.sgml:
10360         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10361
10362 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10363
10364         * bus/.cvsignore:
10365         * glib/.cvsignore:
10366         * test/.cvsignore:
10367         Added files to cvsignore
10368
10369         * dbus/dbus-message.h:
10370         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10371         Make get_named() take two out argument and return a boolean.
10372         (dbus_message_iter_get_args_valist):
10373         Update usage of get_named().
10374         (dbus_message_iter_append_byte):
10375         Fix typo
10376         (dbus_message_iter_append_named)
10377         Fix typo
10378         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10379         More tests.
10380
10381 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10382
10383         * dbus/dbus-marshal.[ch]:
10384         Add array_type_pos argument to _dbus_marshal_validate_arg.
10385         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10386
10387         * dbus/dbus-message.[ch]:
10388         Multi-dimensional arrays have full type specification in the
10389         outermost array. Iter code re-arranged to handle this.
10390         Added some more iter tests.
10391
10392         * doc/dbus-specification.sgml:
10393         Add me to authors.
10394         Remove old FIXME.
10395         Update new array encoding description.
10396         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10397
10398         * test/data/invalid-messages/array-with-mixed-types.message:
10399         * test/data/valid-messages/array-of-array-of-uint32.message:
10400         Change to the new array format.
10401
10402         * test/data/invalid-messages/too-short-dict.message:
10403         Fix bug in test.
10404
10405         * test/data/valid-messages/recursive-types.message:
10406         Fix up and extend test.
10407
10408 2003-04-10  Havoc Pennington  <hp@pobox.com>
10409
10410         * bus/dispatch.c: lots of fixes
10411
10412         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10413         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10414         that was crack, broke the test service.
10415
10416         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10417         handling to avoid piling up errors if we get a failure on the
10418         first address.
10419
10420         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10421         pid in assertion failures.
10422
10423         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10424         to some fixed size of file descriptor array. Don't return TRUE
10425         anytime a timeout exists, that led to lots of busy loop silliness
10426         in the tests.
10427
10428 2003-04-09  Havoc Pennington  <hp@redhat.com>
10429
10430         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10431         I'd checked this in earlier but hadn't.
10432
10433 2003-04-09  Havoc Pennington  <hp@redhat.com>
10434
10435         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10436         the activation test (man this is getting old!)
10437
10438 2003-04-09  Havoc Pennington  <hp@redhat.com>
10439
10440         * test/test-utils.c: use dispatch status function to fix this up
10441
10442         * bus/connection.c (connection_watch_callback): don't dispatch
10443         from here
10444         (connection_timeout_callback): don't dispatch from here
10445         (bus_connections_setup_connection): set the dispatch status function
10446         (bus_connection_disconnected): unset it
10447
10448         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10449         used to add a connection to be dispatched
10450         (_dbus_loop_iterate): do the dispatching at the end of each
10451         iteration
10452
10453         * dbus/dbus-connection.c
10454         (dbus_connection_set_dispatch_status_function): new function
10455         allowing us to fix up main loop usage
10456         (_dbus_connection_last_unref): free all the various function
10457         user data
10458         (dbus_connection_dispatch): call the DispatchStatusFunction
10459         whenever this function returns
10460         (dbus_connection_handle_watch): call DispatchStatusFunction
10461         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10462         (reply_handler_timeout): call DispatchStatusFunction
10463         (dbus_connection_flush): call DispatchStatusFunction
10464
10465 2003-04-09  Havoc Pennington  <hp@redhat.com>
10466
10467         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10468         a memory leak
10469
10470         * bus/dispatch.c (check_service_activated): fix bug in test
10471
10472         * dbus/dbus-mainloop.c (check_timeout): fix this up
10473
10474         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10475         verbose output so we can sort out output from different processes,
10476         e.g. in the activation case.
10477
10478 2003-04-08  Colin Walters  <walters@gnu.org>
10479
10480         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10481         the pid file.
10482         (bus_context_new): Set it.
10483         (bus_context_unref): Use it to delete the pid file.
10484
10485 2003-04-08  Havoc Pennington  <hp@redhat.com>
10486
10487         * test/data/invalid-messages/array-with-mixed-types.message:
10488         regression test that fails for the moment
10489
10490         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10491         tests for convenience
10492
10493         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10494         array of nil, it broke things.
10495
10496         * test/data/invalid-messages/array-of-nil.message: regression test
10497
10498         * test/data/valid-messages/array-of-array-of-uint32.message:
10499         happened to write this so added it to suite
10500
10501 2003-04-08  Havoc Pennington  <hp@redhat.com>
10502
10503         * bus/driver.c (bus_driver_handle_acquire_service): init
10504         retval/reply before checking name
10505
10506         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10507         recursion depth argument
10508
10509         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10510         in the public struct for future extension
10511
10512         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10513         typo
10514
10515         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10516         message
10517
10518         * doc/dbus-specification.sgml: fix typo
10519
10520 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10521
10522         Implemented recursive types, named types and new-style iters
10523
10524         * bus/driver.c:
10525         * glib/test-thread-client.c: (thread_func):
10526         * glib/test-thread-server.c: (handle_test_message):
10527         * test/test-service.c: (handle_echo):
10528         Update to new api
10529
10530         * dbus/Makefile.am:
10531         * dbus/dbus-dict.c:
10532         * dbus/dbus-dict.h:
10533         * dbus/dbus.h
10534         Remove DBusDict
10535
10536         * dbus/dbus-internals.c: (_dbus_type_to_string):
10537         Update for new types.
10538
10539         * dbus/dbus-marshal.[ch]:
10540         Implement recursive types and the new marshalling format.
10541         Remove hardcoded dict marshalling.
10542         Marshal named types.
10543
10544         * dbus/dbus-message-builder.c:
10545         Add BYTE_ARRAY.
10546         Remove references to old types
10547
10548         * dbus/dbus-message.[ch]:
10549         New non-refcounted iter API that supports recursive iters.
10550         Use iters for appending, including support for recursive
10551         iters.
10552         Add byte and named type support.
10553         Update everything to new marshalling formats.
10554         Add tests for new API.
10555
10556         * dbus/dbus-protocol.h:
10557         Remove old array types.
10558         Add types: BYTE, ARRAY, DICT, NAMED
10559
10560         * dbus/dbus-string.c:
10561         * dbus/dbus-sysdeps.c:
10562         Make parse_double locale safe.
10563
10564         * dbus/dbus-test-main.c:
10565         Call setlocale.
10566
10567         * dbus/dbus-test.c:
10568         Kill dict test
10569
10570         * doc/dbus-specification.sgml:
10571         Update spec
10572
10573         * test/data/incomplete-messages/missing-body.message:
10574         * test/data/invalid-messages/bad-boolean.message:
10575         * test/data/invalid-messages/bad-boolean-array.message:
10576         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10577         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10578         * test/data/invalid-messages/too-short-dict.message:
10579         * test/data/valid-messages/dict-simple.message:
10580         * test/data/valid-messages/dict.message:
10581         * test/data/valid-messages/emptiness.message:
10582         * test/data/valid-messages/lots-of-arguments.message:
10583         * test/data/valid-messages/no-padding.message:
10584         * test/data/valid-messages/recursive-types.message:
10585         Add missing NAME fields
10586         Fix up dicts & arrays
10587
10588         * test/data/invalid-messages/dict-with-nil-value.message:
10589         Removed, this is not invalid anymore.
10590
10591         * test/data/valid-messages/recursive-types.message:
10592         Add new test for deeply recursive types.
10593
10594 2003-04-07  Havoc Pennington  <hp@pobox.com>
10595
10596         * bus/driver.c (bus_driver_handle_acquire_service): return an
10597         error if you try to acquire a service that starts with ':'
10598
10599 2003-04-07  Havoc Pennington  <hp@redhat.com>
10600
10601         * doc/dbus-specification.sgml: require that base service names
10602         start with ':' and that the base service is created/deleted
10603         as first and last things a connection does on the bus
10604
10605         * bus/dispatch.c (check_existent_service_activation): lots more
10606         work on the activation test; it doesn't fully pass yet...
10607
10608         * test/test-service.c (main): fix so we don't memleak the
10609         connection to the message bus
10610         (filter_func): accept a message asking us to exit
10611
10612 2003-04-06  Havoc Pennington  <hp@pobox.com>
10613
10614         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10615         from Colin Walters
10616
10617         * configure.in: fixes to Qt detection from Colin Walters
10618
10619         * doc/Makefile.am: Only remove generated docbook dirs if they
10620         exist, from Colin Walters
10621
10622         * dbus/dbus-bus.c: change how we set well-known connections to
10623         NULL, so that it works if a single connection is stored in
10624         two well-known array slots.
10625
10626         * test/Makefile.am: remove a lot of stuff that isn't immediately
10627         useful, it's in CVS history if we want it.
10628
10629         * test/test-service.c: use dbus-mainloop instead of that
10630         watch.[hc] crack
10631
10632 2003-04-06  Havoc Pennington  <hp@pobox.com>
10633
10634         * dbus/Makefile.am: split lists of sources into stuff that goes in
10635         the library, util functions that go in the lib and are also used
10636         elsewhere, and util functions that are used in tests/daemon but
10637         don't go in the lib.
10638
10639         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10640         here so it can be used in test binaries also
10641
10642 2003-04-06  Havoc Pennington  <hp@pobox.com>
10643
10644         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10645         here in the parent process, so we can return an error if it
10646         fails. Also, move some of the code into the child so the parent
10647         is less hosed if we fail midway through.
10648
10649         * bus/bus.c (bus_context_new): move pidfile detection further up
10650         in the function, before we start overwriting sockets and such.
10651
10652         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10653
10654         * configure.in: add --with-system-pid-file and --with-system-socket
10655
10656 2003-04-06  Colin Walters  <walters@verbum.org>
10657
10658         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10659
10660         * bus/system.conf.in: Declare a pidfile.
10661
10662         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10663         create one (if appropriate).
10664
10665         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10666         (struct BusConfigParser) [pidfile]: New.
10667         (element_type_to_name, merge_included, start_busconfig_child)
10668         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10669         (bus_config_parser_unref): Free it.
10670         (bus_config_parser_get_pidfile): New function.
10671
10672         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10673
10674         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10675
10676         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10677
10678         * dbus/dbus-sysdeps.h: Prototype it.
10679
10680 2003-04-06  Havoc Pennington  <hp@pobox.com>
10681
10682         * bus/bus.c (bus_context_new): print the address in here, rather
10683         than in main(), because we need to do it before forking the daemon
10684
10685         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10686         on the service nonexistent error
10687
10688         * bus/driver.c (bus_driver_handle_acquire_service): set the
10689         sender on the AcquireService reply
10690
10691         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10692         server also listen on a UNIX socket so services can connect to it.
10693
10694 2003-04-06  Havoc Pennington  <hp@pobox.com>
10695
10696         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10697         so it detects deadlocks and also we actually init threads when
10698         debugging.
10699
10700 2003-04-06  Havoc Pennington  <hp@pobox.com>
10701
10702         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10703         save the domain socket name, and unlink it when we disconnect the
10704         server. Means that at least when we exit normally, we won't leave
10705         a bunch of junk in /tmp
10706
10707         * dbus/dbus-transport-unix.c
10708         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10709         memory management). (I was making a real change here but then
10710         didn't)
10711
10712 2003-04-06  Havoc Pennington  <hp@pobox.com>
10713
10714         * bus/bus.c (bus_context_new): fix wrong handling of
10715         server_data_slot_unref() in the error case.
10716
10717         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10718         "(condition) != 0" to _dbus_real_assert so that
10719         "_dbus_assert (pointer)" doesn't cause a warning
10720
10721         * bus/main.c (main): accept --print-address option to print out
10722         the message bus address
10723
10724         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10725
10726         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10727         "tmpdir" option to unix: address on client side
10728
10729         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10730         to unix: address
10731
10732         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10733         we can use to create sockets in the test suite.
10734
10735         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10736         cleanly. To be used for testing.
10737
10738         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10739
10740         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10741
10742         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10743         handle trying to call this when there's no servers active
10744
10745 2003-04-05  Havoc Pennington  <hp@pobox.com>
10746
10747         * NEWS: update
10748
10749         * configure.in: 0.8
10750
10751 2003-04-05  Havoc Pennington  <hp@pobox.com>
10752
10753         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10754         crash on startup. Need to get "try starting the daemon"
10755         in the test suite I guess. ;-)
10756
10757         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10758         tracked the number of open connections; it's better done in
10759         application-specific code as you want it to span all servers etc.
10760
10761 2003-04-05  Havoc Pennington  <hp@pobox.com>
10762
10763         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10764         patch from Colin Walters
10765
10766 2003-04-05  Havoc Pennington  <hp@pobox.com>
10767
10768         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10769         reality; in fact multiple mechanisms are allowed.
10770
10771         * dbus/dbus-internals.c (_dbus_real_assert)
10772         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10773         _dbus_assert_not_reached() into functions, so that they don't show
10774         up in basic block counts for test coverage, and don't use up as
10775         much disk space. Does mean slower execution speed though, so
10776         assumes --disable-asserts is the normal production case.
10777
10778 2003-04-05  Havoc Pennington  <hp@pobox.com>
10779
10780         * test/Makefile.am (dist-hook): also dist *.in files
10781
10782         * NEWS: update
10783
10784         * configure.in: 0.7
10785
10786 2003-04-05  Havoc Pennington  <hp@pobox.com>
10787
10788         * dbus/dbus-string.c: docs warning
10789
10790         * dbus/dbus-spawn.c: missing docs
10791
10792         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10793
10794 2003-04-05  Havoc Pennington  <hp@pobox.com>
10795
10796         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10797         magic from GLib
10798
10799         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10800         to -1 once we've reaped the babysitter
10801         (_dbus_babysitter_handle_watch): do as much work as we can, not
10802         just one go of it
10803
10804         * bus/activation.c: add code using DBusBabysitter so that we
10805         handle it when a service fails to start up properly.
10806         (bus_activation_service_created): don't remove the activation
10807         entries as we go, just let them get removed when we free the pending
10808         activation. Unref reply messages after sending them.
10809
10810 2003-04-05  Havoc Pennington  <hp@pobox.com>
10811
10812         * test/decode-gcov.c (main): print per-directory stats in the report
10813
10814         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10815
10816 2003-04-05  Havoc Pennington  <hp@pobox.com>
10817
10818         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10819
10820         * test/decode-gcov.c: hack up a little program to suck data
10821         out of gcov files. Yes this is sort of silly.
10822
10823         * configure.in: define something in config.h and do an
10824         AM_CONDITIONAL when gcov is enabled
10825
10826 2003-04-04  Havoc Pennington  <hp@redhat.com>
10827
10828         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10829         return a "babysitter" object that is used to monitor the status of
10830         the spawned process and reap it when required.
10831
10832         * test/test-segfault.c, test/test-exit.c,
10833         test/test-sleep-forever.c: binaries that do various lame things,
10834         used in the test suite.
10835
10836         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10837
10838 2003-04-03  Havoc Pennington  <hp@pobox.com>
10839
10840         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10841         in preparation for modifying it, dbus-sysdeps is getting
10842         a bit unmanageable.
10843
10844 2003-04-03  Havoc Pennington  <hp@redhat.com>
10845
10846         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10847         have multiple ones
10848
10849         * bus/*.[hc]: adapt to mainloop change
10850
10851 2003-04-03  Havoc Pennington  <hp@redhat.com>
10852
10853         * bus/activation.c (load_directory): fix up memleaks
10854         (bus_activation_entry_free): free the entry
10855
10856         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10857         we get one from the message bus; fix memleaks.
10858
10859         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10860
10861 2003-04-03  Havoc Pennington  <hp@pobox.com>
10862
10863         * bus/config-parser.c (bus_config_parser_unref): free
10864         list of mechanisms, bug discovered by test suite enhancements
10865         (putting system.conf and session.conf into suite)
10866
10867         * test/Makefile.am, test/test-service.c: add placeholder for a
10868         test service that we'll activate as part of test suite. Doesn't
10869         do anything yet.
10870
10871         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10872         setting NULL value, and use system malloc not dbus_malloc()
10873         when we have unavoidable memleakage.
10874
10875         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10876         didn't work, and support DBUS_BUS_ACTIVATION.
10877
10878         * bus/activation.c (child_setup): pass our well-known bus type to
10879         the child
10880
10881         * bus/config-parser.c: support <type> to specify well-known type
10882
10883         * doc/dbus-specification.sgml: document the env variables to
10884         locate well-known buses and find service activator
10885
10886 2003-04-02  Havoc Pennington  <hp@redhat.com>
10887
10888         * test/Makefile.am (all-local): add a rule to copy tests to
10889         builddir, so we can have generated tests. Use this to remove the
10890         silly hack for testing system.conf and session.conf. Will use this
10891         shortly to generate .service files pointing to test binaries.
10892
10893 2003-04-02  Havoc Pennington  <hp@redhat.com>
10894
10895         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10896         current alloc and needed new length, not max of the doubled
10897         allocation and needed new length. Also, when building tests,
10898         don't do the double-allocation stuff, just realloc every time.
10899
10900 2003-04-02  Havoc Pennington  <hp@redhat.com>
10901
10902         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10903         in error messages
10904         (_dbus_string_get_dirname): new
10905         (_dbus_sysdeps_test): new
10906         (_dbus_directory_open): include dirnames in error messages
10907
10908         * bus/config-parser.c: interpret <include> and <includedir> and
10909         <servicedir> relative to config file location if the given
10910         filename is not absolute.
10911
10912         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10913
10914 2003-04-02  Havoc Pennington  <hp@redhat.com>
10915
10916         * bus/connection.c (bus_transaction_send_error_reply): set sender
10917         service for the error, and unref the reply on success
10918
10919         * bus/activation.c: convert to use BusTransaction so OOM can be
10920         handled correctly
10921         (bus_activation_service_created): set sender of the message
10922
10923 2003-04-01  Havoc Pennington  <hp@redhat.com>
10924
10925         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10926         <includedir> (at least mostly)
10927
10928         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10929         first, then the user ID
10930
10931 2003-04-01  Havoc Pennington  <hp@pobox.com>
10932
10933         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10934         function
10935
10936         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10937
10938         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10939
10940         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10941         socket 0777, and unlink any existing socket.
10942
10943         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10944         the configuration file so specifies; set up auth mechanism
10945         restrictions
10946
10947         * bus/config-parser.c (bus_config_parser_content): add support
10948         for <fork> option and fill in code for <auth>
10949
10950         * bus/system.conf.in: add <fork/> to default configuration,
10951         and limit auth mechanisms to EXTERNAL
10952
10953         * doc/config-file.txt (Elements): add <fork>
10954
10955         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10956         (_dbus_change_identity): new function
10957
10958 2003-03-31  Havoc Pennington  <hp@redhat.com>
10959
10960         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10961         (_dbus_listen_unix_socket): fix off-by-one error in null
10962         termination spotted by Nalin
10963
10964 2003-03-31  Havoc Pennington  <hp@redhat.com>
10965
10966         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10967         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10968         having a real home directory available.
10969
10970 2003-03-31  Havoc Pennington  <hp@redhat.com>
10971
10972         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10973
10974         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10975
10976         * configure.in: add support for specifying a style of init script
10977         to install
10978
10979 2003-03-31  Havoc Pennington  <hp@redhat.com>
10980
10981         Fix some annoying DBusString API and fix all affected code.
10982
10983         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10984         max_length argument
10985         (_dbus_string_get_data): change to return string instead of using
10986         an out param
10987         (_dbus_string_get_const_data): ditto
10988         (_dbus_string_get_data_len): ditto
10989         (_dbus_string_get_const_data_len): ditto
10990
10991 2003-03-31  Havoc Pennington  <hp@redhat.com>
10992
10993         * bus/main.c (main): fix up the command line arguments to be nicer
10994
10995 2003-03-31  Havoc Pennington  <hp@redhat.com>
10996
10997         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10998         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10999         final location that lands in the config file
11000
11001         * bus/config-loader-expat.c (bus_config_load): fix type of
11002         XML_Parser variable
11003
11004         * doc/TODO: remove TODO item for dbus_bus_get()
11005
11006         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11007
11008 2003-03-31  Havoc Pennington  <hp@pobox.com>
11009
11010         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11011         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11012         argument since they are always client side
11013
11014         * dbus/dbus-server.c (dbus_server_get_address): new function
11015
11016         * bus/main.c (main): take the configuration file as an argument.
11017
11018         * test/data/valid-config-files/debug-allow-all.conf: new file to
11019         use with dispatch.c tests for example
11020
11021         * bus/test-main.c (main): require test data dir
11022
11023         * bus/bus.c (bus_context_new): change this to take a
11024         configuration file name as argument
11025
11026         * doc/config-file.txt (Elements): add <servicedir>
11027
11028         * bus/system.conf, bus/session.conf: new files
11029
11030         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11031         well-known socket if none set
11032
11033         * configure.in: create system.conf and session.conf
11034
11035 2003-03-30  Havoc Pennington  <hp@pobox.com>
11036
11037         * bus/config-parser.c: hacking
11038
11039         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11040         to shut down, since it could cause weirdness with the DBusList
11041         lock
11042
11043         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11044         link-oriented stack routines
11045         (alloc_link): free the mempool if the first alloc from it fails
11046
11047         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11048
11049         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11050         from GLib
11051         (_dbus_string_skip_white): new
11052
11053         * doc/config-file.txt (Elements): add <includedir>
11054
11055 2003-03-28  Havoc Pennington  <hp@pobox.com>
11056
11057         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11058         (_dbus_string_copy_data): new functions
11059
11060 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11061
11062         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11063         * dbus/dbus-bus.h:
11064         Add dbus_bus_get.
11065
11066         * dbus/dbus-memory.c:
11067         Fix a doc comment.
11068
11069 2003-03-28  Havoc Pennington  <hp@pobox.com>
11070
11071         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11072         I think it may have just been superstition. Not sure.
11073
11074         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11075         failures that were not being handled.
11076
11077         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11078
11079         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11080         row that will fail on out-of-memory.
11081
11082         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11083         function for testing out-of-memory handling.
11084
11085         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11086         allocation functions, they do map exactly to the expat ones.
11087
11088 2003-03-27  Havoc Pennington  <hp@redhat.com>
11089
11090         * bus/config-loader-libxml.c (bus_config_load): add another error
11091         check
11092
11093 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11094
11095         * doc/TODO:
11096         Add note about automatic service activation.
11097
11098         * doc/dbus-specification.sgml:
11099         Rename the specification and clarify a few things.
11100
11101 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11102
11103         * Doxyfile.in:
11104         * dbus/dbus-address.c:
11105         * dbus/dbus-dict.c:
11106         * dbus/dbus-marshal.c:
11107         * dbus/dbus-server-debug-pipe.c:
11108         * dbus/dbus-transport-unix.c:
11109         Fix documentation warnings.
11110
11111 2003-03-26  Havoc Pennington  <hp@pobox.com>
11112
11113         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11114         after every test so it's quick and easy to see which leaked, and
11115         so we test multiple dbus_shutdown() calls
11116
11117         * configure.in: change configure.in XML stuff to also support
11118         expat
11119
11120         * config-loader-libxml.c: some hacking
11121
11122         * config-loader-expat.c: some hacking
11123
11124         * config-parser.c: some hacking, plus tests
11125
11126 2003-03-25  Havoc Pennington  <hp@redhat.com>
11127
11128         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11129
11130         * configure.in: add --with-xml option to specify XML library,
11131         right now only libxml is supported.
11132
11133         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11134         nonworking code between home and work, still just stubs
11135
11136 2003-03-24  Havoc Pennington  <hp@redhat.com>
11137
11138         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11139         file
11140
11141         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11142         NULL argument for "message" if the error is a well-known one,
11143         fill in a generic message in this case.
11144
11145         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11146         favor of DBusError
11147
11148         * bus/test.c (bus_test_flush_bus): add
11149
11150         * bus/policy.c (bus_policy_test): test code stub
11151
11152 2003-03-24  Havoc Pennington  <hp@pobox.com>
11153
11154         * bus/connection.c (bus_connections_setup_connection): set up
11155         the "can this user connect" function, but it always returns
11156         TRUE until we have a config file parser so we can have a config
11157         file that allows connections.
11158
11159 2003-03-23  Havoc Pennington  <hp@pobox.com>
11160
11161         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11162         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11163         the mutex, so we can check for proper memory management
11164         and OOM handling.
11165
11166         * dbus/dbus-dataslot.c: remove the mutex from
11167         DBusDataSlotAllocator and lock it manually when using it,
11168         to simplify fitting it into the global slots framework.
11169
11170         * dbus/dbus-threads.c (init_static_locks): rework how we're
11171         handling global locks so they are easily shut down.
11172
11173         * bus/policy.c (bus_policy_append_rule): fix
11174
11175         * bus/test-main.c (main): check for memleaks
11176
11177         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11178         test suite check for memleaks
11179
11180         * dbus/dbus-memory.c: add support in test mode for tracking
11181         number of outstanding blocks
11182
11183 2003-03-23  Havoc Pennington  <hp@pobox.com>
11184
11185         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11186         policies code
11187
11188         * dbus/dbus-hash.h: add ULONG hash keys
11189
11190         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11191         (_dbus_get_group_id): new function
11192
11193 2003-03-20  Havoc Pennington  <hp@redhat.com>
11194
11195         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11196         new function
11197         (dbus_connection_get_unix_user): new function
11198
11199 2003-03-20  Havoc Pennington  <hp@pobox.com>
11200
11201         * bus/connection.c (bus_connection_send_oom_error): assert that
11202         message has a sender
11203         (connection_execute_transaction): ditto
11204         (bus_connection_preallocate_oom_error): fix to set the sender, and
11205         set recipient to the destination service, not the bus driver
11206
11207         * bus/policy.c: hacking
11208
11209         * dbus/dbus-message.c (dbus_message_service_is): new function
11210         (dbus_message_sender_is): new
11211
11212 2003-03-19  Havoc Pennington  <hp@redhat.com>
11213
11214         * bus/policy.c: start sketching code for policy restrictions on
11215         what connections can do.
11216
11217 2003-03-18  Havoc Pennington  <hp@redhat.com>
11218
11219         * doc/TODO: some notes on high-level todo items. Little nitpick
11220         stuff is all in @todo, so no need to add it here.
11221
11222         * doc/config-file.txt: some notes on how config file might look
11223
11224 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11225
11226         * configure.in: 0.6
11227
11228         * NEWS: Update.
11229
11230 2003-03-17  Havoc Pennington  <hp@redhat.com>
11231
11232         * dbus/dbus-internals.h: add gcc attributes so that
11233         our printf-style functions warn on bad arguments to
11234         format
11235
11236         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11237         format bug
11238
11239         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11240         printf format bug
11241
11242 2003-03-17  Havoc Pennington  <hp@redhat.com>
11243
11244         * bus/test-main.c (main): make it print something as it runs
11245         so make check doesn't look stuck
11246
11247         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11248         from CVS, now obsolete
11249
11250 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11251
11252         * bus/dispatch.c: (bus_dispatch):
11253         Refetch the service name since it may have been reallocated
11254         when dbus_message_set_sender was called.
11255
11256         * dbus/dbus-sysdeps.c: (_dbus_accept):
11257         Add address and address length variables and use them to stop
11258         valgrind from complaining.
11259
11260 2003-03-17  Havoc Pennington  <hp@pobox.com>
11261
11262         All tests pass, no memleaks, no valgrind complaints.
11263
11264         * bus/test.c: refcount handler_slot
11265
11266         * bus/connection.c (bus_connections_new): refcount
11267         connection_data_slot
11268
11269         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11270         bytes so that auth scripts pass.
11271
11272         * bus/dispatch.c: init message_handler_slot so it gets allocated
11273         properly
11274
11275         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11276
11277         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11278         dealloc server_pipe_hash when no longer used for benefit of
11279         leak checking
11280
11281         * dbus/dbus-auth.c (process_command): memleak fix
11282
11283         * bus/dispatch.c (check_hello_message): memleak fix
11284
11285 2003-03-16  Havoc Pennington  <hp@pobox.com>
11286
11287         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11288
11289 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11290
11291         * bus/activation.c (bus_activation_activate_service): Append
11292         the pending activation entry to the list of pending activations.
11293
11294 2003-03-16  Havoc Pennington  <hp@pobox.com>
11295
11296         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11297         connections
11298
11299         * dbus/dbus-address.c (create_entry): fix OOM handling when
11300         failing to alloc entry->method
11301
11302 2003-03-16  Havoc Pennington  <hp@pobox.com>
11303
11304         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11305         the watch
11306
11307         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11308         add some missing dbus_set_result
11309
11310         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11311         alloc the DBusMessageHandler
11312
11313         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11314         the transport here, since we call this from the finalizer; it
11315         resulted in a double-finalize.
11316
11317         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11318         where we tried to use transport->connection that was NULL,
11319         happened when transport was disconnected early on due to OOM
11320
11321         * bus/*.c: adapt to handle OOM for watches/timeouts
11322
11323         * dbus/dbus-transport-unix.c: port to handle OOM during
11324         watch handling
11325
11326         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11327         reference to unused bytes instead of a copy
11328
11329         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11330         out of memory
11331
11332         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11333         FALSE on OOM
11334
11335         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11336         of memory
11337
11338 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11339
11340         * doc/dbus-specification.sgml:
11341         Document reply message for ActivateService.
11342
11343 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11344
11345         * bus/activation.c: (bus_pending_activation_entry_free),
11346         (bus_pending_activation_free), (bus_activation_new),
11347         (bus_activation_unref), (bus_activation_service_created),
11348         (bus_activation_activate_service):
11349         * bus/activation.h:
11350         * bus/bus.c: (bus_context_new):
11351         * bus/desktop-file.c: (new_section):
11352         * bus/driver.c: (bus_driver_send_service_deleted),
11353         (bus_driver_handle_activate_service):
11354         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11355         * bus/services.h:
11356         * dbus/dbus-connection.c:
11357         (dbus_connection_send_with_reply_and_block):
11358         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11359         * dbus/dbus-protocol.h:
11360         Make activation work better. Now pending activations will be queued
11361         and the daemon won't try to activate services that are already registered.
11362
11363 2003-03-16  Havoc Pennington  <hp@pobox.com>
11364
11365         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11366         connection data
11367
11368         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11369         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11370
11371 2003-03-16  Havoc Pennington  <hp@pobox.com>
11372
11373         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11374         this. always run the test suite before commit...
11375
11376         * bus/*: adapt to DBusConnection API changes
11377
11378         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11379         requires renaming stuff to avoid dbus_connection_dispatch name
11380         conflict.
11381
11382         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11383         function
11384
11385         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11386         separate from _dbus_message_loader_return_buffer()
11387
11388         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11389         this, because it's now always broken to use; the number of
11390         messages in queue vs. the number still buffered by the message
11391         loader is undefined/meaningless. Should use
11392         dbus_connection_get_dispatch_state().
11393         (dbus_connection_dispatch): rename from
11394         dbus_connection_dispatch_message
11395
11396 2003-03-16  Havoc Pennington  <hp@pobox.com>
11397
11398         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11399         implementation
11400
11401 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11402
11403         * dbus/dbus-connection.c:
11404         (dbus_connection_send_with_reply_and_block):
11405         Decrease connection->n_incoming when removing an entry
11406         from the list.
11407         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11408         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11409         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11410         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11411         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11412         (dbus_dict_get_byte_array):
11413         Handle NULL arrays and strings. Also add support for byte arrays.
11414
11415         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11416         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11417         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11418         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11419         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11420         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11421         * dbus/dbus-marshal.h:
11422         Add support for marshalling and demarshalling empty arrays and strings.
11423
11424         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11425         (dbus_message_append_string_array),
11426         (dbus_message_iter_get_boolean),
11427         (dbus_message_iter_get_boolean_array),
11428         (dbus_message_iter_get_int32_array),
11429         (dbus_message_iter_get_uint32_array),
11430         (dbus_message_iter_get_double_array),
11431         (dbus_message_iter_get_byte_array),
11432         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11433         (check_message_handling):
11434         Add support for getting empty arrays and dicts.
11435
11436         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11437         Don't do any validation at all for now, that's better than just checking
11438         for ASCII.
11439
11440         * test/data/valid-messages/emptiness.message:
11441         New test message with lots of empty arrays.
11442
11443 2003-03-16  Havoc Pennington  <hp@pobox.com>
11444
11445         * dbus/dbus-connection.c
11446         (_dbus_connection_queue_received_message_link): new function that
11447         can't fail due to OOM
11448
11449         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11450         new function pops a message together with a list link
11451         containing it.
11452
11453         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11454         message queuing functions to avoid needing to alloc memory
11455
11456 2003-03-16  Havoc Pennington  <hp@pobox.com>
11457
11458         Oops - test code was only testing failure of around 30 of the
11459         mallocs in the test path, but it turns out there are 500+
11460         mallocs. I believe this was due to misguided linking setup such
11461         that there was one copy of dbus_malloc etc. in the daemon and one
11462         in the shared lib, and only daemon mallocs were tested. In any
11463         case, the test case now tests all 500+ mallocs, and doesn't pass
11464         yet, though there are lots of fixes in this patch.
11465
11466         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11467         this so that it doesn't need to allocate memory, since it
11468         has no way of indicating failure due to OOM (and would be
11469         annoying if it did).
11470
11471         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11472
11473         * bus/Makefile.am: rearrange to create two self-contained
11474         libraries, to avoid having libraries with overlapping symbols.
11475         that was resulting in weirdness, e.g. I'm pretty sure there
11476         were two copies of global static variables.
11477
11478         * dbus/dbus-internals.c: move the malloc debug stuff to
11479         dbus-memory.c
11480
11481         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11482         empty.
11483
11484         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11485
11486         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11487         on failure.
11488
11489         * bus/dispatch.c (bus_dispatch_add_connection): free
11490         message_handler_slot when no longer using it, so
11491         memory leak checkers are happy for the test suite.
11492
11493         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11494
11495         * bus/bus.c (new_connection_callback): disconnect in here if
11496         bus_connections_setup_connection fails.
11497
11498         * bus/connection.c (bus_connections_unref): fix to free the
11499         connections
11500         (bus_connections_setup_connection): if this fails, don't
11501         disconnect the connection, just be sure there are no side
11502         effects.
11503
11504         * dbus/dbus-string.c (undo_alignment): unbreak this
11505
11506         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11507         leaking
11508         (_dbus_auth_new): fix the order in which we free strings
11509         on OOM failure
11510
11511         * bus/connection.c (bus_connection_disconnected): fix to
11512         not send ServiceDeleted multiple times in case of memory
11513         allocation failure
11514
11515         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11516         get the base service name
11517         (dbus_bus_register_client): don't return base service name,
11518         instead store it on the DBusConnection and have an accessor
11519         function for it.
11520         (dbus_bus_register_client): rename dbus_bus_register()
11521
11522         * bus/dispatch.c (check_hello_message): verify that other
11523         connections on the bus also got the correct results, not
11524         just the one sending hello
11525
11526 2003-03-15  Havoc Pennington  <hp@pobox.com>
11527
11528         Make it pass the Hello handling test including all OOM codepaths.
11529         Now to do other messages...
11530
11531         * bus/services.c (bus_service_remove_owner): fix crash when
11532         removing owner from an empty list of owners
11533         (bus_registry_ensure): don't leave service in the list of
11534         a connection's owned services if we fail to put the service
11535         in the hash table.
11536
11537         * bus/connection.c (bus_connection_preallocate_oom_error): set
11538         error flag on the OOM error.
11539
11540         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11541         handle _dbus_transport_set_connection failure
11542
11543         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11544         to create watches up front and simply enable/disable them as
11545         needed.
11546         (unix_connection_set): this can now fail on OOM
11547
11548         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11549         of enabling/disabling a watch or timeout.
11550
11551         * bus/loop.c (bus_loop_iterate): don't touch disabled
11552         watches/timeouts
11553
11554         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11555
11556 2003-03-15  Havoc Pennington  <hp@pobox.com>
11557
11558         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11559         write useful test code, after all that futzing around ;-)
11560
11561         Test does not yet pass because we can't handle OOM in
11562         _dbus_transport_messages_pending (basically,
11563         dbus_connection_preallocate_send() does not prealloc the write
11564         watch). To fix this, I think we need to add new stuff to
11565         set_watch_functions, namely a SetEnabled function so we can alloc
11566         the watch earlier, then enable it later.
11567
11568         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11569         dbus-memory.c to the convenience lib
11570
11571         * bus/test.c: rename some static functions to keep them clearly
11572         distinct from stuff in connection.c. Handle client disconnection.
11573
11574 2003-03-14  Havoc Pennington  <hp@pobox.com>
11575
11576         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11577         transport, tests more of the real codepath. Set up clients
11578         with bus_setup_debug_client.
11579
11580         * bus/test.c (bus_setup_debug_client): function to set up debug
11581         "clients" on the main loop
11582
11583         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11584         support
11585
11586         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11587         server type
11588
11589         * dbus/dbus-server-debug.c: support a debug server based on pipes
11590
11591         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11592         (_dbus_close): new function
11593
11594         * configure.in: check for socketpair
11595
11596 2003-03-14  Havoc Pennington  <hp@redhat.com>
11597
11598         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11599         cheesy hack
11600
11601         * dbus/dbus-transport-debug.c: rework this a good bit to be
11602         less complicated. hopefully still works.
11603
11604         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11605         manually
11606
11607         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11608         after running it
11609
11610         * dbus/dbus-message.c (dbus_message_copy): rename from
11611         dbus_message_new_from_message, fix it up to copy
11612         all the message fields, add test case
11613
11614         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11615         not quite passing yet
11616
11617 2003-03-14  Havoc Pennington  <hp@pobox.com>
11618
11619         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11620         until no work remains" in test code. (the large diff here
11621         is just code movement, no actual changes)
11622
11623         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11624         1, no point waiting around for test code.
11625         (_dbus_server_debug_accept_transport): unref the timeout
11626         after adding it (right?)
11627
11628         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11629
11630 2003-03-13  Havoc Pennington  <hp@redhat.com>
11631
11632         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11633         out of memory
11634
11635         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11636         of memory
11637
11638         * dbus/dbus-connection.h: Make AddWatchFunction and
11639         AddTimeoutFunction return a bool so they can fail on out-of-memory
11640
11641         * bus/bus.c (bus_context_new): set up timeout handlers
11642
11643         * bus/connection.c (bus_connections_setup_connection): set up
11644         timeout handlers
11645
11646         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11647         can fail
11648
11649         * bus/bus.c (bus_context_new): adapt to changes
11650
11651         * bus/connection.c: adapt to changes
11652
11653         * test/watch.c: adapt to DBusWatch changes
11654
11655         * bus/dispatch.c (bus_dispatch_test): started adding this but
11656         didn't finish
11657
11658 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11659
11660         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11661
11662 2003-03-13  Havoc Pennington  <hp@pobox.com>
11663
11664         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11665         set up a test framework as for the library
11666
11667 2003-03-12  Havoc Pennington  <hp@pobox.com>
11668
11669         Throughout: purge global variables, introduce BusActivation,
11670         BusConnections, BusRegistry, etc. objects instead.
11671
11672         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11673         message bus object
11674
11675         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11676         going to redo this a bit differently I think
11677
11678 2003-03-12  Havoc Pennington  <hp@redhat.com>
11679
11680         Mega-patch that gets the message bus daemon initially handling
11681         out-of-memory. Work still needed. Also lots of random
11682         moving stuff to DBusError instead of ResultCode.
11683
11684         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11685
11686         * dbus/dbus-connection.c
11687         (dbus_connection_send_with_reply_and_block): use DBusError
11688
11689         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11690         DBusResultCode
11691
11692         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11693         code here, as the only failure possible is OOM.
11694
11695         * bus/connection.c (bus_connection_disconnect):
11696         rename bus_connection_disconnected as it's a notification only
11697
11698         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11699         "name" on get_args failure, should be done by get_args;
11700         don't disconnect client for bad args, just return an error.
11701         (bus_driver_handle_service_exists): ditto
11702
11703         * bus/services.c (bus_services_list): NULL-terminate returned array
11704
11705         * bus/driver.c (bus_driver_send_service_lost)
11706         (bus_driver_send_service_acquired): send messages from driver to a
11707         specific client to the client's unique name, not to the broadcast
11708         service.
11709
11710         * dbus/dbus-message.c (decode_header_data): reject messages that
11711         contain no name field
11712         (_dbus_message_get_client_serial): rename to
11713         dbus_message_get_serial and make public
11714         (_dbus_message_set_serial): rename from set_client_serial
11715         (_dbus_message_set_reply_serial): make public
11716         (_dbus_message_get_reply_serial): make public
11717
11718         * bus/connection.c (bus_connection_foreach): allow stopping
11719         iteration by returning FALSE from foreach function.
11720
11721         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11722         (dbus_connection_free_preallocated_send)
11723         (dbus_connection_preallocate_send): new API for sending a message
11724         without possibility of malloc failure.
11725         (dbus_connection_send_message): rename to just
11726         dbus_connection_send (and same for whole function family)
11727
11728         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11729
11730         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11731
11732         * bus/activation.c: handle/return errors
11733
11734         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11735
11736         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11737         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11738         (_dbus_result_from_errno): move to this file
11739
11740 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11741
11742         * dbus/dbus-marshal.c:
11743         (_dbus_marshal_set_string):
11744         Take a length argument so we can marshal the correct string
11745         length.
11746
11747         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11748         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11749         (_dbus_marshal_test):
11750         * dbus/dbus-marshal.h:
11751         Add support for marshalling and demarshalling dicts.
11752
11753         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11754         Add support for TYPE DICT.
11755
11756         * dbus/dbus-message.c: (set_string_field):
11757         Adjust header padding.
11758
11759         (dbus_message_append_args_valist), (dbus_message_append_dict),
11760         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11761         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11762         (check_message_handling), (check_have_valid_message):
11763         * dbus/dbus-message.h:
11764         Add functions for setting and getting dicts.
11765
11766         * dbus/dbus-protocol.h:
11767         Add DBUS_TYPE_DICT.
11768
11769         * dbus/dbus.h:
11770         Add dbus-dict.h
11771
11772         * doc/dbus-specification.sgml:
11773         Add information about how dicts are marshalled.
11774
11775         * test/data/invalid-messages/dict-with-nil-value.message:
11776         * test/data/invalid-messages/too-short-dict.message:
11777         * test/data/valid-messages/dict-simple.message:
11778         * test/data/valid-messages/dict.message:
11779         Add sample messages containing dicts.
11780
11781 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11782
11783         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11784
11785 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11786
11787         * dbus/Makefile.am:
11788         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11789         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11790         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11791         (dbus_dict_set_double), (dbus_dict_set_string),
11792         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11793         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11794         (dbus_dict_set_string_array), (_dbus_dict_test):
11795         * dbus/dbus-dict.h:
11796         Fix according to comments from Havoc.
11797
11798 2003-03-06  Michael Meeks  <michael@server.home>
11799
11800         * configure.in: if we don't have kde-config, disable have_qt.
11801
11802 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11803
11804         * dbus/Makefile.am:
11805         Add dbus-dict.[ch]
11806
11807         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11808         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11809         (dbus_dict_remove), (dbus_dict_get_value_type),
11810         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11811         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11812         (dbus_dict_put_double), (dbus_dict_put_string),
11813         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11814         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11815         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11816         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11817         (dbus_dict_get_double), (dbus_dict_get_string),
11818         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11819         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11820         (dbus_dict_get_string_array), (_dbus_dict_test):
11821         * dbus/dbus-dict.h:
11822         Add DBusDict implementation
11823
11824         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11825         * dbus/dbus-test.h:
11826         Add _dbus_dict_test
11827
11828 2003-03-04  Havoc Pennington  <hp@pobox.com>
11829
11830         * test/data/auth/*: adapt to changes
11831
11832         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11833         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11834         userid
11835
11836         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11837         more stuff from being in a context name, to make the protocol
11838         simpler to deal with
11839
11840         * dbus/dbus-errors.c (dbus_error_has_name): new function
11841         (dbus_error_is_set): new function
11842
11843         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11844         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11845
11846         * dbus/dbus-connection.c (dbus_connection_flush): also read
11847         messages during a flush operation
11848
11849         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11850
11851 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11852
11853         * configure.in: Check for gethostbyname on Solaris.
11854
11855         * dbus/dbus-transport.c: (_dbus_transport_open):
11856         Remove duplicate "tcp" entry.
11857
11858         * doc/dbus-specification.sgml:
11859         Clarify some things.
11860
11861 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11862
11863         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11864         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11865         (_dbus_keyring_test):
11866         * dbus/dbus-md5.c: (_dbus_md5_compute):
11867         * dbus/dbus-sha.c: (_dbus_sha_compute):
11868         Plug memory leaks.
11869
11870 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11871
11872         * README: Add some things.
11873
11874 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11875
11876         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11877         after case DBUS_TYPE_BOOELAN.
11878
11879 2003-03-02  Havoc Pennington  <hp@pobox.com>
11880
11881         * test/break-loader.c (randomly_set_extreme_ints): add test that
11882         sets really huge and small integers
11883
11884         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11885         that length of boolean array fits in the string, and that
11886         string has room for boolean value in single-bool case.
11887
11888         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11889         optional value to "ALIGN" command which is what to fill the
11890         alignment with.
11891
11892         * test/data/valid-messages/no-padding.message: add regression
11893         test for the message padding problem
11894
11895 2003-03-02  Havoc Pennington  <hp@pobox.com>
11896
11897         * dbus/dbus-message.c (decode_header_data): fix to always init
11898         message_padding, from Benjamin Dauvergne
11899
11900 2003-03-02  Havoc Pennington  <hp@pobox.com>
11901
11902         * configure.in: 0.5
11903
11904         * NEWS: Update.
11905
11906 2003-03-01  Joe Shaw  <joe@assbarn.com>
11907
11908         * configure.in: Check for "struct cmsgcred" and try to access its
11909         members for BSD-like unices.
11910
11911         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11912         _dbus_read_credentials_unix_socket().
11913         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11914         read() for reading the credential byte off the unix socket.  Use
11915         struct cmsgcred on systems that support it.
11916
11917 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11918
11919         * glib/Makefile.am:
11920         * configure.in:
11921         Make gthreads-2.0 dependency optional. Don't build thread test if
11922         its not found.
11923
11924 2003-02-27  Havoc Pennington  <hp@pobox.com>
11925
11926         * dbus/dbus-connection.c
11927         (dbus_connection_send_message_with_reply_and_block): fix doh!
11928         doh! doh! bug that resulted in never removing a reply from the
11929         queue, no wonder we called get_reply_serial so much ;-)
11930
11931         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11932         and client serial instead of demarshaling them every time
11933
11934 2003-02-27  Havoc Pennington  <hp@pobox.com>
11935
11936         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11937         more inlined, using dbus-string-private.h, speeds things up
11938         substantially
11939
11940         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11941         when freeing the string
11942         (_dbus_string_steal_data): fix for align offset
11943         (undo_alignment): new function
11944
11945 2003-02-26  Havoc Pennington  <hp@redhat.com>
11946
11947         All kinds of audit fixes from Owen, plus initial attempt to
11948         handle unaligned memory returned from malloc.
11949
11950         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11951         leave room for align_offset and nul byte
11952         (fixup_alignment): function to track an align_offset and
11953         ensure real->str is aligned
11954         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11955         to allow a nul byte plus align offset
11956         (_dbus_string_lock): fix overflow issue
11957         (_dbus_string_init_const_len): add assertions on sanity of len,
11958         assign allocated to be ALLOCATION_PADDING larger than len
11959         (set_length): fixup the overflow handling
11960         (_dbus_string_get_data_len): fix overflow in assertion
11961         (open_gap): detect overflow in size of gap to be opened
11962         (_dbus_string_lengthen): add overflow check
11963         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11964         (_dbus_string_append): add overflow check
11965         (_dbus_string_append_unichar): overflow
11966         (_dbus_string_delete): fix overflow in assertion
11967         (_dbus_string_copy_len): overflow in assertion
11968         (_dbus_string_replace_len): overflows in assertions
11969         (_dbus_string_find): change to implement in terms of
11970         _dbus_string_find_to
11971         (_dbus_string_find_to): assorted fixage
11972         (_dbus_string_equal_c_str): assert c_str != NULL,
11973         fix logic so the function works
11974         (_dbus_string_ends_with_c_str): fix overflow thingy
11975         (_dbus_string_base64_encode): overflow fix
11976         (_dbus_string_validate_ascii): overflow
11977         (_dbus_string_validate_nul): overflow
11978
11979 2003-02-26  Havoc Pennington  <hp@redhat.com>
11980
11981         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11982
11983 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11984
11985         * configure.in:
11986         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11987
11988         * dbus/dbus-connection.c:
11989         * dbus/dbus-connection.h:
11990         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11991         Add dbus_connection_set_wakeup_main_function and use it when queueing
11992         incoming and outgoing messages.
11993
11994
11995         * dbus/dbus-dataslot.c:
11996         Threadsafe usage of DBusDataSlotAllocator
11997
11998         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11999         dbus_new can fail.
12000
12001         * dbus/dbus-server-unix.c:
12002         Add todo comment
12003
12004         * glib/dbus-gmain.c:
12005         Implement the new wakeup functions for glib.
12006
12007         * glib/Makefile.am:
12008         * glib/test-thread-client.c:
12009         * glib/test-thread-server.c:
12010         * glib/test-thread.h:
12011         Initial cut at some thread test code. Not really done yet.
12012
12013 2003-02-26  Havoc Pennington  <hp@pobox.com>
12014
12015         * dbus/dbus-connection.c
12016         (dbus_connection_send_message_with_reply_and_block): fix crash
12017         where we ref'd the outgoing message instead of the returned reply
12018
12019         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12020         at the end of this function, so if we didn't need to read for
12021         authentication, we reinstall it for receiving messages
12022
12023         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12024         a NULL sender for peer-to-peer case
12025
12026         * dbus/dbus-transport-unix.c (check_read_watch): handle
12027         !authenticated case correctly
12028
12029         * glib/dbus-gmain.c: add support for DBusServer
12030
12031         * dbus/dbus-server.c: add data slot support
12032
12033         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12034         return values and handle errors
12035
12036         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12037         DBusConnection
12038
12039         * Doxyfile.in (INPUT): add glib subdir
12040
12041         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12042         setup_with_g_main instead of hookup_with_g_main; write docs
12043
12044 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12045
12046         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12047         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12048         * dbus/dbus-message.c: (dbus_message_append_boolean),
12049         (dbus_message_append_boolean_array),
12050         (dbus_message_get_args_valist), (_dbus_message_test):
12051         * dbus/dbus-message.h:
12052         * doc/dbus-specification.sgml:
12053         Various fixes as pointed out by Havoc.
12054
12055         * test/data/invalid-messages/bad-boolean-array.message:
12056         * test/data/invalid-messages/bad-boolean.message:
12057         Add invalid boolean value test cases.
12058
12059 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12060
12061         * dbus/dbus-internals.c: (_dbus_type_to_string):
12062         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12063         (_dbus_marshal_validate_arg):
12064         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12065         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12066         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12067         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12068         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12069         (dbus_message_iter_get_double),
12070         (dbus_message_iter_get_boolean_array), (message_iter_test):
12071         * dbus/dbus-message.h:
12072         * dbus/dbus-protocol.h:
12073         * doc/dbus-specification.sgml:
12074         * test/data/valid-messages/lots-of-arguments.message:
12075         Add support for boolean and boolean array types.
12076
12077 2003-02-23  Havoc Pennington  <hp@pobox.com>
12078
12079         * dbus/dbus-keyring.c: finish most of this implementation and
12080         simple unit test
12081
12082         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12083         these barf if the error isn't cleared to NULL
12084
12085         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12086         (_dbus_create_directory): new function
12087
12088         * dbus/dbus-errors.c (dbus_set_error): fix warning
12089
12090         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12091         (_dbus_string_hex_decode): new function
12092         (test_hex_roundtrip): test code
12093
12094         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12095
12096         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12097
12098         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12099         the save-to-temp/rename trick to atomically write the new file
12100         (_dbus_string_parse_uint): new function
12101
12102 2003-02-22  Havoc Pennington  <hp@pobox.com>
12103
12104         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12105
12106 2003-02-22  Havoc Pennington  <hp@pobox.com>
12107
12108         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12109         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12110
12111         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12112
12113         * dbus/test/data/sha-1: add US government test suite for SHA-1
12114
12115 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12116
12117         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12118         Make string arrays NULL-terminated.
12119
12120         * dbus/dbus-memory.c: (dbus_free_string_array):
12121         * dbus/dbus-memory.h:
12122         New function for freeing NULL-terminated string arrays.
12123
12124         * dbus/dbus-message-builder.c: (append_quoted_string),
12125         (_dbus_message_data_load):
12126         Add support for array types.
12127
12128         * dbus/dbus-message.c: (check_message_handling):
12129         Add more types as test cases.
12130
12131         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12132         (_dbus_string_parse_double):
12133         Add the start offset to the end offset.
12134
12135         * test/data/valid-messages/lots-of-arguments.message:
12136         New test message with lots of arguments.
12137
12138 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12139
12140         * dbus/dbus-message.c: (dbus_message_append_nil),
12141         (dbus_message_append_int32), (dbus_message_append_uint32),
12142         (dbus_message_append_double), (dbus_message_append_string),
12143         (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):
12148         Fix all out-of-memory handling in these functions.
12149
12150 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12151
12152         * dbus/dbus-message.c: (dbus_message_append_nil):
12153         Fix a silly.
12154
12155 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12156
12157         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12158         (dbus_message_append_nil), (dbus_message_append_int32_array),
12159         (dbus_message_append_uint32_array),
12160         (dbus_message_append_double_array),
12161         (dbus_message_append_byte_array),
12162         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12163         (dbus_message_iter_get_int32_array),
12164         (dbus_message_iter_get_uint32_array),
12165         (dbus_message_iter_get_double_array),
12166         (dbus_message_iter_get_byte_array),
12167         (dbus_message_iter_get_string_array):
12168
12169         * dbus/dbus-message.h:
12170         Add functions for appending and getting arrays.
12171
12172 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12173
12174         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12175         element size at least 8 bytes, fixes mempool tests on
12176         64-bit machines.
12177
12178 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12179
12180         * dbus/dbus-transport-unix.c (unix_do_iteration):
12181         Unlock the connection mutex during a blocking select call.
12182         Add todo about how we need a way to wake up the select.
12183
12184         * dbus/dbus-connection-internal.h:
12185         * dbus/dbus-connection.c:
12186         Add _dbus_connection_lock and _dbus_connection_unlock.
12187
12188 2003-02-19  Havoc Pennington  <hp@pobox.com>
12189
12190         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12191         Doxyfile.in, not Doxyfile
12192
12193         * dbus/dbus-keyring.c: do some hacking on this
12194
12195         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12196
12197         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12198         dbus_error_init
12199         (dbus_set_error): remove dbus_error_init, check for message ==
12200         NULL *before* we sprintf into it, and add @todo about including
12201         system headers in this file
12202
12203         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12204
12205         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12206
12207         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12208         get various bits of user information based on either username
12209         or user ID
12210         (_dbus_homedir_from_username): new function
12211
12212 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12213
12214         * configure.in:
12215         Add check for nonposix getpwnam_r
12216
12217         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12218         Align the pool element size to a sizeof (void *) boundary.
12219
12220         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12221         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12222         General Solaris fixes.
12223
12224         * test/data/valid-messages/simplest-manual.message:
12225         Explicitly state that we want little-endian packing.
12226
12227 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12228
12229         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12230
12231         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12232         Added to create a transport connecting using a tcp/ip socket.
12233
12234         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12235         to a tcp socket at given host and port.
12236         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12237         hostname and port.
12238
12239         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12240
12241         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12242         Added to create a server listening on a TCP/IP socket.
12243
12244 2003-02-19  Havoc Pennington  <hp@pobox.com>
12245
12246         Throughout: mop up all the Doxygen warnings and undocumented
12247         stuff.
12248
12249         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12250         to search any paths.
12251
12252         * dbus/dbus-threads.c: move global mutex initializers to
12253         dbus-internals.h, multiple prototypes was confusing doxygen
12254         besides being kind of ugly
12255
12256         * Doxyfile (PREDEFINED): have Doxygen define
12257         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12258         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12259         (do not abuse the feature! it's for stuff like the autogenerated
12260         macros in dbus-md5.c, not just for things you don't feel like
12261         documenting...)
12262
12263 2003-02-18  Havoc Pennington  <hp@pobox.com>
12264
12265         * dbus/dbus-string.c (_dbus_string_zero): new function
12266
12267         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12268         wrap it in some dbus-friendly API
12269
12270         * dbus/dbus-types.h: add 16-bit types
12271
12272 2003-02-18  Joe Shaw  <joe@assbarn.com>
12273
12274         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12275         credentials from our currently running process.
12276         (get_word): Fix a buglet where we were copying the entire length
12277         instead of relative to our position.
12278
12279         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12280         keys on the stack... it's 640k of data.
12281
12282         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12283         read the credentials byte off the socket, even if we don't have
12284         SO_PEERCRED.
12285         (_dbus_poll): Implement poll() using select() for systems which
12286         don't have it.
12287
12288         * glib/test-dbus-glib.c (main): Print out an error if no
12289         parameters are given.
12290
12291         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12292         can fallback to a secondary auth mechanism if the first fails.
12293
12294 2003-02-18  Havoc Pennington  <hp@pobox.com>
12295
12296         * AUTHORS: add Alex
12297
12298 2003-02-17  Havoc Pennington  <hp@pobox.com>
12299
12300         * doc/dbus-specification.sgml: lots of cosmetic
12301         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12302         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12303         s/server/bus/ (except in authentication section). Add a section
12304         "Message Bus Message Routing"
12305
12306 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12307
12308         Release 0.4
12309
12310         * NEWS: Update
12311
12312 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * doc/dbus-specification.sgml:
12315         Specification updates.
12316
12317 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12318
12319         * bus/activation.c: (bus_activation_init), (child_setup),
12320         (bus_activation_activate_service):
12321         * bus/activation.h:
12322         * bus/main.c: (main):
12323         Set DBUS_ADDRESS environment variable.
12324
12325         * dbus/dbus-errors.c: (dbus_set_error):
12326         Don't use va_copy since that's a C99 feature.
12327
12328         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12329         (_dbus_spawn_async):
12330         * dbus/dbus-sysdeps.h:
12331         Add child_setup_func to _dbus_spawn_async.
12332
12333         * doc/dbus-specification.sgml:
12334         Update specification.
12335
12336         * test/spawn-test.c: (setup_func), (main):
12337         Fix test.
12338
12339 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12340
12341         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12342         Added todo.
12343
12344 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12345
12346         * doc/.cvsignore:
12347         * doc/Makefile.am:
12348         * doc/dbus-test-plan.sgml:
12349         Add test plan document.
12350
12351         * test/Makefile.am:
12352         Fix distcheck.
12353
12354 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12355
12356         * dbus/dbus-message.c: (decode_header_data),
12357         (_dbus_message_loader_return_buffer):
12358         Set the header padding amount when loading a message.
12359
12360 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12361
12362         * bus/dispatch.c: (send_one_message):
12363         Only send broadcast messages to registered connections.
12364
12365         * dbus/dbus-message.c: (dbus_message_name_is):
12366         * dbus/dbus-message.h:
12367         New convenience function.
12368
12369         * dbus/dbus-transport-debug.c: (do_reading):
12370         Only dispatch one message per run.
12371
12372         * test/Makefile.am:
12373         * test/bus-test.c: (new_connection_callback), (die),
12374         (test_hello_client1_handler), (test_hello_client2_handler),
12375         (test_hello_replies), (main):
12376
12377         * test/bus-test-loop.[ch]:
12378         Add these.
12379
12380 2003-02-16  Havoc Pennington  <hp@pobox.com>
12381
12382         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12383         backward conditional
12384
12385 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12386
12387         * dbus/dbus-connection.c:
12388         Implement sent_message_with_reply. (with_reply_and block is still
12389         busted).
12390         Made dispatch_message not lose message if OOM.
12391
12392         * dbus/dbus-errors.h:
12393         Add NoReply error (for reply timeouts).
12394
12395 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12396
12397         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12398         Actually free keys and values when destroying hashtable.
12399
12400 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12401
12402         * dbus/dbus-auth.c: (client_try_next_mechanism):
12403         Plug a leak.
12404
12405         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12406         Return TRUE if there's no thread implementation around.
12407
12408         * glib/dbus-gmain.c: (free_source),
12409         (dbus_connection_hookup_with_g_main):
12410         Make sure to remove the GSource when the connection is finalized.
12411
12412 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12413
12414         * bus/dispatch.c: (bus_dispatch_message_handler):
12415         * dbus/dbus-errors.h:
12416         Return an error if someone tries to send a message to a service
12417         that doesn't exist.
12418
12419 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * bus/activation.c: (load_directory), (bus_activation_init),
12422         (bus_activation_activate_service):
12423         * bus/activation.h:
12424         * bus/driver.c:
12425         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12426         More work on the activation handling.
12427
12428         * dbus/dbus-errors.h:
12429         Add some error messages
12430
12431         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12432         * dbus/dbus-message.h:
12433         New function that creates an error message.
12434
12435         * dbus/dbus-protocol.h:
12436         Add ACTIVATE_SERVER message.
12437
12438         * dbus/dbus-server-unix.c: (unix_handle_watch),
12439         (_dbus_server_new_for_domain_socket):
12440         Call _dbus_fd_set_close_on_exec.
12441
12442         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12443         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12444         (_dbus_fd_set_close_on_exec):
12445         * dbus/dbus-sysdeps.h:
12446         Add _dbus_fd_set_close_on exec function. Also add function that checks
12447         that all open fds are set to close-on-exec and warns otherwise.
12448
12449         * dbus/dbus-transport-unix.c:
12450         (_dbus_transport_new_for_domain_socket):
12451         Call _dbus_fd_set_close_on_exec.
12452
12453 2003-02-16  Havoc Pennington  <hp@pobox.com>
12454
12455         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12456         allow people to avoid setting SIGPIPE to SIG_IGN
12457         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12458         we've been asked not to
12459
12460 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12461
12462         * dbus/dbus-list.c: (_dbus_list_append_link),
12463         (_dbus_list_prepend_link):
12464         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12465         (dbus_realloc):
12466         Warning fixes.
12467
12468 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12469
12470         * bus/Makefile.am:
12471         * bus/activation.c: (bus_activation_entry_free),
12472         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12473         * bus/activation.h:
12474         * bus/main.c: (main):
12475         Add simple activation support, doesn't work yet though.
12476
12477 2003-02-15   Zack Rusin  <zack@kde.org>
12478
12479         * qt/dbus-qthread.cpp:  small casting fix
12480
12481 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * dbus/dbus-errors.c: (dbus_set_error):
12484         * dbus/dbus-errors.h:
12485         Add a few errors and make dbus_set_error void.
12486
12487         * dbus/dbus-sysdeps.c:
12488         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12489         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12490         * dbus/dbus-sysdeps.h:
12491         Add _dbus_spawn_async.
12492
12493         * test/spawn-test.c: (main):
12494         Test for _dbus_spawn_async.
12495
12496 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12497
12498         * dbus/dbus-internals.h:
12499         Fix build without tests.
12500
12501         * dbus/dbus-list.c: (alloc_link):
12502         Fix a segfault when a malloc fails.
12503
12504         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12505         (dbus_malloc0), (dbus_realloc):
12506         Add support for malloc debugging.
12507
12508 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12509
12510         * dbus/dbus-threads.c:
12511         * dbus/dbus-threads.h:
12512         Add condvars. Remove static mutext from API.
12513         Implement static mutexes by initializing them from threads_init.
12514
12515         * glib/dbus-gthread.c:
12516         * qt/dbus-qthread.cpp:
12517         Update with the thread api changes.
12518
12519
12520         * dbus/dbus-list.c:
12521         * dbus/dbus-list.h:
12522         Turn StaticMutex into normal mutex + init function.
12523         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12524         _dbus_list_append_link, _dbus_list_prepend_link
12525
12526
12527         * dbus/dbus-sysdeps.c:
12528         * dbus/dbus-sysdeps.h:
12529         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12530         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12531
12532         * dbus/dbus-protocol.h:
12533         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12534
12535         * dbus/dbus-message.c:
12536         Make ref/unref atomic.
12537         Fix some docs.
12538
12539         * dbus/dbus-connection-internal.h:
12540         * dbus/dbus-connection.c:
12541         * dbus/dbus-connection.h:
12542         Make threadsafe.
12543         Change _peek to _borrow,_return & _steal_borrowed.
12544         Change disconnect callback to event.
12545         Make dbus_connection_dispatch_messages reentrant.
12546
12547         * dbus/dbus-transport.c:
12548         Don't ref the connection on calls to the transport
12549         implementation.
12550
12551         * dbus/dbus-message-handler.c:
12552         Make threadsafe.
12553
12554         * glib/dbus-gmain.c:
12555         Don't use peek_message anymore
12556
12557         * test/Makefile.am:
12558         * test/debug-thread.c:
12559         * test/debug-thread.h:
12560         Simple thread implementation that asserts() on deadlocks in
12561         single-threaded code.
12562
12563         * test/bus-test.c:
12564         (main) Call debug_threads_init.
12565
12566         * test/watch.c:
12567         Use disconnect message instead of disconnect callback.
12568
12569         * bus/connection.c:
12570         * bus/connection.h:
12571         Don't call dbus_connection_set_disconnect_function. Instead export
12572         bus_connection_disconnect.
12573
12574         * bus/dispatch.c:
12575         Call bus_connection_disconnect when we get a disconnected message.
12576
12577 2003-02-15  Havoc Pennington  <hp@pobox.com>
12578
12579         * dbus/dbus-message.c (dbus_message_new): fool around with the
12580         docs
12581
12582 2003-02-14  Havoc Pennington  <hp@pobox.com>
12583
12584         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12585
12586         * dbus/dbus-memory.c: fail if the debug functions indicate we
12587         should
12588
12589         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12590         (_dbus_decrement_fail_alloc_counter): debug functions to
12591         simulate memory allocation failures
12592
12593 2003-02-14  Havoc Pennington  <hp@pobox.com>
12594
12595         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12596         to DBusError
12597
12598 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12599
12600         * bus/driver.c: (bus_driver_handle_hello):
12601         * bus/driver.h:
12602         * bus/services.c: (bus_service_lookup):
12603         Reorder message sending so we get a more sane order.
12604
12605         * test/bus-test.c: (message_handler):
12606         Fix tyop.
12607
12608 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12609
12610         * bus/driver.c: (bus_driver_send_service_deleted),
12611         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12612         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12613         (bus_driver_send_welcome_message),
12614         (bus_driver_handle_list_services),
12615         (bus_driver_handle_acquire_service),
12616         (bus_driver_handle_service_exists):
12617         * dbus/dbus-bus.c: (dbus_bus_register_client),
12618         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12619         * dbus/dbus-errors.c: (dbus_result_to_string):
12620         * dbus/dbus-errors.h:
12621         * dbus/dbus-message.c: (dbus_message_append_args),
12622         (dbus_message_append_args_valist), (dbus_message_get_args),
12623         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12624         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12625         (dbus_message_iter_get_byte_array),
12626         (dbus_message_iter_get_string_array), (message_iter_test),
12627         (check_message_handling), (_dbus_message_test):
12628         * dbus/dbus-message.h:
12629         * test/bus-test.c: (main):
12630         Change fields to arguments in messages, so that they won't be
12631         confused with header fields.
12632
12633         * glib/test-dbus-glib.c: (main):
12634         Remove append_fields from hello message.
12635
12636 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12637
12638         * dbus/dbus-errors.c:
12639         * dbus/dbus-message.c:
12640         * dbus/dbus-string.c:
12641         Documentation fixes.
12642
12643 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12646         (remove_timeout):
12647         Implement support for timeouts in dbus-glib.
12648
12649 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12650
12651         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12652         * dbus/dbus-message.c: (process_test_subdir):
12653         * test/break-loader.c: (find_breaks_based_on):
12654         Plug some memory leaks.
12655
12656 2003-02-13  Richard Hult  <rhult@codefactory.se>
12657
12658         * bus/main.c: Fix build.
12659
12660         * dbus/dbus-errors.h:
12661         * dbus/dbus-errors.c: Fix copyright for Anders.
12662
12663 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12664
12665         * bus/Makefile.am:
12666         Add utils.[ch]
12667
12668         * bus/connection.c: (bus_connection_foreach):
12669         Fix a warning.
12670
12671         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12672         (unescape_string), (new_section), (parse_section_start),
12673         (parse_key_value), (report_error), (bus_desktop_file_load),
12674         (bus_desktop_file_get_string):
12675         * bus/desktop-file.h:
12676         Use DBusError for error reporting.
12677
12678         * bus/dispatch.c: (send_one_message),
12679         (bus_dispatch_message_handler):
12680         * bus/driver.c: (bus_driver_send_service_deleted),
12681         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12682         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12683         (bus_driver_send_welcome_message),
12684         (bus_driver_handle_list_services),
12685         (bus_driver_handle_acquire_service),
12686         (bus_driver_handle_service_exists):
12687         * bus/loop.c: (bus_loop_run):
12688         * bus/main.c:
12689         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12690
12691         * bus/utils.c: (bus_wait_for_memory):
12692         * bus/utils.h:
12693         New files with general utility functions.
12694
12695         * dbus/dbus-internals.h:
12696         Remove _DBUS_HANDLE_OOM.
12697
12698 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12699
12700         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12701         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12702         * dbus/dbus-errors.h:
12703         Add DBusError structure.
12704
12705 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12706
12707         * test/data/valid-messages/standard-acquire-service.message:
12708         * test/data/valid-messages/standard-hello.message:
12709         * test/data/valid-messages/standard-list-services.message:
12710         * test/data/valid-messages/standard-service-exists.message:
12711         Add some standard messages.
12712
12713 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12714
12715         * bus/driver.c: (bus_driver_send_welcome_message),
12716         (bus_driver_handle_list_services),
12717         (bus_driver_handle_acquire_service),
12718         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12719         Update for API changes in libdbus.
12720
12721         * dbus/dbus-message.c: (dbus_message_new_reply):
12722         * dbus/dbus-message.h:
12723         Remove the name argument. The spec states that replies shouldn't
12724         have a name.
12725
12726 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12727
12728         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12729         (report_error), (bus_desktop_file_load), (lookup_section),
12730         (lookup_line), (bus_desktop_file_get_raw),
12731         (bus_desktop_file_get_string):
12732         * bus/desktop-file.h:
12733         Some fixes, and new functions for getting a key value from a section.
12734
12735 2003-02-13  Havoc Pennington  <hp@pobox.com>
12736
12737         * test/data/auth/fail-after-n-attempts.auth-script: new test
12738
12739         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12740         reject the client.
12741
12742 2003-02-13  Havoc Pennington  <hp@pobox.com>
12743
12744         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12745         dbus_credentials_match were backward
12746
12747         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12748         NO_CREDENTIALS and ROOT_CREDENTIALS
12749
12750         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12751         into here. Never process more commands after we've reached an
12752         end state; store further data as unused bytes.
12753
12754         * test/data/auth/*: add more auth tests
12755
12756         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12757         command to match exact string and EXPECT_UNUSED to match unused
12758         bytes
12759
12760         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12761
12762 2003-02-12  Havoc Pennington  <hp@pobox.com>
12763
12764         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12765         \r off of popped lines
12766
12767         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12768         scripts
12769
12770         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12771         SEND, append \r\n
12772
12773 2003-02-12  Havoc Pennington  <hp@pobox.com>
12774
12775         * dbus/Makefile.am: remove break-loader from the build, since it
12776         moved.
12777
12778         * configure.in: add --enable-gcov to turn on coverage profiling
12779         flags and disable optimization
12780
12781 2003-02-10  Havoc Pennington  <hp@pobox.com>
12782
12783         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12784         initial cut at test framework for DBusAuth from laptop.
12785         Doesn't quite work yet but it compiles and I need to get
12786         it off the 266mhz laptop. ;-)
12787
12788         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12789         fix a memleak in error case
12790
12791 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12792
12793         * bus/Makefile.am:
12794         * bus/desktop-file.c:
12795         * bus/desktop-file.h:
12796         Add a desktop file parser.
12797
12798 2003-02-11  Zack Rusin  <zack@kde.org>
12799
12800         * qt/message.[h|cpp]: sample implementation
12801         of the KDE wrapper for DBusMessage
12802
12803 2003-02-09  Zack Rusin  <zack@kde.org>
12804
12805         * test/bus-test.c: make_it_compile
12806         * doc/dbus-specification.sgml: minimal semantic fix
12807
12808 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12809
12810         Release 0.3
12811
12812         * NEWS: Update
12813
12814 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12815
12816         * dbus/Makefile.am:
12817         * dbus/dbus-break-loader.c:
12818         * test/Makefile.am:
12819         * test/break-loader.c:
12820         Move dbus-break-loader to test/ and rename it to break-loader.
12821
12822 2003-02-02  Havoc Pennington  <hp@pobox.com>
12823
12824         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12825         for code to manage cookies in your home directory
12826
12827         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12828
12829         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12830         to authenticate, then disconnect the client.
12831
12832 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12833
12834         * dbus/dbus-message.c (dbus_message_append_fields):
12835         Correct docs.
12836
12837 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * doc/dbus-specification.sgml:
12840         Update address format section.
12841
12842 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * test/Makefile.am:
12845         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12846         (message_handler), (new_connection_callback), (loop_quit),
12847         (loop_run), (main):
12848         Add bus test.
12849
12850 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12851
12852         * bus/driver.c: (bus_driver_handle_service_exists):
12853         Simplify the code a bit.
12854
12855         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12856         Fix a silly.
12857
12858 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12859
12860         * bus/Makefile.am:
12861         Add libdbus-daemon.la and link to it.
12862
12863 2003-02-01  James Willcox  <jwillcox@gnome.org>
12864
12865         * bus/driver.c: (bus_driver_handle_own_service):
12866         Actually include the service reply code in the message.
12867
12868 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12869
12870         * bus/driver.c: (bus_driver_handle_service_exists):
12871         Don't unref the incoming message.
12872
12873 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12874
12875         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12876
12877 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12878
12879         * dbus/dbus-server.c: (dbus_server_listen):
12880         * dbus/dbus-transport.c: (_dbus_transport_open):
12881         ifdef out the calls to the debug transport and server.
12882
12883 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12884
12885         * dbus/dbus-watch.c (dbus_watch_get_flags):
12886         Add note in the docs that ERROR or HANGUP won't be returned
12887         and are assumed always on.
12888
12889         * glib/dbus-gmain.c (add_watch):
12890         Always add IO_ERR | IO_HUP
12891
12892         * dbus/dbus-message.h:
12893         Add semicolon after dbus_message_iter_get_string_array().
12894         Makes qt code build again
12895
12896 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12897
12898         * bus/driver.c: (create_unique_client_name),
12899         (bus_driver_handle_hello):
12900         Don't take a name, just use a numeric id to identify
12901         each client.
12902
12903         * dbus/Makefile.am:
12904         * dbus/dbus-bus.c: (dbus_bus_register_client),
12905         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12906         * dbus/dbus-bus.h:
12907         Add new convenience functions for communicating with the bus.
12908
12909         * dbus/dbus-message.h:
12910
12911         * dbus/dbus-protocol.h:
12912         Fix a typo.
12913
12914 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12915
12916         * dbus/dbus-message.c (dbus_message_append_fields):
12917         Add some more doc comments.
12918
12919 2003-02-01  Havoc Pennington  <hp@pobox.com>
12920
12921         * dbus/dbus-break-loader.c (randomly_modify_length): change
12922         a 4-byte value in the message as if it were a length
12923
12924         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12925         execute bit on saved files
12926
12927 2003-02-01  Havoc Pennington  <hp@pobox.com>
12928
12929         * dbus/dbus-break-loader.c (main): new program to find messages
12930         that break the loader.
12931
12932         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12933         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12934
12935         * dbus/dbus-string.c (_dbus_string_set_byte): new
12936
12937 2003-01-31  Havoc Pennington  <hp@pobox.com>
12938
12939         * dbus/dbus-message.c: refactor the test code to be more general,
12940         in preparation for writing a "randomly permute test cases to
12941         try to break the loader" program.
12942
12943 2003-01-31  Havoc Pennington  <hp@pobox.com>
12944
12945         * doc/dbus-specification.sgml: work on the specification
12946
12947         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12948         the protocol version of the message.
12949
12950         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12951         no longer specifies that.
12952         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12953         1/2/3/4)
12954
12955         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12956         "break" for DBUS_TYPE_NIL, remove @todo
12957
12958 2003-01-31  Havoc Pennington  <hp@pobox.com>
12959
12960         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12961         just set_is_error/get_is_error as this is a commonly-used
12962         function, and write docs.
12963
12964 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12965
12966         * dbus/dbus-address.c: (dbus_address_entry_free):
12967         Free key and value lists.
12968
12969         * dbus/dbus-internals.c: (_dbus_type_to_string):
12970         Add the types we didn't have.
12971
12972         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12973         (_dbus_marshal_validate_arg):
12974         Add NIL types.
12975
12976         * dbus/dbus-message.c: (dbus_message_set_sender):
12977         Remove todo about being able to set sender to NULL.
12978
12979         (dbus_message_set_is_error_reply),
12980         (dbus_message_get_is_error_reply):
12981         * dbus/dbus-message.h:
12982         New functions.
12983
12984         * dbus/dbus-protocol.h:
12985         Add error reply flag.
12986
12987         * test/data/valid-messages/opposite-endian.message:
12988         Add NIL type to test.
12989
12990 2003-01-31  Havoc Pennington  <hp@pobox.com>
12991
12992         * doc/dbus-specification.sgml: fully specify the header.  Add
12993         flags and major protocol version, and change header/body len to
12994         unsigned.
12995
12996         * dbus/dbus-message-builder.c (append_saved_length): append length
12997         as uint32
12998
12999         * dbus/dbus-message.c (dbus_message_create_header): change header
13000         length and body length to unsigned. Add the new fields from the
13001         spec
13002         (_dbus_message_loader_return_buffer): unsigned header/body len
13003
13004 2003-01-30  Havoc Pennington  <hp@pobox.com>
13005
13006         * dbus/dbus-auth.c: rework to use only REJECTED, no
13007         MECHANISMS
13008
13009         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13010         use REJECTED, suggested by Mark McLoughlin
13011
13012 2003-01-30  Havoc Pennington  <hp@pobox.com>
13013
13014         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13015         a better way to report errors here. e.g.  "unix address lacks
13016         path" or something. also "no such file" when the path doesn't
13017         exist, etc.
13018
13019         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13020         leaking list nodes
13021         (dbus_parse_address): add @todo about documenting address format,
13022         and allowing , and ; to be escaped
13023
13024 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13025
13026         * dbus/Makefile.am:
13027         Add dbus-address.[ch]
13028
13029         * dbus/dbus-address.c: (dbus_address_entry_free),
13030         (dbus_address_entries_free), (create_entry),
13031         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13032         (dbus_parse_address), (_dbus_address_test):
13033         * dbus/dbus-address.h:
13034         New files for dealing with address parsing.
13035
13036         * dbus/dbus-connection.c:
13037         Document timeout functions.
13038
13039         * dbus/dbus-message.c:
13040         Document dbus_message_new_from_message.
13041
13042         * dbus/dbus-server-debug.c:
13043         Document.
13044
13045         * dbus/dbus-server.c: (dbus_server_listen):
13046         Parse address and use correct server implementation.
13047
13048         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13049         * dbus/dbus-string.h:
13050         New function with test.
13051
13052         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13053         * dbus/dbus-test.h:
13054         Add address tests.
13055
13056         * dbus/dbus-transport-debug.c:
13057         Document.
13058
13059         * dbus/dbus-transport.c: (_dbus_transport_open):
13060         Parse address and use correct transport implementation.
13061
13062 2003-01-30  Havoc Pennington  <hp@pobox.com>
13063
13064         * dbus/dbus-message.c: use message->byte_order instead of
13065         DBUS_COMPILER_BYTE_ORDER throughout.
13066         (dbus_message_create_header): pad header to align the
13067         start of the body of the message to 8-byte boundary
13068
13069         * dbus/dbus-marshal.h: make all the demarshalers take const
13070         DBusString arguments.
13071
13072         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13073         validate message args here, so we don't have to do slow validation
13074         later, and so we catch bad messages as they are incoming. Also add
13075         better checks on header_len and body_len. Also fill in
13076         message->byte_order
13077
13078         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13079         implemented properly)
13080         (_dbus_string_validate_nul): new function to check all-nul
13081
13082         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13083         get_arg_end_pos and remove all validation
13084         (_dbus_marshal_validate_arg): actually do validation here.
13085
13086 2003-01-29  Havoc Pennington  <hp@pobox.com>
13087
13088         * dbus/dbus-message.c (check_message_handling): fix assertion
13089         failure on set_client_serial
13090
13091 2003-01-28  Havoc Pennington  <hp@pobox.com>
13092
13093         * dbus/dbus-server-debug.c: Add doc section comments
13094
13095         * dbus/dbus-transport-debug.c: add doc section comments
13096
13097 2003-01-28  Havoc Pennington  <hp@redhat.com>
13098
13099         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13100         the reverse order from how I had it
13101         (_dbus_string_base64_encode): reverse encoding order. I was
13102         basically byteswapping everything during encoding.
13103
13104 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13105
13106         * dbus/dbus-connection-internal.h:
13107         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13108         (_dbus_connection_remove_timeout):
13109         Add functions for adding and removing timeouts.
13110
13111         * dbus/dbus-message.c: (dbus_message_new_from_message):
13112         Add new function that takes a message and creates an exact
13113         copy of it, but with the refcount set to 1.
13114         (check_message_handling):
13115         Fix build error.
13116
13117         * dbus/dbus-server-protected.h:
13118         * dbus/dbus-server.c: (_dbus_server_init_base),
13119         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13120         (dbus_server_set_timeout_functions):
13121         (_dbus_server_remove_timeout):
13122         New functions so that a server can add and remove timeouts.
13123
13124         (dbus_server_listen):
13125         Add commented out call to dbus_server_debug_new.
13126
13127         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13128         Actually set the handler, doh.
13129
13130         * dbus/dbus-transport.c: (_dbus_transport_open):
13131         Add commented out call to dbus_transport_debug_client_new.
13132
13133         * dbus/Makefile.am:
13134         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13135
13136 2003-01-28  Havoc Pennington  <hp@pobox.com>
13137
13138         * dbus/dbus-message.c (check_message_handling): function to check
13139         on the loaded message, iterates over it etc.
13140
13141 2003-01-28  Havoc Pennington  <hp@pobox.com>
13142
13143         * test/Makefile.am (dist-hook): fix make distdir
13144
13145         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13146
13147 2003-01-27  Havoc Pennington  <hp@pobox.com>
13148
13149         * dbus/dbus-mempool.c (time_for_size): replace printf with
13150         _dbus_verbose
13151
13152         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13153         empty lines; fix the SAVE_LENGTH stuff to be
13154         START_LENGTH/END_LENGTH so it actually works; couple other
13155         bugfixes
13156
13157         * test/Makefile.am (dist-hook): add dist-hook for .message files
13158
13159         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13160         can be constant or locked.
13161         (_dbus_string_free): allow freeing a const string as
13162         documented/intended
13163
13164         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13165
13166         * dbus/dbus-test-main.c (main): take an argument which is the
13167         directory containing test data
13168
13169         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13170         argument to this and load all the messages in test/data/
13171         checking that they can be loaded or not loaded as appropriate.
13172
13173 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * bus/dispatch.c: (bus_dispatch_message_handler):
13176         Dispatch messages sent to services.
13177
13178         * bus/driver.c: (bus_driver_send_service_deleted),
13179         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13180         (bus_driver_send_service_acquired):
13181         Add helper functions for sending service related messages.
13182
13183         (bus_driver_send_welcome_message):
13184         Send HELLO_REPLY instead of WELCOME.
13185
13186         (bus_driver_handle_list_services):
13187         Send LIST_SERVICES_REPLY instead of SERVICES.
13188
13189         (bus_driver_handle_own_service),
13190         (bus_driver_handle_service_exists):
13191         New message handlers.
13192
13193         (bus_driver_handle_message):
13194         Invoke new message handlers.
13195
13196         (bus_driver_remove_connection):
13197         Don't remove any services here since that's done automatically
13198         by bus_service_remove_owner now.
13199
13200         * bus/driver.h:
13201         New function signatures.
13202
13203         * bus/services.c: (bus_service_add_owner):
13204         Send ServiceAcquired message if we're the only primary owner.
13205
13206         (bus_service_remove_owner):
13207         Send ServiceAcquired/ServiceLost messages.
13208
13209         (bus_service_set_prohibit_replacement),
13210         (bus_service_get_prohibit_replacement):
13211         Functions for setting prohibit replacement.
13212
13213         (bus_service_has_owner):
13214         New function that checks if a connection is in the owner queue of
13215         a certain service.
13216
13217         * bus/services.h:
13218         Add new function signatures.
13219
13220         * dbus/dbus-list.c: (_dbus_list_test):
13221         Add tests for _dbus_list_remove_last and traversing the list backwards.
13222
13223         * dbus/dbus-list.h:
13224         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13225         go any further, so return NULL then.
13226
13227         * dbus/dbus-protocol.h:
13228         Add new messages, service flags and service replies.
13229
13230 2003-01-26  Havoc Pennington  <hp@pobox.com>
13231
13232         * dbus/dbus-message-builder.c: implement, completely untested.
13233
13234         * test/data/*: add data to be used in testing.
13235         ".message" files are our simple loadable text format.
13236         ".message-raw" will be binary dumps of messages.
13237
13238         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13239
13240 2003-01-26  Havoc Pennington  <hp@pobox.com>
13241
13242         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13243
13244         * dbus/dbus-errors.c (dbus_result_to_string): add
13245         file errors
13246
13247         * dbus/dbus-message-builder.c: new file, will contain code to load
13248         up messages from files. Not implemented yet.
13249
13250 2003-01-26  Havoc Pennington  <hp@pobox.com>
13251
13252         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13253         the sender by setting to NULL
13254
13255 2003-01-26  Havoc Pennington  <hp@pobox.com>
13256
13257         The unit tests pass, but otherwise untested.  If it breaks, the
13258         tests should have been better. ;-)
13259
13260         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13261         the connection.
13262
13263         * dbus/dbus-message.c: redo everything so we maintain
13264         message->header as the only copy of the various fields.
13265         This avoids the possibility of out-of-memory in some cases,
13266         for example dbus_message_lock() can't run out of memory anymore,
13267         and avoids extra copying. Figured I may as well go ahead and do
13268         this since it was busted for dbus_message_lock to not return
13269         failure on OOM, and dbus_message_write_header was totally
13270         unchecked for OOM. Also fixed some random other bugs.
13271
13272         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13273         that strings are nul-terminated. Also, end_pos can be equal
13274         to string length just not greater than, I think.
13275         (_dbus_marshal_set_int32): new function
13276         (_dbus_marshal_set_uint32): new function
13277         (_dbus_marshal_set_string): new function
13278
13279         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13280         a warning, init timeout_list to NULL
13281         (dbus_connection_send_message): don't use uninitialized variable
13282         "serial"
13283
13284         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13285
13286 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13287
13288         * bus/driver.c: (bus_driver_handle_hello),
13289         (bus_driver_send_welcome_message):
13290         Plug leaks
13291
13292 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13293
13294         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13295         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13296         (dbus_connection_unref):
13297         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13298         * dbus/dbus-message.c: (dbus_message_unref),
13299         Plug memory leaks.
13300
13301         (dbus_message_get_fields):
13302         Remove debugging printout.
13303
13304         (_dbus_message_loader_return_buffer):
13305         Don't store the header string.
13306
13307         (_dbus_message_test):
13308         Plug leaks.
13309
13310 2003-01-26  Richard Hult  <rhult@codefactory.se>
13311
13312         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13313         the file descriptor list, since it can change under us.
13314
13315 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13316
13317         * glib/dbus-gmain.c: (dbus_connection_prepare),
13318         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13319         (remove_watch), (dbus_connection_hookup_with_g_main):
13320         Rewrite the glib handling to use its own GSource instead of a
13321         GIOChannel so we can catch messages put in the queue while waiting
13322         for a reply.
13323
13324 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * bus/Makefile.am:
13327         * bus/connection.c: (connection_disconnect_handler),
13328         (connection_watch_callback), (bus_connection_setup):
13329         * bus/dispatch.c: (send_one_message),
13330         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13331         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13332         * bus/dispatch.h:
13333         * bus/driver.c: (bus_driver_send_service_deleted),
13334         (bus_driver_send_service_created), (bus_driver_handle_hello),
13335         (bus_driver_send_welcome_message),
13336         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13337         (bus_driver_handle_message):
13338         * bus/driver.h:
13339         Refactor code, put the message dispatching in its own file. Use
13340         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13341         is disconnected.
13342
13343 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13344
13345         * dbus/dbus-internals.h:
13346         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13347
13348         * dbus/dbus-message.c: (dbus_message_get_sender):
13349         * dbus/dbus-message.h:
13350         Implement dbus_message_get_sender.
13351
13352         * dbus/dbus-protocol.h:
13353         Add message and service defines.
13354
13355 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13356
13357         * dbus/dbus-connection.c: (dbus_connection_send_message):
13358         * dbus/dbus-message-internal.h:
13359         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13360         (dbus_message_write_header):
13361         Remove _dbus_messag_unlock and don't set the client serial on a
13362         message if one already exists.
13363
13364 2003-01-24  Havoc Pennington  <hp@pobox.com>
13365
13366         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13367         list_pool
13368
13369         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13370         on OOM
13371
13372 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13373
13374         * dbus/dbus-list.c: (alloc_link), (free_link):
13375         Use a memory pool for the links.
13376
13377 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13378
13379         * bus/connection.c: (bus_connection_foreach):
13380         * bus/connection.h:
13381         Add new bus_connection_foreach function.
13382
13383         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13384         Add function that broadcasts a message to all clients.
13385
13386         (bus_driver_send_service_created), (bus_driver_handle_hello),
13387         (bus_driver_send_welcome_message),
13388         (bus_driver_handle_list_services), (bus_driver_message_handler):
13389         Implement functions that take care of listing services, and notifying
13390         clients when new services are created.
13391
13392         * bus/services.c: (bus_services_list):
13393         * bus/services.h:
13394         Add new function that returns an array of strings with the currently
13395         registered services.
13396
13397         * glib/dbus-glib.h:
13398         * glib/dbus-gmain.c:
13399         Update copyright year.
13400
13401 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13402
13403         * dbus/dbus-connection.c: (dbus_connection_send_message):
13404         Unlock the message in case it was sent earlier.
13405
13406         (dbus_connection_send_message_with_reply_and_block):
13407         Remove the reply message from the list.
13408
13409         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13410         Set array_len and new_pos correctly.
13411
13412         (_dbus_marshal_test):
13413         Remove debug output.
13414
13415         * dbus/dbus-message-internal.h:
13416         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13417         New function that returns the reply serial.
13418
13419         (_dbus_message_unlock):
13420         New function that unlocks a message and resets its header.
13421
13422         (dbus_message_append_string_array),
13423         (dbus_message_get_fields_valist),
13424         (dbus_message_iter_get_field_type),
13425         (dbus_message_iter_get_string_array),
13426         (dbus_message_get_fields),
13427         (dbus_message_append_fields_valist):
13428         Handle string arrays.
13429
13430         (dbus_message_set_sender):
13431         Make this function public since the bus daemon needs it.
13432
13433         (decode_header_data):
13434         Set the reply serial to -1 initially.
13435
13436         * dbus/dbus-message.h:
13437         Add dbus_message_set_sender.
13438
13439 2003-01-24  Havoc Pennington  <hp@pobox.com>
13440
13441         * doc/dbus-specification.sgml: add some stuff
13442
13443 2003-01-22  Havoc Pennington  <hp@pobox.com>
13444
13445         * doc/dbus-specification.sgml: Start to document the protocol.
13446
13447 2003-01-22  Havoc Pennington  <hp@pobox.com>
13448
13449         * dbus/dbus-connection.c
13450         (dbus_connection_send_message_with_reply_and_block): add some @todo
13451
13452         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13453
13454 2003-01-21  Havoc Pennington  <hp@pobox.com>
13455
13456         (patch untested because can't compile)
13457
13458         * bus/driver.c (create_unique_client_name): make this function
13459         never recycle client names. Also, caller should initialize
13460         the DBusString.
13461
13462         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13463
13464 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13465
13466         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13467         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13468         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13469         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13470         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13471         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13472         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13473         * dbus/dbus-marshal.h:
13474         * dbus/dbus-protocol.h:
13475         Add support for marshalling and demarshalling integer, double
13476         and string arrays.
13477
13478 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13479
13480         * bus/Makefile.am:
13481         Add driver.[ch]
13482
13483         * bus/connection.c: (connection_disconnect_handler):
13484         Remove the connection from the bus driver's list.
13485
13486         (connection_watch_callback): Dispatch messages.
13487
13488         (free_connection_data): Free connection name.
13489
13490         (bus_connection_setup): Add connection to the bus driver's list.
13491         (bus_connection_remove_owned_service):
13492         (bus_connection_set_name), (bus_connection_get_name):
13493         Add functions for setting and getting the connection's name.
13494
13495         * bus/connection.h:
13496         Add function headers.
13497
13498         * bus/driver.c: (create_unique_client_name),
13499         (bus_driver_handle_hello_message),
13500         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13501         (bus_driver_add_connection), (bus_driver_remove_connection):
13502         * bus/driver.h:
13503         * bus/main.c:
13504         * bus/services.c: (bus_service_free):
13505         * bus/services.h:
13506         New file that handles communication and registreation with the bus
13507         itself.
13508
13509 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13510
13511         * dbus/dbus-connection.c: (dbus_connection_send_message):
13512         Add a new client_serial parameter.
13513
13514         (dbus_connection_send_message_with_reply):
13515         Remove a @todo since we've implemented the blocking function.
13516
13517         (dbus_connection_send_message_with_reply_and_block):
13518         New function that sends a message and waits for a reply and
13519         then returns the reply.
13520
13521         * dbus/dbus-connection.h:
13522         Add new functions.
13523
13524         * dbus/dbus-errors.c: (dbus_result_to_string):
13525         * dbus/dbus-errors.h:
13526         Add new DBUS_RESULT.
13527
13528         * dbus/dbus-message-internal.h:
13529         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13530         (_dbus_message_set_sender), (dbus_message_write_header),
13531         (dbus_message_new_reply), (decode_header_data),
13532         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13533         * dbus/dbus-message.h:
13534         Add new functions that set the reply serial and sender.
13535         Also marshal and demarshal them correctly and add test.
13536
13537         * dbus/dbus-protocol.h:
13538         Add new DBUS_MESSAGE_TYPE_SENDER.
13539
13540         * glib/dbus-glib.h:
13541         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13542         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13543         (dbus_connection_hookup_with_g_main):
13544         * glib/test-dbus-glib.c: (main):
13545         Rewrite to use GIOChannel and remove the GSource crack.
13546
13547         * test/echo-client.c: (main):
13548         * test/watch.c: (check_messages):
13549         Update for changed APIs
13550
13551 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13552
13553         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13554
13555         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13556         Create a DBusTimeoutList.
13557         (dbus_connection_set_timeout_functions): Add new function to
13558         set timeout callbacks
13559
13560         * dbus/dbus-connection.h: Add public DBusTimeout API.
13561
13562         * dbus/dbus-message.c: (dbus_message_get_service):
13563         * dbus/dbus-message.h:  New function.
13564
13565         * dbus/dbus-server.c: Fix small doc typo.
13566
13567         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13568
13569 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13570
13571         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13572         of the string, just as long as specified.
13573
13574 2003-01-19  Havoc Pennington  <hp@pobox.com>
13575
13576         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13577         new function
13578
13579         * dbus/dbus-server.c (dbus_server_set_max_connections)
13580         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13581         keep track of current number of connections, and add API for
13582         setting a max (but haven't implemented enforcing the max yet)
13583
13584 2003-01-18  Havoc Pennington  <hp@pobox.com>
13585
13586         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13587         reading/writing if read_watch != NULL or write_watch != NULL.
13588
13589         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13590         the message loader code to actually load message->header and
13591         message->body into the newly-created message.
13592
13593         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13594         in OOM case
13595
13596         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13597         (dbus_connection_get_max_message_size)
13598         (dbus_connection_set_max_live_messages_size)
13599         (dbus_connection_get_max_live_messages_size): implement some
13600         resource limitation functions
13601
13602         * dbus/dbus-resources.c: new file implementing some of the
13603         resource limits stuff
13604
13605         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13606         missing docs, add @todo to handle OOM etc.
13607
13608         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13609         docs
13610
13611 2003-01-18  Havoc Pennington  <hp@pobox.com>
13612
13613         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13614         connection if it hasn't been already.
13615
13616         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13617         replace with DisconnectFunction.
13618
13619 2003-01-18  Havoc Pennington  <hp@pobox.com>
13620
13621         Building --disable-verbose-mode --disable-asserts --disable-tests
13622         cuts the library from 112K to 45K or so
13623
13624         * configure.in: check for varargs macro support,
13625         add --enable-verbose-mode, --enable-asserts.
13626
13627         * dbus/dbus-internals.h (_dbus_assert): support
13628         DBUS_DISABLE_ASSERT
13629         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13630
13631 2003-01-18  Havoc Pennington  <hp@pobox.com>
13632
13633         * dbus/dbus-test.c: include config.h so that tests actually run
13634
13635         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13636         so the failure mode when that assumption fails will be plenty
13637         obvious.
13638
13639 2003-01-18  Havoc Pennington  <hp@pobox.com>
13640
13641         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13642
13643         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13644         the distribution
13645
13646         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13647         since we don't want to use those in make check
13648
13649 2003-01-15  Havoc Pennington  <hp@redhat.com>
13650
13651         Release 0.2
13652
13653         * NEWS: update
13654
13655 2003-01-15  Havoc Pennington  <hp@redhat.com>
13656
13657         * test/Makefile.am: fix so that test source code ends up in the
13658         distribution on make distcheck
13659
13660 2003-01-15  Havoc Pennington  <hp@redhat.com>
13661
13662         Release 0.1.
13663
13664         * NEWS: update
13665
13666 2003-01-15  Havoc Pennington  <hp@redhat.com>
13667
13668         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13669         fix build when --disable-tests
13670
13671         * Makefile.am (EXTRA_DIST): put HACKING in here
13672
13673         * HACKING: document procedure for making a tarball release.
13674
13675 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13676
13677         * bus/connection.c: (connection_error_handler),
13678         (bus_connection_setup):
13679         * bus/main.c: (main):
13680         Make sure that the DBusConnectionData struct is NULLed
13681         out to prevent a segfault.
13682
13683         * dbus/dbus-errors.c: (dbus_result_to_string):
13684         * dbus/dbus-errors.h:
13685         * dbus/dbus-message.c: (dbus_message_get_fields),
13686         (dbus_message_get_fields_valist), (_dbus_message_test):
13687         * dbus/dbus-message.h:
13688         Make dbus_message_get_fields return a result code so we can
13689         track invalid fields as well as oom.
13690
13691 2003-01-11  Havoc Pennington  <hp@pobox.com>
13692
13693         * configure.in: change --enable-test/--enable-ansi action-if-given
13694         to enable_foo=$enableval instead of enable_foo=yes
13695
13696 2003-01-08  Havoc Pennington  <hp@pobox.com>
13697
13698         * dbus/dbus-string.c (_dbus_string_align_length): new function
13699
13700         * dbus/dbus-test-main.c: move main() for test app here
13701         * dbus/dbus-test.c
13702         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13703         symbol to run tests, because dbus-test isn't in the main
13704         library
13705
13706         Code review nitpicks.
13707
13708         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13709         for people with narrow emacs ;-). Assert client_serial was filled
13710         in. Assert message->name != NULL.
13711         (dbus_message_append_fields): have "first_field_type" arg separate
13712         from va list, needed for C++ binding that also uses varargs IIRC
13713         and helps with type safety
13714         (dbus_message_new): add @todo about using DBusString to store
13715         service/name internally
13716         (dbus_message_new): don't leak ->service and ->name on OOM later
13717         in the function
13718         (dbus_message_unref): free the service name
13719         (dbus_message_get_fields): same change to varargs
13720         i.e. first_field_type
13721         (_dbus_message_loader_return_buffer): assert that the message data
13722         is aligned (if not it's a bug in our code). Put in verbose griping
13723         about why we set corrupted = TRUE.
13724         (decode_header_data): add FIXME that char* is evil.  Was going to
13725         add FIXME about evil locale-specific string.h strncmp, but just
13726         switched to wacky string-as-uint32 optimization. Move check for
13727         "no room for field name" above get_const_data_len() to avoid
13728         assertion failure in get_const_data_len if we have trailing 2
13729         bytes or the like. Check for service and name fields being
13730         provided twice. Don't leak service/name on error. Require field
13731         names to be aligned to 4 bytes.
13732
13733         * dbus/dbus-marshal.c: move byte swap stuff to header
13734         (_dbus_pack_int32): uscore-prefix
13735         (_dbus_unpack_int32): uscore-prefix
13736         (_dbus_unpack_uint32): export
13737         (_dbus_demarshal_string): add @todo complaining about use of
13738         memcpy()
13739         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13740         handling allowing corrupt data to go unchecked
13741
13742 2003-01-08  Havoc Pennington  <hp@redhat.com>
13743
13744         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13745         to the select() as needed for authentication. (should be using
13746         _dbus_poll() not select, but for another day)
13747
13748         * dbus/dbus.h: include dbus/dbus-protocol.h
13749
13750 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13751
13752         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13753         dbus-connection.h
13754
13755 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13756
13757         * dbus/dbus-internals.c: (_dbus_type_to_string):
13758         New function that returns a string describing a type.
13759
13760         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13761         * dbus/dbus-marshal.h:
13762         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13763         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13764         (dbus_message_iter_get_byte_array):
13765         * dbus/dbus-message.h:
13766         Add new convenience functions for appending and getting message fields.
13767         Also add demarshalling routines for byte arrays.
13768
13769 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13770
13771         * dbus/dbus-connection-internal.h:
13772         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13773         (_dbus_connection_get_next_client_serial),
13774         (dbus_connection_send_message):
13775         * dbus/dbus-internals.h:
13776         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13777         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13778         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13779         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13780         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13781         (_dbus_verbose_bytes), (_dbus_marshal_test):
13782         * dbus/dbus-marshal.h:
13783         * dbus/dbus-message-internal.h:
13784         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13785         (dbus_message_write_header), (_dbus_message_lock),
13786         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13787         (dbus_message_get_name), (dbus_message_append_int32),
13788         (dbus_message_append_uint32), (dbus_message_append_double),
13789         (dbus_message_append_string), (dbus_message_append_byte_array),
13790         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13791         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13792         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13793         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13794         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13795         (decode_header_data), (_dbus_message_loader_return_buffer),
13796         (message_iter_test), (_dbus_message_test):
13797         * dbus/dbus-message.h:
13798         * dbus/dbus-protocol.h:
13799         * dbus/dbus-test.c: (main):
13800         * dbus/dbus-test.h:
13801         * glib/test-dbus-glib.c: (message_handler), (main):
13802         * test/echo-client.c: (main):
13803         * test/watch.c: (check_messages):
13804         Make messages sendable and receivable for real.
13805
13806 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13807
13808         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13809         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13810         * dbus/dbus-message.c: (dbus_message_append_int32),
13811         (dbus_message_append_uint32), (dbus_message_append_double),
13812         (dbus_message_append_string), (dbus_message_append_byte_array):
13813         Handle OOM restoration.
13814
13815 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13816
13817         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13818         (_dbus_demarshal_string), (_dbus_marshal_test):
13819         * dbus/dbus-marshal.h:
13820         * dbus/dbus-message.c: (dbus_message_get_name),
13821         Document these functions.
13822
13823         (dbus_message_append_int32), (dbus_message_append_uint32),
13824         (dbus_message_append_double), (dbus_message_append_string),
13825         (dbus_message_append_byte_array):
13826         * dbus/dbus-message.h:
13827         Add functions for adding message fields of different types.
13828
13829         * dbus/dbus-protocol.h:
13830         Add the different types.
13831
13832 2003-01-05  Havoc Pennington  <hp@pobox.com>
13833
13834         * bus/connection.c: implement routines for handling connections,
13835         first thing is keeping a list of owned services on each connection
13836         and setting up watches etc.
13837
13838         * bus/services.c: implement a mapping from service names to lists
13839         of connections
13840
13841         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13842
13843         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13844         to use static mutexes for global data
13845
13846         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13847         collection of functions to set/get application-specific data
13848         on the DBusConnection.
13849
13850 2003-01-04  Havoc Pennington  <hp@pobox.com>
13851
13852         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13853         (_dbus_poll): new function
13854
13855         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13856         copied from GLib
13857
13858         * bus/loop.c: initial code for the daemon main loop
13859
13860 2003-01-04  Havoc Pennington  <hp@pobox.com>
13861
13862         * test/watch.c (error_handler): make it safe if the error handler
13863         is called multiple times (if we s/error handler/disconnect
13864         handler/ we should just guarantee it's called only once)
13865
13866         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13867         error handler on disconnect (it's quite possible we should
13868         just change the error handler to a "disconnect handler," I'm
13869         not sure we have any other meaningful errors)
13870
13871         * configure.in: check for getpwnam_r
13872
13873         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13874         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13875         mechanism as in SASL spec, using socket credentials
13876
13877         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13878         (_dbus_send_credentials_unix_socket): new function
13879
13880         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13881         dbus_accept()
13882         (_dbus_write): only check errno if <0 returned
13883         (_dbus_write_two): ditto
13884
13885 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13886
13887         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13888         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13889         (_dbus_marshal_test):
13890         * dbus/dbus-marshal.h:
13891         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13892         to _dbus_marshal_utf8_string. Also fix some tests.
13893
13894 2002-12-28  Harri Porten  <porten@kde.org>
13895
13896         * configure.in: added check for C++ compiler and a very cheesy
13897         check for the Qt integration
13898
13899         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13900
13901         * qt/Makefile.am: added
13902
13903         * qt/.cvsignore: added
13904
13905         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13906         latter, added #ifdef QT_THREAD_SUPPORT guard.
13907
13908         * dbus/Makefile.am: added missing headers for make dist
13909
13910 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13911
13912         * dbus/Makefile.am: fixup export-symbols-regex.
13913
13914 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13915
13916         * acinclude.m4: Add this file and put the
13917         PKG_CHECK_MODULE macro in it.
13918
13919 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13920
13921         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13922         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13923         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13924         (_dbus_marshal_test):
13925         Make the demarshalling routines align the pos argument.
13926         Add string marshalling tests and fix the obvious bugs
13927         discovered.
13928
13929 2002-12-26  Havoc Pennington  <hp@pobox.com>
13930
13931         * dbus/dbus-auth.c: fixes fixes fixes
13932
13933         * dbus/dbus-transport-unix.c: wire up support for
13934         encoding/decoding data on the wire
13935
13936         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13937         (_dbus_auth_decode_data): append to target string
13938         instead of nuking it.
13939
13940 2002-12-26  Havoc Pennington  <hp@pobox.com>
13941
13942         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13943         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13944         doh
13945
13946         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13947         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13948         now). Main point is because I wanted unpack_uint32 to implement
13949         _dbus_verbose_bytes
13950         (_dbus_verbose_bytes): new function
13951
13952         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13953
13954         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13955         mechanism to handle a corrupt message stream
13956         (_dbus_message_loader_new): fix preallocation to only prealloc,
13957         not prelengthen
13958
13959         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13960         (_dbus_string_test): enhance tests for copy/move and fix the
13961         functions
13962
13963         * dbus/dbus-transport-unix.c: Hold references in more places to
13964         avoid reentrancy problems
13965
13966         * dbus/dbus-transport.c: ditto
13967
13968         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13969         leak reference count in no-message case
13970
13971         * test/watch.c (do_mainloop): handle adding/removing watches
13972         during iteration over the watches. Also, ref the connection/server
13973         stored on a watch, so we don't try to mangle a destroyed one.
13974
13975         * dbus/dbus-transport-unix.c (do_authentication): perform
13976         authentication
13977
13978         * dbus/dbus-auth.c (get_state): add a state
13979         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13980         (_dbus_auth_get_unused_bytes): append the unused bytes
13981         to the passed in string, rather than prepend
13982
13983         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13984         the auth conversation DBusAuth
13985
13986         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13987         (_dbus_transport_new_for_domain_socket): when creating a
13988         transport, pass in whether it's a client-side or server-side
13989         transport so we know which DBusAuth to create
13990
13991 2002-12-03  Havoc Pennington  <hp@pobox.com>
13992
13993         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13994         _after_ finalizing the derived members
13995         (unix_connection_set): unref watch if we fail to add it
13996
13997         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13998         transport first, so that the connection owned by the
13999         transport will be valid as the transport finalizes.
14000
14001         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14002         if necessary, and remove watches from the connection.
14003
14004         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14005
14006 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14007
14008         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14009         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14010         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14011         (_dbus_marshal_test):
14012         * dbus/dbus-marshal.h:
14013         Add string marshal functions and have the demarshal functions
14014         return the new position.
14015
14016 2002-12-25  Havoc Pennington  <hp@pobox.com>
14017
14018         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14019         it is a simple protocol that just maps directly to SASL.
14020
14021         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14022         initial implementation, not actually used yet.
14023
14024         * dbus/dbus-string.c (_dbus_string_find): new function
14025         (_dbus_string_equal): new function
14026         (_dbus_string_base64_encode): new function
14027         (_dbus_string_base64_decode): new function
14028
14029 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14030
14031         * dbus/Makefile.am:
14032         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14033         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14034         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14035         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14036         * dbus/dbus-marshal.h:
14037         * dbus/dbus-protocol.h:
14038         * dbus/dbus-test.c: (main):
14039         * dbus/dbus-test.h:
14040         Add un-optimized marshalling/demarshalling routines.
14041
14042 2002-12-25  Harri Porten  <porten@kde.org>
14043
14044         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14045
14046 2002-12-24  Zack Rusin  <zack@kde.org>
14047
14048         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14049         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14050         main loop stuff
14051
14052 2002-12-24  Havoc Pennington  <hp@pobox.com>
14053
14054         * glib/dbus-gthread.c: fix include
14055
14056         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14057         I think glib API needs to change, though, as you don't
14058         want to use DBusMessageFunction, you want to use the
14059         DBusMessageHandler object. Probably
14060         dbus_connection_open_with_g_main_loop()
14061         and dbus_connection_setup_g_main_loop() or something like that
14062         (but think of better names...) that just create a connection
14063         that has watch/timeout functions etc. already set up.
14064
14065         * dbus/dbus-connection.c
14066         (dbus_connection_send_message_with_reply): new function just to
14067         show how the message handler helps us deal with replies.
14068
14069         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14070
14071         * dbus/dbus-string.c (_dbus_string_test): free a string that
14072         wasn't
14073
14074         * dbus/dbus-hash.c: use memory pools for the hash entries
14075         (rebuild_table): be more paranoid about overflow, and
14076         shrink table when we can
14077         (_dbus_hash_test): reduce number of sprintfs and write
14078         valid C89. Add tests for case where we grow and then
14079         shrink the hash table.
14080
14081         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14082
14083         * dbus/dbus-connection.c (dbus_connection_register_handler)
14084         (dbus_connection_unregister_handler): new functions
14085
14086         * dbus/dbus-message.c (dbus_message_get_name): new
14087
14088         * dbus/dbus-list.c: fix docs typo
14089
14090         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14091         an object representing a handler for messages.
14092
14093 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * glib/dbus-glib.h:
14096         * glib/dbus-gthread.c: (dbus_gthread_init):
14097         Don't use the gdbus prefix for public functions.
14098
14099 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14100
14101         * Makefile.am:
14102         * configure.in:
14103         Add GLib checks and fixup .pc files
14104
14105         * glib/Makefile.am:
14106         * glib/dbus-glib.h:
14107         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14108         (gdbus_connection_check), (gdbus_connection_dispatch),
14109         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14110         (dbus_connection_gsource_new):
14111         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14112         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14113         * glib/test-dbus-glib.c: (message_handler), (main):
14114         Add GLib support.
14115
14116 2002-12-15  Harri Porten  <porten@kde.org>
14117
14118         * autogen.sh: check for libtoolize before attempting to use it
14119
14120         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14121         struct.
14122
14123         * .cvsignore: ignore more stamp files
14124
14125         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14126
14127         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14128         without make install.
14129
14130 2002-12-15  Havoc Pennington  <hp@pobox.com>
14131
14132         * dbus/dbus-threads.c: add thread stubs that a higher library
14133         layer can fill in. e.g. the GLib wrapper might fill them in with
14134         GThread stuff. We still need to use this thread API to
14135         thread-safe-ize the library.
14136
14137 2002-12-12  Havoc Pennington  <hp@pobox.com>
14138
14139         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14140         below new interfaces and include fewer system headers.
14141
14142         * dbus/dbus-sysdeps.c (_dbus_read): new function
14143         (_dbus_write): new function
14144         (_dbus_write_two): new function
14145         (_dbus_connect_unix_socket): new function
14146         (_dbus_listen_unix_socket): new function
14147
14148         * dbus/dbus-message-internal.h: change interfaces to use
14149         DBusString
14150
14151 2002-12-11  Havoc Pennington  <hp@pobox.com>
14152
14153         * dbus/dbus-types.h: add dbus_unichar
14154
14155         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14156
14157         * dbus/dbus-connection.c (dbus_connection_send_message): return
14158         TRUE on success
14159
14160         * dbus/dbus-transport.c: include dbus-watch.h
14161
14162         * dbus/dbus-connection.c: include dbus-message-internal.h
14163
14164         * HACKING: add file with coding guidelines stuff.
14165
14166         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14167         handling here, for security purposes (as in vsftpd). Not actually
14168         using this class yet.
14169
14170         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14171         system/libc usage here, as in vsftpd, for ease of auditing (and
14172         should also simplify portability). Haven't actually moved all the
14173         system/libc usage into here yet.
14174
14175 2002-11-25  Havoc Pennington  <hp@pobox.com>
14176
14177         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14178         always print the first verbose message.
14179
14180 2002-11-24  Havoc Pennington  <hp@pobox.com>
14181
14182         * test/echo-client.c, test/echo-server.c: cheesy test
14183         clients.
14184
14185         * configure.in (AC_CHECK_FUNCS): check for writev
14186
14187         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14188         function
14189
14190         * dbus/dbus-list.c (_dbus_list_foreach): new function
14191
14192         * dbus/dbus-internals.c (_dbus_verbose): new function
14193
14194         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14195         representing a server that listens for connections.
14196
14197         * dbus/.cvsignore: create
14198
14199         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14200         public API for reporting errors
14201
14202         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14203         public object representing a connection that
14204         sends/receives messages. (Same object used for
14205         both client and server.)
14206
14207         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14208         Basic abstraction for different kinds of stream
14209         that we might read/write messages from.
14210
14211 2002-11-23  Havoc Pennington  <hp@pobox.com>
14212
14213         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14214         _DBUS_INT_MAX
14215
14216         * dbus/dbus-test.c (main): add list test, and include
14217         dbus-test.h as intended
14218
14219         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14220         (_dbus_hash_table_remove_int): return value indicates
14221         whether the entry existed to remove
14222
14223         * dbus/dbus-list.c: add linked list utility class,
14224         with docs and tests
14225
14226         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14227         array sometimes.
14228
14229 2002-11-23  Havoc Pennington  <hp@pobox.com>
14230
14231         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14232         DBUS_END_DECLS to nothing, that should fix this once and for all
14233
14234         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14235
14236         * dbus/dbus-message.c, dbus/dbus-hash.c:
14237         add some missing @brief
14238
14239 2002-11-23  Havoc Pennington  <hp@pobox.com>
14240
14241         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14242         to avoid confusing Doxygen
14243
14244         * dbus/dbus-hash.c: @} not }@
14245
14246         * dbus/dbus-message.c (struct DBusMessage): split out
14247         internals docs
14248
14249 2002-11-23  Havoc Pennington  <hp@pobox.com>
14250
14251         * configure.in: pile on more warning flags if using gcc
14252
14253         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14254         to document static functions
14255
14256         * configure.in: add summary to end of configure so it
14257         looks nice and attractive
14258
14259         * dbus/dbus-hash.c: finish implementation and write unit
14260         tests and docs
14261
14262         * configure.in: add --enable-tests to enable unit tests
14263
14264         * dbus/dbus-test.c: test program to run unit tests
14265         for all files in dbus/*, initially runs a test for
14266         dbus-hash.c
14267
14268         * dbus/dbus-internals.h: file to hold some internal utility stuff
14269
14270 2002-11-22  Havoc Pennington  <hp@redhat.com>
14271
14272         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14273         "ported" away from Tcl
14274
14275         * dbus/dbus-types.h: header for types such as dbus_bool_t
14276
14277 2002-11-22  Havoc Pennington  <hp@redhat.com>
14278
14279         * dbus/dbus.h: fixups for doc warnings
14280
14281         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14282         macros
14283         (QUIET): make it quiet so we can see warnings
14284
14285         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14286
14287 2002-11-22  Havoc Pennington  <hp@redhat.com>
14288
14289         * Makefile.am: include "Doxyfile" target in all-local
14290
14291         * configure.in: generate the Doxyfile
14292
14293         * Doxyfile.in: move Doxyfile here, so we can use
14294         configure to generate a Doxyfile with the right
14295         version number etc.
14296
14297 2002-11-22  Havoc Pennington  <hp@redhat.com>
14298
14299         * dbus/dbus-message.c: move inline docs into .c file
14300
14301         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14302         so all docs are under doc/
14303         (MAN_EXTENSION): generate man pages. Use extension
14304         ".3dbus" which matches ".3qt" on my system,
14305         I guess this is OK, I don't know really.
14306         (FILE_PATTERNS): look for .c files not .h, makes sense
14307         for plain C I think
14308
14309 2002-11-22  Havoc Pennington  <hp@pobox.com>
14310
14311         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14312         because any app can be a server, and any app can be a client,
14313         the bus is a special kind of server.
14314
14315 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14316
14317         * Doxyfile : adding. Still needs Makefile rules to be generated
14318         automatically (just run "doxygen" in the toplevel dir for now to
14319         generate docs)
14320
14321         * dbus/dbus-message.h : Adding sample docs (javadoc since
14322         resembles gtk-doc a little more)
14323
14324         * dbus/dbus.h : Adding sample docs
14325
14326 2002-11-21  Havoc Pennington  <hp@redhat.com>
14327
14328         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14329         so we can allow ourselves to include files directly,
14330         instead of having to use dbus.h
14331
14332         * dbus/dbus.h: fill in
14333
14334         * dbus/dbus-message.h: sketch out a sample header file.
14335         Include griping if you include it directly instead of
14336         via dbus.h
14337
14338         * dbus/dbus-macros.h: new file with macros for extern "C",
14339         TRUE/FALSE, NULL, etc.
14340
14341         * doc/file-boilerplate.c: put include guards in here
14342
14343 2002-11-21  Havoc Pennington  <hp@redhat.com>
14344
14345         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14346
14347         * COPYING: include the GPL as well, and license code
14348         under both AFL and GPL.
14349
14350 2002-11-21  Havoc Pennington  <hp@redhat.com>
14351
14352         * acconfig.h: get rid of this
14353
14354         * autogen.sh (run_configure): add --no-configure option
14355
14356         * configure.in: remove AC_ARG_PROGRAM to make
14357         autoconf complain less. add AC_PREREQ.
14358         add AC_DEFINE third arg.
14359
14360 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14361
14362         * doc/Makefile.am:
14363         Fix references so we can distcheck.
14364
14365 2002-11-21  Havoc Pennington  <hp@redhat.com>
14366
14367         * Initial module creation
14368