* dbus/dbus-threads.c: Allow recursive mutex's to be passed into
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
4         dbus_threads_init and be used by the dbus mutex functions to
5         avoid deadlocks.
6
7         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
8
9 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
10
11         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
12         use threadsafe readdir_r instead of readdir
13
14 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
15
16         * dbus-threads.c (dbus_threads_init_default): New method for
17         initializing the internal thread implementation (Patch from
18         Alexander Larsson <alexl at redhat dot com>)
19
20 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
21
22         * remove a bunch of todo items from the 1.0 list
23
24 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
25
26         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
27         key not found
28
29 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
30
31         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
32         complex debugging code
33
34         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
35         between the test suite ifdefs
36         (_dbus_verbose_bytes): return if verbosity is not enabled 
37
38 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
39
40         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
41         remove DBusMark
42
43 2006-09-10  Havoc Pennington  <hp@redhat.com>
44
45        patch mostly by Peter Kümmel, bug #8211
46         
47         * dbus/dbus-sysdeps-unix.c: new file, which splits out
48         unix-specific stuff in dbus-sysdeps.c
49
50         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
51         and move unix-specific stuff to dbus-sysdeps-unix.c
52
53         * configure.in: check HAVE_ERRNO_H
54         
55 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
56
57         * bus/test-main.c (main): Initialize threading during tests
58
59         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
60         Unlock connection on error
61         (generate_local_error_message): static method for generating
62         an error message when we don't have a message to reply to
63         (_dbus_connection_block_pending_call): Send a disconnect error
64         instead of just a timeout (NULL) when the bus gets disconnected
65         while blocking for a reply.
66         
67 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
68
69         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
70         filters (Patch from Kimmo Hämäläinen 
71         <kimmo dot hamalainen at nokia dot com>)
72
73 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
74
75         * dbus/dbus-connection-internal.h: Add prototype for 
76         _dbus_connection_test_get_locks to remove warning
77
78 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
79
80         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
81         close child_err_report_pipe[WRITE_END] on exec (Patch from 
82         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
83
84 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
85
86         * Clean up close calls to use _dbus_close (Patch from 
87         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
88
89 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
90
91         * doc/TODO:
92         - Remove pending call locking todo item
93         - dbus_connection_open now holds hard ref.  Remove todo item
94         - do proper locking on _dbus_bus_check_connection_and_unref
95           and handle DBUS_BUS_STARTER. Remove todo item
96         - Warn on closing of a shared connection.  Remove todo item
97
98         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
99         dbus/dbus-connection.c: Use the dbus_connection_close_internal
100         so we don't get the warning when closing shared connections
101
102         * test/test-service.c, test/test-shell-service.c: Applications
103         don't close shared connections themselves so we unref instead of
104         close
105
106         * test/test-utils.c (test_connection_shutdown): Close the connection
107
108         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
109         _dbus_bus_check_connection_and_unref_unlocked since we only call this
110         method on a locked connection.  
111         Make sure we call _dbus_connection_unref_unlocked instead of 
112         dbus_connection_unref also.
113         Handle DBUS_BUS_STARTER correctly
114
115         * dbus/dbus-connection.c (connection_record_shared_unlocked):
116         Mark as shared and hard ref the connection
117         (connection_forget_shared_unlocked): Remove the hard ref from the 
118         connection
119         (_dbus_connection_close_internal_and_unlock):  New internal function
120         which takes a locked connection and unlocks it after closing it
121         (_dbus_connection_close_internal): New internal function which acts
122         like the origonal dbus_connection_close method by grabbing a connection
123         lock and calling _dbus_connection_close_internal_and_unlock
124         (dbus_connection_close): Public close method, warns when the app
125         trys to close a shared connection
126
127 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
128
129         * bus/driver.c:
130         (bus_driver_generate_introspect_string): New method for populating
131         a DBusString with the introspect data
132         (bus_driver_handle_introspect): Move introspect generation code to 
133         bus_driver_generate_introspect_string
134
135         * bus/main.c:
136         (introspect): New function which prints out the intropect data and
137         exits
138         (main): Add a --introspect switch
139
140 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
141
142         * doc/TODO: Removed dtd publishing item.  
143         It seems the dtd has already been added at
144         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
145
146 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
147
148         * doc/TODO, various source files: Audited todo's and FIXME's and
149         prepended the ones we should be looking at with 1.0.  Those
150         prepended with 1.0? need clerification or might not be needed
151         for 1.0
152
153 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
154
155         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
156         NULL in the public API (Patch from Kimmo Hämäläinen 
157         <kimmo dot hamalainen at nokia dot com>)
158
159 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
160
161         * configure.in: Fix for OS-X compile time endian issues (patch from
162         Benjamin Reed <ranger at befunk dot com>)
163
164 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
165
166         * configure.in: Check for no-common compiler flag (OS-X fix from
167         Benjamin Reed <ranger at befunk dot com>)
168
169 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
170
171         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
172         <fcrozat at mandriva dot com>)
173
174 2006-08-29  Havoc Pennington  <hp@redhat.com>
175
176         * test/test-service.c (path_message_func): fix lack of return value
177
178         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
179         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
180         any more sense than on anything else in this file.
181         (_dbus_get_tmpdir): add const to return value, and keep the
182         results of the various getenv around in a static variable.
183
184 2006-08-29  Havoc Pennington  <hp@redhat.com>
185
186         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
187         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
188
189 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
190
191         * test/Makefile.am: change find to use syntax that works with non
192         gnu versions of find
193
194 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
195
196         * dbus/dbus-transport.c: fix invalid deref when checking if
197         a vtable method exists (Patch from Christian Ehrlicher 
198         <ch dot ehrlicher at gmx dot de>)
199
200 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
201
202         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
203         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
204         to build with builddir != srcdir (Taken from a patch by Bernard Leak
205         <bernard at brenda-arkle dot demon dot co dot uk>)
206
207 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
208
209         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
210         default case
211
212 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
213
214         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
215         it works on any system providing this interface, not only FreeBSD.
216         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
217
218 2006-08-20  Havoc Pennington  <hp@redhat.com>
219
220         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
221         the docs
222
223 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
224
225         * Released 0.92 
226
227 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
228
229         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
230         to reflect the init late change
231
232         * bus/bus.c (bus_context_new): Check user before we fork so we can
233         print out an error message a user will be able to see
234
235 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
236
237         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
238
239         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
240         Add two more global locks for use on windows platforms.  These are
241         unused on non-windows platforms but are not ifdefed out to avoid
242         potential bugs (i.e. the few bytes lost does not warrent the extra
243         maintanence and complexity that having seperate sets of locks would
244         cause)
245
246 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
247
248         * bus/services.c (bus_registry_acquire_service): Return an error
249         when an application tries to register the org.freedesktop.DBus Bus Name
250
251         * bus/services.c (bus_registry_release_service): Return an error
252         when an application tries to release the org.freedesktop.DBus Bus Name
253
254 2006-08-17  Alp Toker  <alp@atoker.com>
255
256         * doc/dbus-specification.xml: Fix some minor typos.
257
258 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
259
260         * configure.in: use $with_init_scripts instead of $operating_system
261         to determine where to store the pid since the init scripts manipulate 
262         the pid file (patch from Marcelo Ricardo Leitner 
263         <marcelo dot leitner at terra dot com dot br>.  
264
265 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
266
267         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
268         static DBusList *uninitialized_condvar_list to support new late 
269         initialization threading model.  In this model threads can be initialized
270         even after the D-Bus API has been used but still needs to be initialized 
271         before the second thread has been started.  Mutexes and condvar addresses
272         are stored in the two static lists and are replaced with actuall locks
273         when threads are initalized.
274         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
275         the location into the static list
276         (_dbus_mutex_free_at_location): New method for removing a mutex location 
277         from the static list and freeing the mutex
278         (_dbus_condvar_new_at_location): New method for creating a conditional 
279         variable and placing the location into the static list
280         (_dbus_condvar_free_at_location): New method for removing a conditional
281         variable location from the static list and freeing the conditional variable 
282         (init_uninitialized_locks): Atomic method which goes through the static 
283         lists of mutex and condvar location and updates them with actuall locks
284         (init_global_locks): changed to init_locks
285         
286         * dbus/dbus-connection.c:
287         (_dbus_connection_test_get_locks): New method for tests to check connections
288         (_dbus_connection_new_for_transport): Use the new at_location mutex and
289         condvar API
290         (dbus_connection_allocate_data_slot): Pass in the global lock address
291         to _dbus_data_slot_allocator_alloc
292
293         * dbus/dbus-dataslot.c:
294         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
295         instead of the mutex itself
296
297         * dbus/dbus-message.c:
298         (dbus_message_allocate_data_slot): Pass in the global lock address
299         to _dbus_data_slot_allocator_alloc
300
301         * dbus/dbus-pending-call.c:
302         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
303         to _dbus_data_slot_allocator_alloc
304
305         * dbus/dbus-server.c:
306         (_dbus_server_init_base): Use the new at_location mutex API
307         (dbus_server_allocate_data_slot): Pass in the global lock address
308         to _dbus_data_slot_allocator_alloc
309
310         * test/name-test/test-threads-init.c: New test case for late thread
311         initialization
312
313 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
314
315         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
316         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
317         causes compile problems when asserts are turned off
318         Keeping _dbus_warn for printing out the message so even if
319         asserts are turned off the user gets the messages that something is 
320         wrong 
321
322 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
323
324         Patches by Kjartan Maraas <kmaraas at gnome dot org>
325
326         * bus/services.c (bus_service_list_queued_owners):
327         Add a pointer cast to fix compiler warning
328
329         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
330         return a NULL instead of FALSE since the return type
331         is not expecting a boolean
332
333         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
334         Remove unused variable
335
336         * dbus/dbus-marshal-recursive-util.c (node_new):
337         return a NULL instead of FALSE since the return type
338         is not expecting a boolean
339
340         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
341         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
342         because we are expecting a pointer not a boolean
343
344         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
345         add void as the parameter so some compilers
346         don't complain
347
348         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
349           _dbus_transport_new_for_tcp_socket):
350         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
351         because we are expecting a pointer not a boolean
352
353         * test/shell-test.c (test_command_line):
354         cast the second argument to _dbus_list_append to avoid compiler
355         warnings
356
357         * test/test-names.c (main): remove unused variable
358
359         * test/test-service.c (check_hello_from_self_reply):
360         Initialize echo_message and echo_reply to NULL
361         
362         * test/test-shell-service.c (handle_echo):
363         Remove unused variable and cast the third parameter passed to
364         dbus_connection_get_object_path_data to avoid compiler warrnings
365
366         * test/name-test/test-names.c (clear_message_queue):
367         Remove unused function
368
369         * test/name-test/test-pending-call-dispatch.c:
370         Fix format string in printf
371
372
373 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
374
375         * dbus/dbus-bus.c:
376         * test/name-test/test-names.c:
377         Remove test method dbus_bus_connection_get_unique_name because 
378         we already have public method dbus_bus_get_unique_name that 
379         does the exact same thing
380
381 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
382
383         * dbus/dbus-signature.c:
384         fix typos in Julio's previous patch which cause make check to fail
385
386 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
387
388         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
389         In any case it was wrong since this is a test checking to see if
390         address parsing is correct.  There was no need to get the true
391         tmp directory.  
392
393 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
394
395         * dbus/dbus-macros.h: Revert the addition of stddef.h
396         as we should not be adding it to library headers 
397
398 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
399
400         * dbus/dbus-signature.c:
401         Fix the unit tests so that they work if assertions are not enabled.
402         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
403
404 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
405
406         * tools/run-with-tmp-session-bus.sh:
407         * test/name-test/run-test.sh:
408         Remove bashisms (patch from Julio M. Merino Vidal
409         <jmmv at NetBSD dot org>)
410
411 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
412
413         * configure.in: add a version (>= 2.6.0) check for libxml2
414
415 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
416
417         * configure.in: make sure the compiler supports -Wfloat-equal
418         
419         * bus/dir-watch-dnotify.c: move functional code after 
420         variable declerations (C99 fix)  (patches from Jens Granseuer
421         <jensgr at gmx dot net>
422
423 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
424
425         * dbus/dbus-macros.h:
426         add #include <stddef.h> so that Sun compilers don't complain about
427         the defining NULL
428
429 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
430
431         * dbus/dbus-sysdeps.c:
432         * dbus/dbus-address.c:
433         * bus/activation.c:
434         * test/shell-test.c:
435         don't hardcode tmp directory (patch from Dave Meikle 
436         <dmk at davemeikle dot co dot uk>)
437
438 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
439
440         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
441         Change an assert to a detailed warning and abort.  
442         When allocator->lock != mutex it indicates that the user has failed
443         to initalize threads before using the D-Bus library.  This warning
444         helps the user identify the issue and fix their app.
445
446 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
447
448         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
449         with cleanups of bugs found from Coverity reports:
450
451         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
452         close the file on error to avoid a leak
453
454         * bus/expirelist.c (bus_expire_list_test):
455         Check for NULL on dbus_new0
456
457         * bus/activation.c (update_directory):
458         remove dead code
459
460         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
461         Fix some leaks
462
463         * bus/bus.c (process_config_every_time):
464         Fixed a leak
465
466         * bus/desktop-file.c (parse_key_value):
467         Fixed leak
468
469         * bus/selinux.c (bus_selinux_id_table_insert):
470         Fixed leak
471
472 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
473
474         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
475         remove dead code
476
477 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
478
479         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
480         #!/bin/bash
481
482 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
483
484         * Doxyfile.in: fix the INPUT line so we can generate docs 
485         when sourcedir != builddir (patch from Cygwin Ports maintainer
486         <yselkowitz at users dot sourceforge dot net>
487
488 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
489
490         * dbus/dbus-sysdeps.h:
491         * dbus/dbus-sysdeps.c: 
492         * dbus/dbus-string.c: 
493         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
494         GLib's function which does the same thing
495
496         * configure.in:
497         * bus/Makefile.am:
498         * bus/dir-watch-default.c:
499         * bus/dir-watch-dnotify.c:
500         * bus/dir-watch-kqueue.c:
501         Add kqueue directory watching for freebsd and split the directory
502         watching code into seperate files per method/arch
503         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
504
505 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
506
507         * configure.in:
508         * tools/Makefile.am:
509         * tools/dbus-launch.c:
510         * bus/Makefile.am:
511         allow --with-dbus-daemondir switch to be used to make the
512         daemon install to a seperate bindir like /usr/libexec
513         (patch from Brian Cameron <brian dot cameron at sun dot com)
514
515 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
516
517         * bus/Makefile.am (install-data-hook): removed the slash after 
518         $(DESTDIR) so we don't get the double slash which does not work
519         in windows (patch from Andras Porjesz 
520         <andras dot porjesz at siemens dot com>)
521
522 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
523
524         * dbus/dbus-sysdeps.h:
525         * dbus/dbus-sysdeps.c: 
526           add _dbus_printf_length (patch from Peter Kümmel 
527           <syntheticpp at gmx dot net>)
528
529 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
530
531         * dbus/dbus-internals.c: unistd.h is not used 
532         (_dbus_verbose_real): only enable verbose printing 
533         if DBUS_VERBOSE environment var is set to '1'
534         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
535
536 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
537
538         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
539         so we still compile on older gcc (patch from Frederic Peters 
540         <fpeters at 0d dot be>
541
542 2006-08-04  Havoc Pennington  <hp@redhat.com>
543
544         * configure.in: add -Wdeclaration-after-statement
545
546         * dbus/dbus-connection.c: change all the pending call stuff to
547         reflect the fact that pending call operations use the connection
548         lock
549
550         * dbus/dbus-pending-call.c: add locking here
551
552         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
553         field const consistent with how message field is done
554
555 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
556
557         * s/D-BUS/D-Bus/g
558
559 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
560
561         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
562         <in7y118 at public.uni-hamburg dot de> - fix invalid
563         read/write reported by valgrind
564
565 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
566
567         * Released 0.91
568
569 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
570
571         * dbus/dbus-connection.c:
572         (_dbus_connection_attach_pending_call_unlocked):
573         (connection_timeout_and_complete_all_pending_calls_unlocked):
574         Make sure we set timeout_added on pending calls to FALSE when
575         we remove the timeout from the connection
576
577 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
578
579         * Removed some extra bindings stuff lingering around (thanks timo)
580         * dbus-pendingcall.c (_dbus_pending_call_new): 
581         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
582         when we tried to take a lock on an already locked connection
583
584 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
585
586         * Released 0.90
587
588 2006-07-17  Havoc Pennington  <hp@redhat.com>
589
590         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
591         ints, reported by Owen Taylor
592
593 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
594
595         * doc/TODO:
596         * dbus/dbus-bus.c:
597         * dbus-errors.c:
598         * dbus/dbus-marshal-validate.c:
599           Removed TODO items which were fixed or are no longer relevent
600
601 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
602
603         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
604         Remove stray files from the stripped bindings
605
606 2006-07-16  Havoc Pennington  <hp@redhat.com>
607
608         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
609         Improve the error message on reply timeout
610
611 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
612
613         * Remove all bindings
614
615 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
616
617         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
618         and set pending_reply out arg to NULL is connection is disconnected
619         (connection_timeout_and_complete_all_pending_calls_unlocked): New
620         static method for cleaning up pending calls on disconnect
621         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
622         calls queued timeouts on disconnect 
623
624          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
625         Remove 
626
627 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
628
629         * bus/activation.[ch] (bus_activation_list_services): new function to 
630         get the list of services that can be activated
631
632         * bus/dispatch.c: test coverage for the new bus method
633         ListActivatableNames
634
635         * bus/driver.c: new bus method ListActivatableNames to get the list of
636         services that can be activated
637
638         * doc/dbus-specification.xml: ListActivatableNames method documentation
639
640 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
641         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
642         source files
643
644 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
645         * dbus/dbus-message-factory.c:
646         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
647
648 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
649         * dbus/dbus-connection-internal.h:
650         * dbus/dbus-connection.c:
651         * file dbus/dbus-pending-call.c:
652         * dbus/dbus-pending-call.h:
653         Make DBusPendingCall an opaque type even to D-Bus internals
654
655 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
656
657         * dbus/dbus-connection.h: remove connection_disconnect and replace with
658         connection_close
659
660         * dbus/dbus-connection.c: include dbus-bus.h
661         (_dbus_connection_read_write_dispatch): make static
662
663 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
664
665         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
666         function
667         (dbus_connection_dispatch): On disconnect unref any shared connections
668
669         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
670         for cleaning up shared connections on disconnect
671         (internal_bus_get): get a hard refrence to shared connections when
672         they are created
673         
674         * doc/TODO: Remove items which are no longer relevent or have been fixed
675         Split 1.0 todo items with a 0.90 freeze todo list
676  
677 2006-06-14  Ross Burton  <ross@openedhand.com>
678
679         * glib/dbus-gobject.c:
680         Free a leaking GArray (surely not!) in dbus_g_method_return.
681
682 2006-06-14  Ross Burton  <ross@openedhand.com>
683
684         * tools/Makefile.am:
685         * tools/dbus-monitor.c:
686         Don't use the GLib bindings in dbus-monitor (patch from Ralf
687         Habacker).
688         
689 2006-06-14  Ross Burton  <ross@openedhand.com>
690
691         * tools/dbus-print-message.c:
692         Also print the object path when outputting signals or method calls.
693
694 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
695
696         * qt/src/Makefile.am: install the qdbus.h header.
697         This allows people to actually use the installed code.
698
699 2006-06-12  Ross Burton  <ross@openedhand.com>
700
701         * glib/dbus-gproxy.c:
702         Don't leak a GArray when firing signals (thank Rob Taylor for review).
703
704 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
705
706         * Released 0.62
707
708 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
709
710         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
711         break pedantic builds. Closes bug 6043 (patch approved by
712         Havoc back in February).
713
714 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
715
716         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
717         that took a QDBusMessage parameter.
718         * qt/src/qdbusbus.h: Add a default flag for RequestName.
719         * qt/tools/dbus.cpp: Don't use automatic call because we might
720         be calling an async method: request a reply.
721
722 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
723
724         * test/qt/*: Update the testcases, including testing the new
725         functionality of sending null QByteArray and QString over the
726         bus. Add new headertest test and restore the old
727         qdbusxmlparser test.
728
729 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
730
731         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
732         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
733
734         * qt/examples/Makefile.am:
735         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
736         form.
737
738         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
739         QByteArray() (nulls) over the bus.
740         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
741         the one that has the signature suffix stripped.
742         * qt/src/qdbusreply.h: Make some methods const.
743
744 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
745
746         Patch from Timo Hoenig <thoenig@suse.de>.
747
748         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
749         required during build to EXTRA_DIST.
750         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
751         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
752         * configure.in: Fix "make dist", take care that the Makefile for
753         qt/dbus is being generated.
754
755 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
756
757         * bus/bus.c: Fix eavesdropping on method calls
758
759 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
760
761         * configure.in:
762         * dbus/dbus-userdb-util.c:
763         Add Solaris console owner patch from Artem Kachitchkine
764
765 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
766
767         * qt/Makfile.am:
768         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
769         reorganisation. Thanks to Timo Hoenig for pointing this out.
770
771 2006-06-06  Robert McQueen  <robot101@debian.org>
772
773         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
774           call to dbus_g_type_get_struct.
775
776 2006-06-06  Robert McQueen  <robot101@debian.org>
777
778         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
779           pointers were put into a GPtrArray-based specialised collection, and
780           then freed along with the array. GValues which you add into
781           collections or maps which have the NOCOPY flag set are assumed to not
782           belong to the caller, so rather than the existing pointer-stealing
783           semantics, they are copied instead. Given that the main consumers of
784           this abstraction are the bindings themselves, I don't think this is
785           too bad, but others should watch their choice of take vs set_static.
786
787 2006-06-06  Robert McQueen  <robot101@debian.org>
788
789         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
790           of g_slist_prepend not being used. Fixed copying of slist-based
791           specialised collections, then wrote a test case and found that it was
792           all broken. Went on to fix iterating and appending too. Good thing
793           nobody uses this code yet.
794
795 2006-06-06  Robert McQueen  <robot101@debian.org>
796
797         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
798           the iterators use gvalue_take_ptrarray_value (the GValues themselves
799           are discarded without unsetting, so it makes no difference whether
800           we take or set_static). Remove cases for G_TYPE_POINTER because
801           there really is nothing useful we can do with them in our
802           specialised types - we *need* boxed copy/free functions at the very
803           least.
804
805 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
806
807         * qt/dbus: Add directory. I had forgotten to add this
808         yesterday after the move...
809
810         * qt/examples/Makefile.am:
811         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
812
813         * qt/tools/Makefile.am:
814         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
815         Added feature to get and set properties.
816         Added validation of service, object path and interface names.
817
818         * qt/tools/dbusidl2cpp.cpp: Two new features:
819         1) Allow specifying both the header and the source file names,
820         by separating them with a colon.
821         2) Don't write an interface output if the -p switch wasn't
822         given, but the -a was.
823
824         * qt/src/*: Fix usage of Iterators and ConstIterators.
825         Fix shadowing of variables by other variables (-Wshadow).
826         Fix keyword-cleanliness in headers.
827         Fix ASCII-cast (QLatin1String, QLatin1Char).
828         Fix validation of member names.
829         Add extra checking of introspection data during XML parsing.
830         Various bug fixes.
831
832 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
833
834         * dbus/Makefile.am:
835         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
836         qt/dbus/qdbus.h now.
837
838 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
839
840         * configure.in: Make --disable-qt actually do
841           something. Patch inspired by Zack Rusin.
842
843 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
844
845         * qt/: Update to Subversion r548032.
846         This includes a big reorganisation of the files inside the
847         subdir.
848
849 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
850
851         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
852         clear:  
853         "Failed to connect to socket <host>:<port> <error>" instead of
854         "Failed to connect to socket <host>: <error>:<port>"
855
856         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
857         for a tcp transport. 
858
859 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
860
861         * qt/*: Update the QtDBus bindings up to revision 546310 in
862         Subversion.
863         This adds the dbuscpp2xml tool, that parses a C++ header and
864         outputs a D-BUS Introspection XML.
865
866 2006-05-21  Havoc Pennington  <hp@redhat.com>
867
868         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
869         is not NULL when it shouldn't be. Also a couple of possible fixes
870         for #4637 though I don't understand why the bug happens, to be
871         honest... also the object constructor has an assert name != NULL
872         and the name is only currently NULL for peer-to-peer proxies that 
873         I don't think anyone uses? So it should be asserting.
874         Anyway, for now at least see if we get an earlier assertion failure.
875
876         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
877         apparently broken code to be sure the tests fail and someone 
878         will fix them...
879
880 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
881
882         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
883         and arrays when they had a single element: has_next returns
884         false, even before you read the element. So, instead, check
885         the array length.
886
887 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
888
889         * qt/qdbusmessage.cpp:
890         * qt/qdbustypehelper_p.h:
891         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
892         the list is a const-reference
893
894 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
895
896         * Adding old doc patch that never got applied
897         
898         * dbus/bus.c (dbus_bus_add_match): Add documentation
899
900         * doc/dbus-specification.xml: Add documentation for the match rules
901           and the AddMatch and RemoveMatch methods
902
903 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
904
905         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
906         call (r535506)
907
908         * qt/dbusidl2cpp.cpp:
909         * qt/qdbusabstractadaptor.cpp:
910         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
911         sibling of the QDBusAbstractAdaptor objects instead of the
912         parent. (r535848)
913
914         * qt/dbusidl2cpp.cpp:
915         * qt/qdbusabstractinterface.cpp:
916         * qt/qdbusabstractinterface.h:
917         * qt/qdbusabstractinterface_p.h:
918         * qt/qdbusinterface.cpp: Make properties in interfaces
919         actually work. The code that was generated would not compile,
920         due to moc calls to functions that did not exist. They now
921         shall. (r536571)
922
923 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
924
925         * Makefile.am:
926         * configure.in:
927         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
928         Thanks to Brad Hards for providing the patch
929
930 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
931
932         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
933         call. (r535506)
934
935 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
936
937         * qt/examples/dbus.cpp: Enhance error messages and use
938         QDBusInterfacePtr.
939
940 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
941
942         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
943         and disable the copy operators. (r533772, r534746)
944
945         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
946
947         * qt/qdbusabstractinterface.cpp:
948         * qt/qdbusabstractinterface.h: Change the default call mode to
949         not use the event loop. Add convenience call() methods that
950         take a CallMode parameter. (r534042)
951
952         * qt/qdbusconnection.h: Change the default call mode to not
953         use the event loop. (r534042)
954
955         * qt/qdbusinterface.cpp:
956         * qt/qdbusinterface.h: Add a method to tell us if the
957         interface is valid (since we don't return a null pointer
958         anymore) (r534099)
959
960         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
961         (r534101)
962
963         * qt/qdbusinternalfilters.cpp: Decouple the introspection
964         function in two so taht we get the chance to introspect
965         without having a QDBusMessage (r534102)
966
967         * qt/qdbusbus.h:
968         * qt/qdbusconnection.cpp:
969         * qt/qdbusconnection_p.h:
970         * qt/qdbusintegrator.cpp: Keep a list of our own names to
971         avoid a round-trip to the server when attempting to introspect
972         one of our own objects. Also make sure the filter functions
973         match the empty interface as well. (r534108)
974         Don't keep the connection names. Instead, trust the unique
975         connection name (r534111)
976         Remove event loop usage (r534112)
977
978 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
979
980         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
981         Brad Hards.
982
983 2006-04-28  Robert McQueen  <robot101@debian.org>
984
985         * glib/dbus-gproxy.c: Fix properties so that they can be given in
986         any order, making it easier for people who inherit from this
987         object.
988
989 2006-04-28  Robert McQueen  <robot101@debian.org>
990
991         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
992         of memory from within pointer arrays and lists. Fixes bug #6300.
993
994 2006-04-28  Robert McQueen  <robot101@debian.org>
995
996         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
997         generating struct signatures. Fixes bug #6083.
998
999 2006-04-28  Robert McQueen  <robot101@debian.org>
1000
1001         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1002         to qdbusconnection_p.moc.
1003
1004 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1005
1006         * README, INSTALL: Doc fixes
1007         Patch from Brad Hards <bradh at frogmouth.net>
1008
1009 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1010
1011         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1012         the dynamic meta object. No need to guess which interface to
1013         call.
1014
1015 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1016
1017         * qt/qdbusconnection_p.h:
1018         * qt/qdbusmetaobject.cpp:
1019         * qt/qdbusmetaobject_p.h:
1020         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1021         for the dynamic meta object. No need to guess which
1022         interface to call.
1023         * qt/qdbusabstractinterface_p.h:
1024         * qt/qdbusconnection.cpp:
1025         * qt/qdbusintegrator.cpp:
1026         * qt/qdbusinterface.cpp:
1027         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1028         Add a QDBusRef that looks and behaves like DCOPRef.
1029
1030 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1031
1032         * dbus/dbus-connection.c: Interfaces are optional in method
1033         calls, so don't give up if the interface parameter is NULL.
1034         Patch reviewed by Havoc Pennington.
1035
1036 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1037
1038         * qt/qdbusreply.h: Add default constructor and operator=
1039           (r532625)
1040         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1041           in public headers (r532952)
1042         * qt/qdbusabstractinterface.cpp:
1043         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1044           make it the default (r532951)
1045
1046 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1047
1048         * dbus/dbus-connection.c: Fix asserts
1049         Patch from Tim Moloney <t.moloney at verizon.net>
1050
1051 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1052
1053         * mono/Connection.cs, mono/Message.cs: Check Target type
1054         Patch from Aaron Bockover (abockover at novell.com)
1055
1056 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1057
1058         * INSTALL: fine-tune the requirements for the Qt4 binding.
1059
1060 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1061
1062         * tools/dbus-print-message.c: Added support for printing of all 
1063           remaining data types. Fixed logic for indentation of compound
1064           data types.
1065         
1066 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1067
1068         * INSTALL: fill out content of file providing DBus specific
1069           build installations, followed by generic Auto* INSTALL file
1070           content
1071         
1072 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1073
1074         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1075           Patch by Stefan Eilers. (r529537)
1076
1077 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1078
1079         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1080           contents (r528208)
1081
1082 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1083
1084         * qt/Makefile.am: fix the dependency for
1085           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1086           not in qdbusconnection.cpp.
1087           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1088           spotting this.
1089
1090 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1091
1092         * qt/examples/listnames.cpp:
1093         * qt/examples/Makefile.am: Three ways to list the names on the
1094           bus.
1095
1096 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1097
1098         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1099           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1100
1101 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1102
1103         Merge from Subversion:
1104         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1105           something that exists (r526315)
1106         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1107           slots/signals (r526316)
1108         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1109           also return an unknown-method error if the parameters don't
1110           match for org.freedesktop.DBus.Properties. (r526842)
1111         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1112         * qt/qdbusintegrator.cpp: Restore the proper order of
1113           delivery: don't make method returns be delivered on priority
1114           (r528150)
1115
1116 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1117
1118         * configure.in qt/Makefile.am: add qt/examples
1119         * qt/examples: Add QtDBus example programs:
1120           - hello: Hello, World
1121           - ping: Simple method-calling program
1122           - pong: Simple object-exporting program (not using adaptors)
1123           - complexping: Interactive method-calling program 
1124                 (also gets and sets properties).
1125           - complexpong: Sample program exporting methods, signals and
1126                 properties, using adaptors.
1127           - dbus: Simple implementation of a generic method-calling
1128                 program, similar to 'dbus-send', but with semantics
1129                 similar to 'dcop'.
1130           - chat: Simplistic chat program, implemented using signals
1131                 and the system bus. Looks like IRC.
1132
1133 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1134
1135         * configure.in: Detect QtGui (necessary for one of the
1136           example programs). Note: this increases the minimum required
1137           version of Qt to 4.1.3.
1138
1139 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1140
1141         * test/qt/*: Sync with KDE Subversion revision 523647.
1142         Update the testcases to the new API. Remove testcases for
1143         classes that are no longer public or have been removed.
1144
1145 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1146
1147         * qt/*: 
1148         * dbus/qdbus.h: Sync with KDE Subversion revision
1149         523647. Hopefully, this will be the last of the
1150         source-incompatible changes. Documentation has been improved;
1151         support for QList<basic-types> has been added; QDBusObject is
1152         gone; QDBus(Abstract)Interface is now a QObject with
1153         auto-generated meta-object; QDBusIntrospection is marked
1154         private, since QMetaObject can be used now; lots of bugfixes.
1155
1156 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1157
1158         Patch from Milosz Derezynski <internalerror at gmail.com>
1159         
1160         * configure.in:
1161         Output the service directory in the configure summary
1162
1163         * dbus-1.pc.in:
1164         Add session_bus_services_dir
1165
1166 2006-03-10  Ross Burton  <ross@openedhand.com>
1167
1168         * tools/dbus-print-message.c:
1169         Add support for object paths and signatures.
1170
1171 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1172
1173         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1174         config reload.
1175         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1176         information caches
1177         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1178         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1179         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1180         * dbus/dbus-userdb.h: Add function to flush all user/group information
1181         caches.
1182
1183 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1184
1185         * qt/dbusidl2cpp.cpp:
1186         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1187         for dcopidl2cpp, found in the KDE installations (or the more
1188         modern kalyptus): generate Qt4 C++ code for the input XML
1189         introspection. Currently no IDL parsing.
1190
1191 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1192
1193         * test/qt/*: Update the self-tests.
1194
1195 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1196
1197         * qt/*: 
1198         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1199         represents the first feature-complete version of the Qt4
1200         bindings since I took ove maintainership.
1201
1202 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1203
1204         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1205         dir. This is C++, so we can't use the DBus ones.
1206
1207 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1210         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1211
1212 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * dbus/dbus-connection.c: 
1215         (_dbus_connection_block_pending_call):
1216         Check to see if our data has already been read off the connection
1217         by another blocking pending call before we block in poll.
1218         (check_for_reply_and_update_dispatch_unlocked):
1219         Code taken from _dbus_connection_block_pending_call - checks for
1220         an already read reply and updates the dispatch if there is one.
1221
1222         * test/name-test/test-pending-call-dispatch.c:
1223         New test for making sure we don't get stuck polling a 
1224         dbus connection which has no data on the socket when
1225         blocking out of order on two or more pending calls.
1226
1227 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1228
1229         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1230         make/automake don't detect that we're talking about the same
1231         .lo file if I specify the full path to the source files.
1232
1233 2006-02-26  Havoc Pennington  <hp@redhat.com>
1234
1235         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1236
1237         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1238         session bus variable is unset, suggest "man dbus-launch" and "man
1239         dbus-daemon" to figure out how to fix the problem
1240
1241 2006-02-25  Havoc Pennington  <hp@redhat.com>
1242
1243         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1244         should make this thing use the new glib options parser
1245
1246 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1247
1248         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1249         .lo files taking moc sources.
1250
1251 2006-02-25  Havoc Pennington  <hp@redhat.com>
1252
1253         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1254         and install it as a public header
1255
1256 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1257
1258         * Released 0.61
1259
1260 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1261         
1262         * proxies.py: Fix the callchain
1263
1264 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1265         
1266         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1267
1268         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1269         dbus/dbus-sysdeps.c
1270
1271         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1272         call _dbus_group_info_free_allocated which causes infinite loop,
1273         correctly call _dbus_group_info_free
1274
1275 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1276
1277         * qt/qdbusinterface_p.h:
1278         * qt/qdbusinterface.cpp: Use the standard
1279         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1280         calls instead of creating one for us.
1281
1282         * qt/qdbusconnection_p.h:
1283         * qt/qdbusintegrator.cpp: Remove debugging code.
1284
1285         * qt/qdbusintegrator.cpp:
1286         * qt/qdbusmessage.cpp:
1287         * qt/qdbusmessage_p.h:
1288         * qt/qdbusmessage.h: Change the behaviour of automatic
1289         reply-sending: now a reply is always sent, unless the caller
1290         didn't request one or if the user slot has already sent one.
1291
1292 2006-02-16  Robert McQueen  <robot101@debian.org>
1293
1294         * configure.in: Patch from Debian packages by Sjoerd Simons
1295         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1296         arguments so it's possible to build both bindings in the
1297         same tree.
1298
1299         * qt/Makefile.am: Fix truncated value so that make dist works.
1300
1301 2006-02-16  Robert McQueen  <robot101@debian.org>
1302
1303         * acinclude.m4, configure.in: Patch from Brad Hards
1304         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1305         improving quoting, re-ordering a few checks, and a few other
1306         aesthetic tidy-ups.
1307
1308 2006-02-16  Robert McQueen  <robot101@debian.org>
1309
1310         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1311         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1312         assertion that the next element to read from the iter is fixed in
1313         size. This is not the case when you are at the end of the iter,
1314         because the next element type is INVALID.
1315
1316         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1317         a bogus assert which means that you may not initialise a 0-length
1318         string unless you provide a non-NULL pointer. This prevented
1319         you from marshalling messages containing zero-length arrays in
1320         some cases.
1321
1322         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1323         from Rob to correct bogus asserts when trying to demarshal an
1324         array and get_fixed_array got you 0 elements. Append nothing to
1325         the GArray in this case.
1326
1327         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1328         an empty array via the glib bindings. Without all of the above
1329         patches, this new test fails.
1330
1331 2006-02-16  Robert McQueen  <robot101@debian.org>
1332
1333         * glib/dbus-gmain.c: Make the previous commit compile.
1334
1335         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1336         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1337         specify sender_keyword="foo", path_keyword="bar" when adding
1338         a signal listener, so that you can bind to signals generically
1339         but still do something useful in your callback.
1340
1341         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1342         chars so that they're not cast to chars and made negative. Thanks
1343         to Jakub Stachowski for reporting this and testing the fix.
1344
1345 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * dbus/dbus-glib.h:
1348         * glib/dbus-gmain.h:
1349         (dbus_g_connection_open): new method for openning
1350         a connection to an arbitrary address in the glib bindings
1351
1352         * ChangeLog: checkin last entry which doesn't seem to be commited
1353
1354 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * tools/dbus-launch.c: Fixed sh syntax output
1357
1358 2006-02-13  Robert McQueen  <robot101@debian.org>
1359
1360         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1361         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1362         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1363         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1364         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1365         missing piece of the glib bindings jigsaw puzzle. This modifies
1366         the existing specialised types to have N type parameters (rather
1367         than the current 1 or 2 for arrays and dictionaries respectively).
1368         You can then use this to get a glib type to represent any arbitrary
1369         D-Bus struct type using dbus_g_type_get_struct. The only
1370         implementation of these types is with GValueArrays as before,
1371         but it's now possible to store these in arrays, emit them in
1372         signals, etc.
1373
1374 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1377         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1378         <thiago.macieira at trolltech.com>
1379
1380 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1383         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1384
1385 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1386
1387         * bus/connection.c (bus_connections_expect_reply): Make
1388         pending reply limit not common to all connections (Bug #5416)
1389         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1390
1391 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1394
1395 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1398         patch from Doug Goldstein <cardoe at gentoo.org>
1399
1400 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1401
1402         * mono/Arguments.cs: Fix a magic number in the mono bindings
1403         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1404
1405 2006-01-27  Robert McQueen  <robot101@debian.org>
1406
1407         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1408         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1409         when generating the client-side methods, instead of overloading
1410         CSymbol which broke everything horribly. My apologies.
1411
1412 2006-01-27  Robert McQueen  <robot101@debian.org>
1413
1414         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1415         by me and Rob Taylor to add a simple_free function to D-Bus map
1416         and collection types, which allows those types which can be freed
1417         with a GDestroyNotify (such as GHashTables and GArrays, but not
1418         GPtrArrays) to be stored as the values in hashtables.
1419
1420         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1421         Patch by Rob Taylor to add nested dicts to the glib tests to check
1422         the above code works, and appears not to leak when called repeatedly.
1423
1424 2006-01-27  Robert McQueen  <robot101@debian.org>
1425
1426         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1427         to free a D-Bus allocated string with dbus_free () instead of
1428         g_free ().
1429
1430 2006-01-27  Iain Holmes  <iain@openedhand.com>
1431
1432         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1433         method from being called multiple times.
1434
1435 2006-01-19  Robert McQueen  <robot101@debian.org>
1436
1437         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1438         <rob.taylor@collabora.co.uk> to add support for generating bindings
1439         to arrays that are represented as GPtrArrays rather than GArrays (ie
1440         size-variable things, such as strings, objects, structs, etc).
1441
1442 2006-01-05  Robert McQueen  <robot101@debian.org>
1443
1444         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1445         <ricardo.kekki@movial.fi> to make it possible to inherit from
1446         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1447         a private part, and moving the setting of the DBusGProxyManager into a
1448         connection property, allowing proper GObject construction.
1449
1450 2006-01-05  Robert McQueen  <robot101@debian.org>
1451
1452         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1453         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1454         annotations when generating glib client bindings.
1455
1456 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1457
1458         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1459
1460         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1461
1462 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1463
1464         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1465
1466 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1467
1468         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1469
1470 2005-12-19  Ross Burton  <ross@openedhand.com>
1471
1472         * doc/dbus-tutorial.xml:
1473         Document the Glib client-side bindings, and list all possible annotations.
1474
1475 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1476
1477         * dbus/bus.c (dbus_bus_release_name): Add documentation
1478
1479 2005-12-06  Robert McQueen  <robot101@debian.org>
1480
1481         * python/service.py: s/sucessful/successful/ so we're allocating to
1482         and reading from the same variable. Oops.
1483
1484 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1485
1486         * Released 0.60
1487
1488 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * test/qt/Makefile.am: build from srcdir
1491
1492         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1493         Note - this code is wrong and needs to be fixed by the Qt binding
1494         developers.  The flags should be treated as bitfields and not enums.
1495
1496         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1497
1498 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1499
1500         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1501           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1502           in production code
1503
1504 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1505
1506         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1507         method for getting messages off the bus in the absence of a
1508         mainloop.  This method is much like 
1509         dbus_connection_read_write_dispatch except it does not dispatch
1510         the messages to a registered filter function.  Instead it
1511         allows a developer to process messages by directly popping
1512         them off the bus.
1513
1514 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1515
1516         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1517         the parser to continue instead of returning error
1518         (bus_desktop_file_load): Do not free parser data when
1519         parse_section_start or parse_key_value fails because it was 
1520         already freed by parser_free (patch from Carlos Garcia Campos  
1521         <carlosgc at gnome.org>)
1522
1523 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1526         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1527         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1528         test/test-segfault.c, test/test-utils.c,
1529         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1530         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1531         Various cleanup of dead code and compiler warnings (patch from
1532         Kjartan Maraas <kmaraas at gnome.org>) 
1533
1534 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1535
1536         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1537         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1538
1539 2005-11-27  Robert McQueen  <robot101@debian.org>
1540
1541         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1542         part of the preceding one. Oops. Merge patch by Johan Hedberg
1543         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1544         on big-endian platforms.
1545
1546         * test/python/test-client.py: Add some 16-bit integers to the test
1547         values.
1548
1549 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1550
1551         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1552         method return message for property getters
1553
1554 2005-11-27  Robert McQueen  <robot101@debian.org>
1555
1556         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1557         with type v of an instance of dbus.Variant(foo, type='x') caused
1558         it to be boxed twice before sending over the bus.
1559
1560         * python/dbus_bindings.pyx, python/service.py,
1561         test/python/test-client.py: Update the constants for the new
1562         request_name flags, and update comments/test cases now that queueing
1563         is the default action.
1564
1565 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * configure.in:
1568         - Change version to 0.60 for impending release
1569         - upped the sonames because of ABI and API breakage
1570
1571 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1572
1573         * configure.in: Add test/name-test/Makefile to the generated
1574         Makefile list
1575
1576         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1577         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1578         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1579         not to queue an ower if it can't be the primary owner
1580
1581         * bus/bus.h: Add new internal BusOwner struct
1582
1583         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1584         to bus_registry_ensure and don't set the prohibit_replacement flag
1585         since they are now set per BusOwner and not per name.
1586         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1587         that returns the list of connections in a name's connection queue
1588         
1589         * bus/services.c (struct BusService): remove prohibit_replacement field
1590         (struct BusOwner): new struct for keeping track of queued connections
1591         and their associated flags for the queue
1592         (struct BusRegistry): add a BusOwner memory pool
1593         (bus_registry_new): initialize the BusOwner memory pool
1594         (bus_registry_unref): free the BusOwner memory pool
1595         (_bus_service_find_owner_link): new internal method for
1596         searching the queue for a specific connection
1597         (bus_owner_set_flags): new method for adding setting the flags on a
1598         bus owner
1599         (bus_owner_new): new method that creates a BusOwner object from the
1600         pool and sets its flags
1601         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1602         (bus_registry_ensure): Add the flags parameter
1603         (bus_registry_acquire_service): Switch from using raw connections to
1604         using the BusOwner struct
1605         Add new state machine for dealing with the new set of flags
1606         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1607         cancel_ownership, free_ownership_cancel_data, 
1608         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1609         restore_ownership, free_ownership_restore_data, 
1610         add_restore_ownership_to_transaction): Switch to using BusOwner 
1611         instead of raw connections
1612         (bus_service_add_owner): Add flags parameter
1613         Switch to using BusOwner instead of raw connections
1614         Add state machine for dealing with the new set of flags
1615         (bus_service_swap_owner): Swaps the first and second owners in the
1616         queue.  Used to make sure proper signals are sent when a service looses 
1617         or gains primary ownership.  We never insert an owner at the top of the
1618         queue.  Instead we insert it in the second position and then swap.
1619         (bus_service_remove_owner): Remove the owner from the queue sending
1620         out the NameLost and NameOwnerChanged signals if the we were the 
1621         primary owner
1622         (bus_service_get_primary_owners_connection): New method that extracts
1623         the connection from the primary owner
1624         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1625         connection
1626         (bus_service_get_allow_replacement): Changed from the old 
1627         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1628         primary owner and returns if it can be replaced or not
1629         (bus_service_set_prohibit_replacement): removed
1630         (bus_service_has_owner): returns TRUE if and owner with
1631         the specified connection exists in the queue
1632         
1633         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1634         method that only compiles if tests are enabled.  Allows us to get the 
1635         unique name of a connection so we can check it against the queue when
1636         doing regression tests
1637
1638         * bus/activation.c (bus_activation_send_pending_auto_activate),
1639         bus/dispatch.c (bus_dispatch),  
1640         bus/driver.c (bus_driver_handle_get_service_owner, 
1641         bus_driver_handle_get_connection_unix_user, 
1642         bus_driver_handle_get_connection_unix_process_id,
1643         bus_driver_handle_get_connection_selinux_security_context),
1644         bus/signals.c (connection_is_primary_owner): 
1645         use bus_service_get_primary_owners_connection instead of
1646         bus_service_get_primary_owner
1647
1648         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1649         _dbus_listen_unix_socket): Calculate the length of the socket
1650         path and use that instead of using a fixed length which was
1651         causing socket names to contain many trailing Nul bytes.
1652
1653         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1654         (dbus_g_method_get_sender): New method for extracting the sender 
1655         from a DBusGMethodInvocation
1656         (dbus_g_method_return_get_reply): changed name to 
1657         dbus_g_method_get_reply
1658         (dbus_g_method_return_send_reply): changed name to
1659         dbus_g_method_send reply
1660
1661         * doc/dbus-specification.xml: New docs that describe how the new
1662         queueing system works and talks about the changes to the how
1663         we specify socket names
1664
1665         * glib/examples/example-service.c, 
1666         glib/examples/example-signal-emitter.c,
1667         glib/examples/statemachine/statemachine-server.c:
1668         Changed the RequestName flags to the new system
1669
1670         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1671         regression test suite for testing various states of the new
1672         queueing system
1673         
1674 2005-11-15  Robert McQueen  <robot101@debian.org>
1675
1676         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1677         Taylor to add two methods, dbus_g_method_return_get_reply and
1678         dbus_g_method_return_send_reply, to allow you to get the reply
1679         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1680         and send it. The GLib bindings can't marshal a return value of
1681         something like a(s) if the array is empty - ultimately they should be
1682         made to heed the signature of the out arguments as the Python bindings
1683         now can, but this is a workable interim solution which might have
1684         other applications.
1685
1686 2005-11-15  Robert McQueen  <robot101@debian.org>
1687
1688         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1689         method to org.freedesktop.DBus to release a bus name or give up
1690         waiting in the queue for it.
1691
1692         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1693         dbus_bus_release_name method to send the ReleaseName method calls.
1694         Add constants for the return values to dbus/dbus-shared.h.
1695
1696         * doc/dbus-specification.xml: Document the new ReleaseName method
1697         in the specification.
1698
1699         * python/dbus_bindings.pyx: Add a low-level python binding for the
1700         release name method.
1701
1702         * python/exceptions.py, python/service.py: Make freeing BusName
1703         objects release the name. Add a NameExistsException, and fix a
1704         bug with creating UnknownMethodException.
1705
1706         * test/python/test-client.py: Add tests for freeing BusName
1707         objects causing names to be released.
1708
1709 2005-11-14  Robert McQueen  <robot101@debian.org>
1710
1711         * python/service.py: Include the traceback in the error reply when we
1712         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1713
1714 2005-11-14  David Zeuthen  <davidz@redhat.com>
1715
1716         Patch from Timo Hoenig <thoenig@suse.de>.
1717
1718         * bus/bus.c: I've recently investigated why the automatic reload
1719         of configuration files does not work as expected.
1720
1721         Currently, reloading configuration files does only work when
1722         running dbus-daemon with --nodaemon.  If we are running as daemon
1723         we're hitting a dnotify bug once we fork the process.
1724
1725         We're initializing the dnotify fds before calling fork().  Once
1726         the child process forked it does still have the fds (and they
1727         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1728         getting SIGIO as changes are made to the configuration files.
1729
1730         The attached patch moves the initialization of the dnotify fds to
1731         process_config_postinit().  This is safe for all current code
1732         paths and solves the dnotify disfunction.  If we're running
1733         dbus-daemon as daemon the fds for dnotify are now being
1734         initialized after fork() for the child process.
1735
1736         * configure.in: The current configure.in check for dnotify probes
1737         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1738         match for 'xlinux', too. Additionally I have adapted the configure
1739         option's style to match with the others.
1740
1741 2005-11-14  Robert McQueen  <robot101@debian.org>
1742
1743         * python/decorators.py, python/service.py: Add a new argument to the
1744         dbus.service.method decorator called sender_keyword, which if set,
1745         specifies the name of an argument which will be provided the bus
1746         name of the method caller.
1747
1748         * test/python/test-client.py, test/python/test-service.py: Add a
1749         method and test to check the sender_keyword functionality.
1750
1751 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1752
1753         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1754         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1755         Simons <sjoerd at luon.net>)
1756
1757         * AUTHORS: Add Robert McQueen for his work on the Python
1758         Bindings and other parts of D-Bus
1759
1760 2005-11-07  Robert McQueen  <robot101@debian.org>
1761
1762         * python/decorators.py: Change emit_signal function to use the
1763         signature annotation of the signal when marhsalling the arguments from
1764         the service. Fix a bug where the code checking signature length
1765         against argument length referenced the wrong variable.
1766
1767         * python/introspect_parser.py: Avoid adding the type signature of
1768         signal arguments to any methods which occur after them in the
1769         introspection data (!) by making the parser a little more careful
1770         about its current state.
1771
1772         * python/service.py: Remove debug prints from last commit (again :D).
1773
1774         * test/python/test-client.py, test/python/test-service.py: Add test
1775         signals with signature decorators to test the strict marshalling code
1776         gives errors at the right time. Could do with checking the signals
1777         actually get emitted too, given that the test does nothing with
1778         signals at the moment...
1779
1780 2005-11-07  Robert McQueen  <robot101@debian.org>
1781
1782         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1783         instances to stop madness of creating new instances representing
1784         the same bus connection all the time, rendering any tracking of
1785         match rules and bus names quite meaningless. Caught a bug where
1786         the private argument to SessionBus() and friends was being passed
1787         in as use_default_mainloop by mistake. Still some problems with
1788         multiple dbus_binding.Connection instances representing the same
1789         low-level connection (eg when you use both SessionBus() and
1790         StarterBus() in same process), but it's a lot better now than it
1791         was.
1792
1793         * python/dbus_bindings.pyx: Add constants with the return values
1794         for bus_request_name().
1795
1796         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1797         and retrieve the same instances for the same name, so deletion can be
1798         done with refcounting. Also now throws some kind of error if you
1799         don't actually get the name you requested, unlike previously...
1800
1801         * test/python/test-client.py: Add tests for instance caching of buses
1802         and bus name objects.
1803
1804 2005-11-04  Robert McQueen  <robot101@debian.org>
1805
1806         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1807         marshalling of boolean values. Add some booleans to the values in
1808         the test client.
1809
1810         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1811         argument to the dbus.service.method decorator, which allows you to
1812         name arguments to take two callback functions for replying with
1813         return values or an exception.
1814
1815         * test/python/test-client.py, test/python/test-service.py: Add test
1816         case using asynchronous method reply functions, both return values and
1817         errors, and from within both the function itself and from a mainloop
1818         callback.
1819
1820         * python/decorators.py, python/service.py: Perform checking that the
1821         number of method/signal arguments matches the number of types in the
1822         signature at class loading time, not when you first introspect the
1823         class.
1824
1825         * python/service.py: Remove debug print left by the last commit.
1826
1827 2005-11-03  Robert McQueen  <robot101@debian.org>
1828
1829         * python/service.py: Heavy refactoring of method invocation, with
1830         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1831         in favour of a new _message_cb that uses seperate functions for
1832         looking up the method to call, marshalling the return values, and
1833         sending exceptions as errors, and is easier to follow as a
1834         consequence.  Fixes some corner cases about returning things that
1835         don't match your declared out_signature, allows exceptions to define
1836         _dbus_error_name and have it be sent over the bus as the error name,
1837         and paves the way for cool stuff like heeding the message no reply
1838         flag, asynchronous method implementations, informing the method of the
1839         sender, and including backtraces in the error messages.
1840
1841         * test/python/test-client.py: Catch and print exceptions thrown in the
1842         async callback tests, rather than passing them to the low-level
1843         bindings to be ignored in a noisy and frustrating manner.
1844
1845 2005-11-03  Robert McQueen  <robot101@debian.org>
1846
1847         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1848         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1849         tweak others to be consistent.
1850
1851         * test/python/test-client.py: Tweak output of testInheritance.
1852
1853 2005-10-29  Robert McQueen  <robot101@debian.org>
1854
1855         * python/service.py: Major changes to allow multiple inheritance
1856         from classes that define D-Bus interfaces:
1857         
1858          1. Create a new Interface class which is the parent class of
1859             Object, and make the ObjectType metaclass into InterfaceType.
1860         
1861          2. Patch written with Rob Taylor to replace use of method_vtable
1862             with code that walks the class's __MRO__ (method resolution order)
1863             to behave like Python does when invoking methods and allow
1864             overriding as you'd expect. Code is quite tricky because
1865             we have to find two methods, the one to invoke which has the
1866             right name and isn't decorated with the /wrong/ interface,
1867             and the one to pick up the signatures from which is decorated
1868             with the right interface.
1869         
1870             The same caveats apply as to normal multiple inheritance -
1871             this has undefined behaviour if you try and inherit from two
1872             classes that define a method with the same name but are
1873             decorated with different interfaces. You should decorate
1874             your overriding method with the interface you want.
1875         
1876          3. Replace grungy introspection XML generation code in the metaclass
1877             with dictionaries that cope correctly with multiple inheritance
1878             and the overriding of methods. This also uses the signature
1879             decorations to provide correct introspection data, including
1880             the debut appearance of the types of your return values. :D
1881
1882         * test/python/test-client.py, test/python/test-service.py: Add a test
1883         case to try invoking an method that overrides one inherited from a
1884         D-Bus interface class.
1885
1886 2005-10-29  Robert McQueen  <robot101@debian.org>
1887
1888         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1889         Add checking for the end of struct character when marshalling a
1890         struct in MessageIter.append_strict.
1891
1892         * python/examples/example-service.py,
1893         python/examples/gconf-proxy-service.py,
1894         python/examples/gconf-proxy-service2.py: Update to use gobject
1895         mainloop directly rather than appearing to depend on gtk.
1896
1897         * python/test/test-client.py, python/test/test-server.py: Remove
1898         obsolete and broken test scripts for old bindings. We have up to date
1899         and working tests in test/python/.
1900
1901 2005-10-29  Robert McQueen  <robot101@debian.org>
1902
1903         * python/decorators.py: Add optional arguments to the method and
1904         signal decorators to allow you to specify the signature of arguments
1905         and return values. Preserve the doc strings of signal functions in the
1906         decorated version, for pydoc and friends.
1907
1908         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1909         parse_signature_block function with an iterable dbus.Signature()
1910         type. Fix a bug in MessageIter.append_strict where you could append
1911         anything by claiming it was a string.
1912
1913         * python/service.py: Use the out_signature decoration on methods to
1914         marshal return values, meaning you no longer require dbus.Array()
1915         or dbus.Dictionary() to indicate the type when returning empty
1916         arrays or dictionaries. Fix a bug where exceptions which are defined
1917         in __main__ are not turned into error replies.
1918
1919         * test/python/test-client.py, test/python/test-service.py: Add test
1920         for correct marshalling of return values according to out_signature.
1921         Fix a bug in the async call test where the error_handler is missing a
1922         self argument.
1923
1924 2005-10-29  Robert McQueen  <robot101@debian.org>
1925
1926         * glib/Makefile.am, glib/examples/Makefile.am,
1927         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1928         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1929
1930         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1931
1932         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1933         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1934         the command line.
1935
1936 2005-10-27  Ross Burton  <ross@openedhand.com>
1937
1938         * dbus/dbus-marshal-header.c:
1939         Remove dead code.
1940
1941         * glib/dbus-gobject.c:
1942         Stop compiler warning.
1943
1944 2005-10-25  Ross Burton  <ross@openedhand.com>
1945
1946         * dbus/dbus-auth.c:
1947         * dbus/dbus-server-unix.c:
1948         * dbus/dbus-transport-unix.c:
1949         * glib/dbus-gmain.c:
1950         * glib/dbus-gobject.c:
1951         Add some const keywords.
1952
1953 2005-10-25  Ross Burton  <ross@openedhand.com>
1954
1955         * doc/dbus-specification.xml:
1956         Document the NoReply annotation.
1957
1958         * glib/dbus-binding-tool-glib.h:
1959         * glib/dbus-binding-tool-glib.c:
1960         Respect the NoReply annotation.
1961
1962 2005-10-24  Robert McQueen <robot101@debian.org>
1963
1964         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1965         derive from unicode instead of str, and encode/decode UTF-8 when
1966         marshalling/unmarshalling bus messages
1967
1968         * python/introspect_parser.py: encode introspection data as UTF-8
1969         before passing the buffer into libxml2
1970
1971         * test/python/test-client.py: add unicode test strings
1972
1973         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1974         ignore generated python test files
1975
1976 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1977
1978         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1979         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1980         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1981
1982         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1983         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1984         when constructing struct signatures
1985
1986         * python/_dbus.py (Bus): handle private connections using the
1987         private keyword in the constructor. defaults to private=False
1988         (Bus::close): new method to close a connection to the bus
1989
1990         * python/dbus_bindings.pyx (Connection::close): renamed method
1991         was previously called disconnect
1992         (bus_get): now supports getting a private connection
1993
1994         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1995         keyword is set to True.  if it is, execute the method without waiting
1996         for a reply
1997         (ProxyObject::_introspect_execute_queue): new method for executing
1998         all the pending methods that were waiting for the introspect to
1999         finish.  this is called when introspect either succeeds or fails
2000         (ProxyObject::_introspect_error_handler): call queued methods
2001
2002 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2003
2004         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2005         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2006
2007         * python/service.py (Object::_message_cb): handle exceptions correctly
2008         by sending them over the wire to the calling app.  This makes sure
2009         the client returns immediately instead of waiting the 15 seconds to
2010         timeout.
2011
2012         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2013         Add a test to benchmark how long it takes to introspect a service and 
2014         call a method which returns a large element (pretty fast)
2015
2016         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2017         method which pushes a lot of data
2018
2019 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2020
2021         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2022         reclaim memory outside of the loop and use del istead of just setting
2023         the key to None
2024
2025 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2026
2027         * python/service.py (ObjectType::_reflect_on_signal): Always close
2028         signal tag even when there are no arguments
2029
2030 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2031
2032         * configure.in: Set mono, mono-docs and Qt3 to default
2033         to no instead of auto when building.  These bindings do not
2034         have full time maintainers and will not be supported for the
2035         1.0 release.
2036
2037 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2038
2039         patches from Michael Krivoruchko <misha at sun.com>: 
2040         
2041         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2042         _dbus_connection_message_sent, 
2043         _dbus_connection_send_preallocated_unlocked_no_update, 
2044         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2045         is NULL when calling _dbus_verbose
2046
2047         * configure.in: check for functions getpeerucred and getpeereid
2048
2049         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2050         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2051         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2052         Patch was only tested on Solaris 10 x86 so it might be issues
2053         with other platforms (i.e. BSDs and MacOSX)
2054         
2055
2056 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2059         instead of marshal basic so we can handle recursive types in a variant
2060
2061         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2062         in variants
2063
2064         * test/glib/test-service-glib.c, test-service-glib.xml
2065         (my_object_echo_variant [EchoVariant], 
2066         my_object_process_variant_of_array_of_ints123
2067         [ProcessVariantOfArrayOfInts123]): 
2068         Add two test methods
2069
2070         * python/introspect_parser.py: New module for parsing introspect
2071         data.
2072
2073         * python/dbus_bindings.pyx:
2074         (various places): when throwing errors fix to use errormsg instead 
2075         of message local variable because Pyrex can get confused with other 
2076         message variables (initial patch by Robert McQueen 
2077         <robert.mcqueen at collabora.co.uk>)
2078         (MessageIter::parse_signature_block): new method for getting the next
2079         block in a signiture.
2080         (MessageIter::append_strict): new method for appending values strictly
2081         using the passed in signature instead of guessing at the type
2082         (MessageItter:: append_dict, append_struct, append_array): use 
2083         signatures to marshal children if the signature is available
2084         
2085         * python/exceptions.py (IntrospectionParserException): new exception
2086
2087         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2088         introspected signatures if available, else we fall back to the
2089         old way of doing things.
2090         (ProxyObject::_introspect_reply_handler ): parse introspection data
2091         
2092         * python/service.py (ObjectType::_reflect_on_method): Properly
2093         terminate <method> if there are no args in the reflection data
2094
2095         * test/python/test-client.py: add tests for talking with the GLib
2096         test server.  This gives us better coverage for introspection since
2097         python to python will always generate arguments as variants.  It also
2098         allows us to test the robustness of the GLib bindings and interlanguage
2099         communications.
2100
2101         
2102 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2103
2104         * bus/driver.c (bus_driver_handle_introspect): Add signals
2105         to the introspect data. (patch from Daniel P. Berrange 
2106         <dan at berrange.com>)
2107
2108         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2109         
2110         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2111         _dbus_connection_run_builtin_filters): Changed these to
2112         be unlock_no_update functions and call 
2113         _dbus_connection_send_unlocked_no_update instead of
2114         dbus_connection_send to avoid locking errors.
2115         
2116         * doc/TODO: Removed the make Ping test TODO
2117         
2118 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2119
2120         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2121         We now copy the message from a DBusError and then free 
2122         the error object befor throwing the error
2123
2124         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2125         DBusBindingOutputMode enum which was causing a warning.
2126         #include <time.h> so using time_t is explicitly defined
2127
2128 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2129
2130         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2131         - dbus/dbus-bus.c
2132         (internal_bus_get): new method that take over the heavy lifting
2133         of dbus_bus_get and adds the ability to get a private connection
2134         to the bus
2135         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2136         interface as in previous versions
2137         (dbus_bus_get_private): new method that is a wrapper to 
2138         internal_bus_get to get a private connection to the bus
2139
2140         - dbus/dbus-bus.h
2141         (dbus_bus_get_private): add as a public libdbus interface
2142
2143         - dbus-1.pc.in: output system_bus_default_address and 
2144         sysconfdir variables so apps can use them when compiling
2145
2146 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2147         * dbus/qt: New Qt bindings
2148
2149 2005-09-12  Waldo Bastian  <bastian@kde.org>
2150
2151         * dbus/dbus-marshal-validate.c,
2152         doc/dbus-specification.xml, test/Makefile.am,
2153         test/test-names.c: allow hyphens in bus names.
2154
2155 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2156
2157         * test/data/auth/fallback.auth-script: we don't
2158         retry the EXTERNAL method when we know its going
2159         to fail anymore.
2160
2161 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2162
2163         * dbus/dbus-connection-internal.h: rename
2164         (add|remove|toggle)_(watch|timeout) to unlocked()
2165         
2166         * dbus/dbus-connection.c: ditto.
2167         
2168         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2169         Update some callers for the renaming.
2170
2171 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2172
2173         * dbus/dbus-auth.c: (record_mechanisms): don't
2174         retry the first auth mechanism because we know
2175         we're just going to get rejected again.
2176         
2177         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2178         Fix thinko ... and what a nasty little bugger to
2179         track down you were ...
2180
2181         * dbus/dbus-connection.c:
2182         (_dbus_connection_add_watch),
2183         (_dbus_connection_remove_watch): add note about
2184         these needing the connection to be locked.
2185         (_dbus_connection_get_dispatch_status_unlocked):
2186         set status to DATA_REMAINS when we queue the
2187         disconnected message.
2188         
2189         * bus/dispatch.c:
2190         (bus_dispatch): fix warning.
2191         (check_existent_service_no_auto_start):
2192         Expect ChildSignaled error too.
2193         (check_existent_hello_from_self): fix another
2194         couple of warnings.
2195         
2196 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2197
2198         Patches from James Willcox <snorp@snorp.net>
2199
2200         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2201
2202         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2203         support array "out" parameters.
2204
2205         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2206         for 16-bit int support.
2207
2208 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2209
2210         * Released 0.50
2211
2212         * Patch from Steve Grubb:
2213         - bus/activation.c (bus_activation_service_reload_test): clean up
2214         some indentation
2215         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2216         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2217         buffer overflows in the test suite.  This is non critical because
2218         it can not be exploited and this code is only run when doing a 
2219         make check.
2220
2221         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2222         - configure.in: Don't check and link against kdecore, only qt headers
2223         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2224         - gcj/org/freedesktop/dbus/Makefile.am:
2225         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2226         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2227         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2228         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2229         - tools/Makefile.am: Add platform extentions to binaries 
2230         (i.e. .exe on windows)
2231
2232         * configure.in: 
2233         - Make it so if no suitable version of python is found we only 
2234         disable building python instead of exiting the configure script
2235         - Require version 2.4 of glib for glib bindings
2236         - Up version to 0.50
2237
2238         * python/__init__.py: Sync version with libdbus to (0,50,0)
2239         
2240 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2241
2242         * dbus/dbus-object-tree.c (find_subtree_recurse):
2243         a couple of optimizations (bug #710):
2244         - do a binary search in the tree
2245         - insert a new child at the right place directly, no need for
2246           qsort anymore
2247         - do the "double alloc" thing when allocating children
2248
2249 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2250
2251         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2252
2253         * python/dbus_bindings.pyx: Memory management foo
2254         (global): remove hacky _user_data_references global list
2255         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2256         tuples. Unref user_data
2257         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2258         (Connection::__del__): Remove and replace with __dealloc__ method
2259         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2260         to keep tuple from being deallocated instead of the global var hack
2261         (Connection::register_object_path): Stuff user_data into a tuple.
2262         Use Py_INCREF to keep tuple from being deallocated instead of the 
2263         global var hack
2264         (Connection::register_fallback): Stuff user_data into a tuple.
2265         Use Py_INCREF to keep tuple from being deallocated instead of the 
2266         global var hack
2267         (GIL_safe_pending_call_notification): Don't unref the message
2268         because it gets unreffed when going out of scope.  Py_XDECREF
2269         the user_data
2270         (PendingCall::__del__): Remove and replace with __dealloc__ method
2271         (PendingCall::set_notify): ref the pending call because we will
2272         need it to stick around for when the notify callback gets called
2273         (Message::__del__): Remove and replace with __dealloc__ method
2274
2275         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2276         gthreads_init to match up with the dbus call
2277
2278         * python/glib.py (init_threads): Changed to threads_init to match
2279         up with gobject.threads_init().  init_threads is kept for backwards
2280         compat but will most likely be deprecated in the future
2281
2282         * test/python/test-client.py: 
2283         - revamp to use Python's unittest functionality
2284         - add async call tests
2285         - setup threads in glib and dbus so we make sure locks are working
2286         
2287 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2288
2289         * python/dbus_bindings.pyx 
2290         (_pending_call_notification, cunregister_function_handler, 
2291         cmessage_function_handler): All callback functions have been rearranged 
2292         to workaround a bug in Pyrex when working with the GIL which is Python's 
2293         global lock when dealing with threads.  They have been split into
2294         a wrapper function (which assumes the name of the old function) and
2295         a _GIL_safe_<function name> function which contains the functionality
2296         of the old function.  This ensures that Pyrex does not write code
2297         the lock is released.
2298         
2299
2300 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2301
2302         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2303         GIL global lock when calling back into Python
2304
2305 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2306
2307         * Release 0.36.2
2308
2309         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2310
2311         * bus/policy.c (bus_policy_allow_user): change default "user is
2312         allowed" to be "user has same uid as the bus itself"; any
2313         allow/deny rules will override.
2314
2315         * bus/session.conf.in: don't allow all users, since now by default
2316         the user that ran the bus can connect.
2317
2318 2005-08-26  Colin Walters  <walters@verbum.org>
2319
2320         * tools/dbus-print-message.c (print_message): Flush stdout
2321         after printing a message, so that redirecting to a file, then
2322         hitting Ctrl-C works.
2323
2324 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2325
2326         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2327         (EmptyMessage): new class that subclasses Message.  This is a workaround
2328         to a Pyrex bug that fails to call __del__ when the Message object goes out
2329         of scope.  For some reason subclassing Message fixes this bug
2330         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2331         - s/Message(_create=0)/EmptyMessage everywhere else
2332         
2333         * test/python/test-{server|client}.py: add the python/.libs directory
2334         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2335         get picked up from the system
2336
2337 2005-08-25  Colin Walters  <walters@verbum.org>
2338
2339         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2340         to Ryan Lortie for the suggestion.
2341
2342 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2343
2344         * test/python: Add python regression test
2345
2346         * configure.in: Add test/python/Makefile
2347
2348         * test/Makefile.am: Add the python directory to SUBDIRS
2349
2350 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2351
2352         * Release 0.36.1
2353
2354         * python/_dbus.py: 
2355         (Interface::connect_to_signal): propigate keywords for match on args
2356         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2357
2358         * python/proxies.py (ProxyObject::connect_to_signal):
2359         propigate keywords for match on args
2360
2361         * Makefile.am: point everything to pyexecdir since python borks
2362         on multilib
2363
2364 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2365
2366         * Release 0.36
2367
2368 2005-08-23  Colin Walters  <walters@verbum.org>
2369
2370         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2371
2372 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2373
2374         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2375         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2376         of defining DBusConnection ourselves.
2377
2378 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2379
2380         * python/dbus.pth: New path file to fix up problems when installing
2381         c libraries to lib64 and python files to lib.
2382
2383         * python/Makefile.am: install dbus.pth in the correct spot
2384
2385 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2386         * ChangeLog: clean up my last entry a bit
2387
2388         * doc/introspect.xsl: New stylesheet for converting introspection data
2389         into browser renderable xhtml. Contributed by Lennart Poettering.
2390
2391         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2392         Poettering.
2393
2394         * doc/dbus-tutorial.xml: 
2395         - Add Colin Walter to the Authors section for authoring the GLib
2396         section
2397         - Add descriptions of the new signature and type functionality
2398         in the Python complex type mapping section
2399         - Add a sidenote on the new args matching functionality in 
2400         the Python bindings
2401         - Fixed up some of the examples to use the gobject.MainLoop
2402         instead of gtk.main
2403         
2404         * python/_dbus.py:
2405         (Bus::_create_args_dict): New. Converts a hash of arg matches
2406         to a more useable format
2407         (Bus::add_signal_receiver): add a **keywords parameter for catching
2408         arg match parameters
2409         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2410         arg match parameters
2411         
2412         * python/matchrules.py:
2413         (MatchTree::exec_matches): Check for arg matches
2414         (SignalMatchRule::add_args_match): New method
2415         (SignalMatchRule::execute): Added args_list parameter as an optimization
2416         so we don't have to marshal the args more than once
2417         (SignalMatchRule::match_args_from_list): New method that checks to see
2418         if the rule's arg matches match an argument list.  Only arguments
2419         set in the rule are checked.
2420         (SignalMatchRule::match_args_from_rule): New method that checks to see
2421         if the rule's arg matches match another rule's.  All args have to match
2422         in order for this method to return true.  If either rule has more args
2423         then it is not a match.
2424         (SignalMatchRule::is_match): Add args match
2425         (SignalMatchRule::repr): Add args to the final output if they exist
2426
2427 2005-08-17  Ross Burton  <ross@burtonini.com>
2428
2429         * glib/dbus-gproxy.c:
2430         (dbus_g_proxy_call_no_reply): unref the message once sent.
2431         (dbus_g_proxy_call): protect against NULL proxy.
2432
2433 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2434
2435         * python/__init__.py: Version updated (0, 43, 0)
2436         
2437         * python/dbus_bindings.pyx: 
2438         - Fixed type objects to have self passed into __init__
2439         - Added the Variant type
2440         - Add the ability to specify types or signatures for Array, Variant 
2441         and Dictionary
2442         (Connection::send_with_reply_handlers): return a PendingCall object
2443         (_pending_call_notification): handle the case when an error is returned 
2444         without an error message in the body
2445         (MessageIter::get_boolean): return True or False instead of an integer
2446         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2447         and add checks for objects with embeded signatures or types (Array, 
2448         Variant and Dictionary)
2449         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2450         (MessageIter::append_dict): handle embeded types or signatures
2451         (MessageIter::append_array): handle embeded types or signatures
2452         (MessageIter::append_variant): new method
2453         
2454         * python/proxies.py:
2455         (DeferedMethod): New. Dummy executable object used when queuing calls 
2456         blocking on introspection data
2457         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2458         or shorter timeouts for method calls
2459         (ProxyObject): Add first pass at an introspection state machine
2460         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2461         introspection. 
2462         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2463         the usual mechanisms for sending messages.  This is to avoid a deadlock
2464         where the Intospect call would be queued waiting for the Introspect 
2465         call to finish ;-)
2466         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2467         when introspection returns with no error
2468         (ProxyObject::_introspect_error_handler): New.  This method is called 
2469         when introspection encounters an error
2470         (ProxyObject::__getattr__): Code to handle different introspection 
2471         states.  Queue async calls or block blocking calls if we are 
2472         introspecting.  Pass through as normal if we are not or are done with 
2473         introspecting.
2474         
2475         * python/service.py: Import signal and method from decorators.py
2476
2477         * python/types.py: Add Variant type
2478
2479 2005-08-16  Colin Walters  <walters@verbum.org>
2480
2481         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2482         DBusError message is NULL.
2483
2484 2005-08-09  Havoc Pennington  <hp@redhat.com>
2485
2486         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2487         malloc'd copy of the name parameter
2488
2489 2005-08-09  Havoc Pennington  <hp@redhat.com>
2490
2491         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2492         warning if the reply serial is set to 0
2493
2494 2005-08-04  Colin Walters  <walters@verbum.org>
2495
2496         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2497         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2498         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2499         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2500         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2501         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2502         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2503         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2504         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2505         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2506         
2507         Prefix name with _ to ensure they're not exported.  All callers
2508         updated.
2509
2510         * glib/dbus-gvalue.c (typecode_to_gtype)
2511         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2512         (signature_iter_to_g_type_dict)
2513         (signature_iter_to_g_type_array)
2514         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2515         (dbus_gtypes_from_arg_signature):
2516         Move to dbus-gsignature.c.
2517
2518         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2519         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2520         (dbus_binding_tool_output_glib_client): Ditto.
2521
2522         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2523         and dbus-gsignature.h
2524
2525         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2526         unused variable.
2527
2528 2005-08-03  Colin Walters  <walters@verbum.org>
2529
2530         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2531         catch any incompatible changes accidentally made.
2532
2533 2005-08-03  Havoc Pennington  <hp@redhat.com>
2534
2535         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2536         typo, from Julien Puydt
2537
2538         * bus/connection.c (bus_connection_disconnected): we were always
2539         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2540
2541 2005-08-01  Colin Walters  <walters@verbum.org>
2542
2543         Patch from Joe Markus Clarke:   
2544         
2545         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2546         use-after-free.
2547
2548 2005-08-01  Colin Walters  <walters@verbum.org>
2549         
2550         Patch from Joe Markus Clarke:   
2551         
2552         * tools/dbus-send.c (main): 
2553         
2554         Don't use C99 style initializers (bug #3933).
2555         
2556 2005-08-01  Colin Walters  <walters@verbum.org>
2557
2558         Patch from Joe Markus Clarke:   
2559
2560         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2561         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2562         * glib/dbus-gobject.c (write_interface):
2563
2564         Don't use C99 style initializers (bug #3933).
2565
2566 2005-07-31  Havoc Pennington  <hp@redhat.com>
2567
2568         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2569         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2570
2571 2005-07-30  Havoc Pennington  <hp@redhat.com>
2572
2573         * fix a bunch of Doxygen warnings and mistakes
2574
2575 2005-07-30  Havoc Pennington  <hp@redhat.com>
2576
2577         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2578         DBUS_BUILD_TESTS since it's now used in production code
2579
2580 2005-07-29  Havoc Pennington  <hp@redhat.com>
2581
2582         * test/glib/test-profile.c (write_junk): initialize the junk
2583         buffer so valgrind doesn't have a breakdown
2584
2585 2005-07-29  Havoc Pennington  <hp@redhat.com>
2586
2587         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2588         (match_rule_matches): remove unused arg
2589         (test_matching): add tests for match_rule_matches()
2590
2591         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2592         do arg0='foo' arg5='bar' in the match rules
2593         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2594
2595         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2596
2597 2005-07-29  Ross Burton  <ross@openedhand.com>
2598
2599         * dbus/dbus-connection.c:
2600         Don't create a DBusCondVar which is never used.
2601
2602 2005-07-27  Ross Burton  <ross@openedhand.com>
2603
2604         * dbus/dbus-message.c:
2605         Reduce the size of the maximum cached message to 10K.
2606
2607 2005-07-25  Ross Burton  <ross@openedhand.com>
2608
2609         * glib/dbus-gproxy.c:
2610         Remove matches when all proxies are unregistered.
2611
2612 2005-07-24  Colin Walters  <walters@verbum.org>
2613
2614         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2615         typedata; recursive arrays won't have it.
2616
2617         * test/glib/test-dbus-glib.c:
2618         * test/glib/test-service-glib.c:
2619         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2620         
2621 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2622
2623         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2624         proxies.py, service.py: Cleanup of code after running it through the
2625         pyflakes code checker mostly dealing with undefined names.  
2626         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2627
2628 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2629
2630         * NEWS: Update to 0.35.2
2631
2632 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2633
2634         * python/_dbus.py: Remove import of the dbus.services
2635         module as it no longer exists (patch from Dimitur Kirov)
2636
2637         * python/service.py (Object::__init__): Fixed typo
2638         s/name/bus_name (patch from Dimitur Kirov)
2639
2640         * python/examples/example-signal-emitter.py: import dbus.glib
2641         to get the main loop and use glib mainloop instead of gtk so
2642         X doesn't have to be running.
2643
2644         * python/examples/example-signal-recipient.py: import dbus.glib
2645         to get the main loop and use glib mainloop instead of gtk so
2646         X doesn't have to be running. Import the decorators module
2647         directly.
2648
2649         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2650         didn't pick up on but are needed to build
2651
2652         * configure.in: upped version to 0.35.2
2653
2654         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2655         added Colin Walters' SELinux API rename patch from head 
2656         s/unix sercurity context/selinux security context/
2657
2658 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2659
2660         * python/Makefile.am: dbus_binding.pxd.in should be included 
2661         in EXTRA_DIST not dbus_binding.pxd
2662         fix up $(srcdir) hopefully for the last time
2663
2664         * NEWS: Update to 0.35.1
2665
2666 2005-07-16  Colin Walters  <walters@verbum.org>
2667
2668         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2669         from bus_driver_handle_get_connection_unix_security_context.  Update for
2670         error usage.
2671         (message_handlers): Update for renames.
2672
2673         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2674         _dbus_string_init failure correctly.
2675         (bus_selinux_append_context): Convert SID to context.  Append it
2676         as a byte array.
2677         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2678         hasn't been called.
2679
2680         * bus/selinux.h: Update prototype.
2681
2682         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2683         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2684
2685 2005-07-15  Colin Walters  <walters@verbum.org>
2686
2687         * doc/TODO: Add note about convenience wrappers.
2688
2689 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2690
2691         * NEWS: Update to 0.35
2692
2693 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2694
2695         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2696         so distcheck doesn't fail
2697
2698         * glib/examples/Makefile.am: Add example-service.xml and 
2699         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2700
2701         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2702         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2703
2704         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2705         compiler looks in the right places during distcheck
2706
2707 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2708
2709         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2710         to fail
2711
2712 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2713
2714         * python/examples/example-service.py,
2715         python/examples/example-signal-emitter.py: Fixed up examples
2716         for API changes
2717
2718 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2719
2720         * python/__init__.py: Upped to version (0,42,0) because of
2721         the API change
2722
2723 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2724
2725         * ChangeLog: fix date in last entry
2726
2727         * configure.in, bus/system.conf.in: add the ability to configure 
2728         the system bus user at compiletime with the --with-dbus-user flag
2729         (patch from Kristof Vansant)
2730
2731 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2732
2733         * bus/dispatch.c, test/test-service.c: Add testcase
2734         for sending messages to oneself (TODO item).
2735
2736         * python/service.py (class Object): Swap ordering of bus_name 
2737         and object_path parameters to better support inheritance.
2738
2739         * doc/dbus-tutorial.xml: change Python docs to reflect change
2740         in parameter ordering and fix the inheritance section.
2741
2742         * doc/TODO: remove sending message to oneself TODO item
2743
2744 2005-07-15  Ross Burton  <ross@openedhand.com>
2745
2746         * glib/dbus-gproxy.c:
2747         Fix a leak when calling methods via the proxy.
2748
2749 2005-07-15  Colin Walters  <walters@verbum.org>
2750
2751         * bus/selinux.c (bus_selinux_append_context): Wrap in
2752         HAVE_SELINUX.
2753
2754 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2755
2756         * python/_dbus.py (Bus::remove_signal_receiver):
2757         don't add a callback to the match if none has been passed in
2758         
2759         * python/matchrules.py (SignalMatchTree::remove): if the rule
2760         being matched does not have a callback treat it as a wildcard
2761         fix matching logic
2762
2763         * doc/dbus-tutorial.xml: Add Python tutorial
2764
2765 2005-07-14  Colin Walters  <walters@verbum.org>
2766
2767         * bus/driver.c
2768         (bus_driver_handle_get_connection_unix_security_context): New function.
2769         (message_handlers): Add.
2770
2771         * bus/selinux.c (bus_selinux_append_context): New function; appends
2772         security context to message.
2773
2774         * bus/selinux.h: Prototype.
2775
2776         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2777
2778 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2779
2780         * bus/activation.c: clean up all tabs to be 8 spaces 
2781         (bus_activation_activate_service): make sure we clean up
2782         if activation fails
2783
2784         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2785         (check_shell_fail_service_auto_start): New function
2786         tests to make sure we get fail properly when trying to auto start a service
2787         with a faulty command line
2788         (check_shell_service_success_auto_start): New function tests to make sure
2789         auto started services get the arguments on the command line
2790
2791         * test/test-shell-service.c: Added service for testing auto-starting with 
2792         command line arguments
2793
2794         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2795         test/data/valid-service-files/debug-shell-echo-success.service.in:
2796         Added service files for testing auto-starting with command line arguments
2797
2798         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2799
2800 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2801
2802         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2803         
2804         * dbus/Makefile.am: added new files to build.
2805
2806         * bus/activation.c (bus_activation_activate_service): support
2807         activation commands with parameters.
2808
2809         * test/shell-test.c: added test program for the shell parsing
2810         code.
2811
2812 2005-07-13  David Zeuthen  <davidz@redhat.com>
2813
2814         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2815         64 bit signed and unsigned parameters
2816
2817 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2818
2819         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2820
2821         * python/service.py (class Name): renamed BusName to make it clearer
2822         what the object is for (a name on the bus)
2823
2824         * python/examples/example-service.py,
2825         python/examples/example-signal-emitter.py: change the Name object to
2826         BusName
2827
2828 2005-07-12  Colin Walters  <walters@verbum.org>
2829
2830         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2831
2832         * tools/dbus-launch.c: Include sys/select.h.
2833
2834 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2835         * python/dbus_bindings.pyx.in: removed
2836
2837         * python/dbus_bindings.pyx: Added.
2838         - Fixed some memleaks (patch from 
2839         Sean Meiners <sean.meiners@linspireinc.com>)
2840         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2841         own pxd file (Pyrex definition)
2842         - Broke out glib dependancies into its own pyx module
2843         
2844         * python/dbus_bindings.pdx: Added.
2845         - Defines C class Connection for exporting to other modules
2846
2847         * python/dbus_glib_bindings.pyx: Added.
2848         - New module to handle lowlevel dbus-glib mainloop integration
2849
2850         * python/glib.py: Added.
2851         - Registers the glib mainloop when you import this module
2852
2853         * python/services.py: Removed (renamed to service.py)
2854         
2855         * python/service.py: Added.
2856         - (class Server): renamed Name
2857
2858         * python/__init__.py: Bump ro version (0,41,0)
2859         -don't import the decorators or service module
2860         by default.  These now reside in the dbus.service namespace
2861
2862         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2863         setup function on creation 
2864
2865         * python/examples/example-service.py,
2866         python/examples/example-signal-emitter.py: update examples
2867
2868         * python/examples/gconf-proxy-service.py,
2869         python/examples/gconf-proxy-service2.py: TODO fix these up
2870
2871         * doc/TODO: Addition
2872         - Added a Python Bindings 1.0 section
2873         - added "Add match on args or match on details to match rules"
2874
2875
2876 2005-07-12  Colin Walters  <walters@verbum.org>
2877
2878         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2879         (statemachine-glue.h): 
2880         * glib/examples/Makefile.am (example-service-glue.h) 
2881         (example-signal-emitter-glue.h): 
2882         * glib/Makefile.am (dbus-glib-error-switch.h): 
2883         Add libtool --mode=execute so we use the built library instead
2884         of any installed one.
2885
2886 2005-07-11  Colin Walters  <walters@verbum.org>
2887
2888         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2889         (dbus_g_value_types_init): Remove assertion.
2890         (dbus_g_value_get_g_type, dbus_g_value_open)
2891         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2892         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2893         functions related to DBusGValue.  Now we marshal/demarshal
2894         structures as GValueArray.
2895         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2896         structures.
2897         (signature_iter_to_g_type_array): Don't call
2898         signature_iter_to_g_type_struct.
2899         (signature_iter_to_g_type_struct): Delete.
2900         (dbus_gvalue_to_signature): Delete.
2901         (dbus_gvalue_to_signature): New function with same name as other
2902         one; we can convert structures to signatures.
2903         (demarshal_valuearray): New function.
2904         (get_type_demarshaller): Use it.
2905         (demarshal_recurse): Delete.
2906         (marshal_proxy): New function.
2907         (marshal_map): Warn if we can't determine signature from type.
2908         (marshal_collection_ptrarray): Ditto.
2909         (marshal_collection_array): Ditto.
2910         (get_type_marshaller): Use marshal_valuearray.
2911         (marshal_recurse): Delete.
2912         (_dbus_gvalue_test): Add some tests.
2913
2914         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2915         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2916         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2917         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2918         (dbus_g_value_free): Remove prototypes.
2919
2920         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2921         G_TYPE_VALUE_ARRAY.
2922
2923         * glib/examples/example-service.c:
2924         * glib/examples/example-client.c: Implement GetTuple.
2925
2926         * test/glib/test-dbus-glib.c:
2927         * test/glib/test-service-glib.c:
2928         * test/glib/test-service-glib.xml: Add structure tests.
2929
2930 2005-07-10  Colin Walters  <walters@verbum.org>
2931
2932         * doc/TODO: Knock off some GLib items with this patch.
2933
2934         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2935         (_dbus_gvalue_signals_error): New functions.
2936
2937         * glib/dbus-gvalue-utils.h: Prototype them.
2938
2939         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2940         and change to not output const/retval flags for input args.  All
2941         callers updated.
2942         (invoke_object_method): Refactor to handle return values.  Add
2943         some more comments in various places.  Remove debug g_print.
2944
2945         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2946
2947         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2948         Handle G_TYPE_NONE.
2949         (compute_gsignature): New function; refactored from code from
2950         compute_marshaller and compute_marshaller_name.  Enhance to
2951         handle return values and async ops more cleanly.  Update for
2952         async ops returning NONE instead of BOOLEAN.
2953         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2954         and output appropriate string.
2955         (generate_glue): Handle return value annotation.  Also don't dump
2956         constness flag for input arguments.
2957
2958         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2959         files shared between installed library and utilities.
2960         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2961         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2962         binding tool can access gtype utility functions.
2963
2964         * test/glib/test-service-glib.c: 
2965         * test/glib/test-service-glib.xml: 
2966         * test/glib/test-dbus-glib.c: Add some tests for return values.
2967
2968 2005-07-09  Colin Walters  <walters@verbum.org>
2969
2970         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2971         argument if available, not method.
2972
2973         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2974         (invoke_object_method): First, remove some redundant
2975         GValues (object_value, error_value) in favor of working on
2976         array directly.  Second, rework constness to be less buggy.
2977         Now we iterate directly over the argument metadata instead
2978         of parallel iterating over output signature and metadata.
2979
2980         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2981
2982         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2983         annotation on input args.
2984         
2985 2005-07-09  Colin Walters  <walters@verbum.org>
2986
2987         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2988         Define.
2989
2990         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2991         annotation.
2992
2993         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2994         (method_dir_signature_from_object_info): Handle arg_iterate change.
2995         (write_interface): Ditto.
2996         (lookup_object_info): Don't barf if format_version is > 0.
2997         (invoke_object_method): Handle arg constness.
2998
2999         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3000         (arg_info_new): Create.
3001         (arg_info_unref): Destroy.
3002         (arg_info_get_annotations, arg_info_get_annotation) 
3003         (arg_info_add_annotation): New functions.
3004
3005         * glib/dbus-gidl.h: Prototype them.
3006
3007         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3008         args, disallow them in properties.
3009         (parse_annotation): Handle arg annotations.
3010
3011         * test/glib/test-service-glib.xml: 
3012         * test/glib/test-service-glib.c: Update to make some methods
3013         const.
3014
3015 2005-07-08  Colin Walters  <walters@verbum.org>
3016
3017         * test/glib/test-service-glib.xml: 
3018         * test/glib/test-service-glib.c:
3019         * test/glib/test-dbus-glib.c: Test a{sv}.
3020
3021         * glib/examples/statemachine/statemachine.c:
3022         * glib/examples/statemachine/statemachine-server.c:
3023         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3024         add progress bar, etc.
3025
3026         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3027         needed anymore due to generic array/map marshalling.
3028         (dbus_g_value_types_init): Don't register basic arrays or the
3029         string/string hash.
3030         (dbus_gtype_from_signature_iter): Don't try to recurse into
3031         variants.
3032         (dbus_gtype_to_signature): Check collection/map before type
3033         metadata.
3034         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3035         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3036         generic map creation/append functions instead of hash table
3037         specifically.
3038         (get_type_demarshaller): Handle maps.
3039         (demarshal_collection): Dispatch on collection type to either
3040         demarshal_collection_ptrarray or demarshal_collection_array.
3041         (get_type_marshaller): Handle maps.
3042         (marshal_collection): Dispatch collection type to either
3043         marshal_collection_ptrarray or marshal_collection_array.
3044         (_dbus_gvalue_test): New test.
3045
3046         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3047         (hash_free_from_gtype): Use it to free GValues.
3048         (hashtable_append): New function.
3049         (ptrarray_append): Fix prototype.
3050         (slist_append): Ditto.
3051         (_dbus_gvalue_utils_test): Extend tests.
3052
3053         * glib/dbus-gtype-specialized.c
3054         (dbus_g_type_specialized_init_append): Renamed from
3055         dbus_g_type_specialized_collection_init_append.  Remove const from
3056         value, since we steal it.
3057         (dbus_g_type_specialized_map_append): New function.
3058
3059         * glib/dbus-gtype-specialized.h: Update prototypes.
3060         Add DBusGTypeSpecializedMapAppendFunc.
3061
3062         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3063         _dbus_gvalue_test.
3064         
3065         * glib/dbus-gtest.h: Prototype it.
3066
3067 2005-07-08  Ross Burton  <ross@openedhand.com>
3068
3069         * dbus/dbus-glib.h:
3070         Add DBysGAsyncData for the async bindings.
3071
3072         * glib/dbus-binding-tool-glib.c:
3073         Re-enable the async bindings.
3074
3075         * test/glib/test-dbus-glib.c:
3076         Add a test for the generated async bindings.
3077
3078 2005-07-08  Colin Walters  <walters@verbum.org>
3079
3080         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3081         connection concept.
3082         
3083 2005-07-08  Colin Walters  <walters@verbum.org>
3084         
3085         * tools/Makefile.am: Kill of print-introspect in favor of using
3086         dbus-send --print-reply=literal.
3087
3088         * test/glib/test-service-glib.xml: 
3089         * test/glib/test-service-glib.c (my_object_get_objs): New test
3090         for "ao".
3091
3092         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3093         (main): Test GetObjs.
3094
3095         * glib/examples/statemachine/Makefile.am:
3096         * glib/examples/statemachine/sm-marshal.list:
3097         * glib/examples/statemachine/statemachine-client.c:
3098         * glib/examples/statemachine/statemachine-server.c:
3099         * glib/examples/statemachine/statemachine-server.xml:
3100         * glib/examples/statemachine/statemachine.c:
3101         * glib/examples/statemachine/statemachine.h:
3102         * glib/examples/statemachine/statemachine.xml:
3103
3104         New example.
3105
3106         * glib/examples/example-service.c (main): Move invocation
3107         of dbus_g_object_type_install_info earlier, to emphasize it
3108         should only be done once.
3109
3110         * glib/examples/example-signal-emitter.c (main): Ditto.
3111
3112         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3113
3114         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3115         (dbus_gvalue_marshal): Update prototypes.
3116
3117         * glib/dbus-gvalue.c: Update all marshalling functions to take
3118         const GValue instead of GValue.
3119         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3120         types.
3121         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3122         change.
3123         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3124         Return a newly-allocated string.
3125         (demarshal_proxy, demarshal_object_path, demarshal_object)
3126         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3127         we get the wrong types from message.
3128         (get_type_demarshaller): New function, extracted from
3129         dbus_gvalue_demarshal.
3130         (demarshal_collection): New function, demarshals generic
3131         collection.
3132         (dbus_gvalue_demarshal): Just invoke result of
3133         get_type_demarshaller.  Throw error if we don't have one.
3134         (marshal_garray_basic): Abort on OOM.
3135         (get_type_marshaller): New function, extracted from
3136         dbus_gvalue_marshal.
3137         (collection_marshal_iterator, marshal_collection): New functions;
3138         implements generic marshalling for an iteratable specialized
3139         collection.
3140         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3141
3142         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3143         G_TYPE_STRING.
3144         (ptrarray_value_from_gvalue): Ditto.
3145         (ptrarray_append, ptrarray_free): New functions.
3146         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3147         (slist_append, slist_end_append, slist_free): New functions.
3148         (dbus_g_type_specialized_builtins_init): Add append fuctions
3149         for GPtrArray and GSList.  Register GSList.
3150         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3151
3152         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3153         New.
3154         (dbus_g_type_specialized_collection_init_append)
3155         (dbus_g_type_specialized_collection_append)
3156         (dbus_g_type_specialized_collection_end_append): Prototype.
3157         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3158         end_append_func.
3159
3160         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3161         (dbus_g_type_specialized_collection_append) 
3162         (dbus_g_type_specialized_collection_end_append): New functions.
3163         (dbus_g_type_map_value_iterate): Take const GValue.
3164         (dbus_g_type_collection_value_iterate): Ditto.
3165
3166         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3167         _dbus_gvalue_utils_test.
3168         
3169         * glib/dbus-gtest.h: Prototype it.
3170
3171         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3172         using uninitialized owner_list.
3173         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3174         public API.
3175         (dbus_g_proxy_end_call_internal): Update to use error set
3176         from dbus_gvalue_demarshal instead of setting it here.
3177         (dbus_g_proxy_begin_call): Move return_if_fail here.
3178
3179         * glib/dbus-gobject.c (write_interface): Update for
3180         dbus_gtype_to_signature returning new string.
3181
3182         * configure.in: Add glib/examples/statemachine.
3183
3184 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3185
3186         * configure.in: Add a configure option, --with-console-auth-dir
3187         
3188         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3189         new setting.  Patch from Kay Sievers.
3190
3191 2005-07-06  Colin Walters  <walters@verbum.org>
3192
3193         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3194         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3195         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3196         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3197         Delete in favor of dbus_g_proxy_begin_call and
3198         dbus_g_proxy_cancel_call.
3199         (DBusGProxyCall, DBusGProxyCallNotify): New.
3200         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3201         data, and destroy function.  This replaces
3202         dbus_g_pending_call_set_notify.
3203         (dbus_g_proxy_cancel_call): Prototype.
3204         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3205
3206         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3207         pending_calls map.
3208         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3209         internal proxy for calls to the bus. Remove
3210         pending_nameowner_calls, now the internal proxy keeps track.
3211         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3212         pending_nameowner_calls.
3213         (got_name_owner_cb): Update prototype, and use
3214         dbus_g_proxy_end_call.
3215         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3216         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3217         favor of using internal proxy.
3218         (dbus_g_proxy_manager_unregister): Update to use
3219         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3220         (dbus_g_proxy_init): Initialize pending calls map.
3221         (dbus_g_proxy_constructor): New.
3222         (dbus_g_proxy_class_init): Add get/set property functions,
3223         constructor, and add NAME, PATH, and INTERFACE properties.
3224         (cancel_pending_call): New function.
3225         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3226         cancel them.
3227         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3228         (GPendingNotifyClosure): New structure.
3229         (d_pending_call_notify, d_pending_call_free): Moved here from
3230         dbus-glib.c.
3231         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3232         ordering.
3233         (manager_begin_bus_call): New internal function for talking to
3234         internal bus proxy.
3235         (dbus_g_proxy_new): Construct object using GObjet properties.
3236         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3237         Create closure of same, and insert call into map of pending calls.
3238         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3239         call.  Look up pending call in current set.  Remove it when we've
3240         completed.
3241         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3242         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3243         and destroy function directly.
3244         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3245         (dbus_g_proxy_call): Invoke with NULL callback.
3246         (dbus_g_proxy_cancel_call): New function, replaces
3247         dbus_g_pending_call_cancel.
3248
3249         * glib/dbus-gparser.c (validate_signature): Fix call to
3250         dbus_set_g_error.
3251
3252         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3253         New quark for attaching metadata to GType.
3254         (info_hash): Delete.
3255         (lookup_object_info): Look up using quark.
3256         (dbus_g_object_type_install_info): Check that a type is classed,
3257         not that it's an object.  Also just install type data using quark
3258         instead of using global hash.
3259
3260         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3261         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3262         (GPendingNotifyClosure): Delete.
3263         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3264         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3265
3266         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3267         client method generation until we can fix it...
3268         
3269         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3270         (load_from_service_thread_func): Ditto.
3271
3272         * tools/dbus-names-model.c (struct NamesModel): Hold
3273         DBusGProxyCall.
3274         (have_names_notify): Update prototype, use
3275         dbus_g_proxy_cancel_call.
3276         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3277
3278         * tools/dbus-monitor.c (filter_func): Update for print_message
3279         API change.
3280
3281         * test/glib/test-dbus-glib.c: Add more tests for async
3282         invocations.  Update many begin_call/end_call pairs to just use
3283         dbus_g_proxy_call.
3284
3285         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3286         allows us to dump print-introspect.c.
3287
3288         * tools/dbus-print-message.h (print_message): Add literal argument
3289         to print_message which is intended to allow printing arguments without
3290         metadata like "string=".
3291
3292         * tools/dbus-print-message.c (print_iter): Add literal argument.
3293         (print_message): Allow printing string messages literally.
3294
3295 2005-07-05  Colin Walters  <walters@verbum.org>
3296
3297         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3298         Remove value refcount leak, original patch from Jorn Baayen
3299         <jorn@openedhand.com>.  Also remove useless extra value in favor
3300         of prepending to value array directly.
3301
3302 2005-07-02  Colin Walters  <walters@verbum.org>
3303
3304         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3305
3306 2005-07-01  Colin Walters  <walters@verbum.org>
3307
3308         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3309         
3310         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3311         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3312         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3313         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3314
3315 2005-06-30  Colin Walters  <walters@verbum.org>
3316
3317         * test/glib/test-dbus-glib.c:
3318         * test/glib/test-service-glib.c:
3319         * test/glib/test-service-glib.xml: Update tests for new error
3320         setting bits, also add async tests (patch from Ross Burton).
3321
3322         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3323         DBUS_GLIB_THREADS_LIBS.
3324
3325         * glib/dbus-gproxy.c (get_name_owner)
3326         (dbus_g_pending_call_end_valist): Ditto.
3327
3328         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3329         domain (GQuark) to DBusGErrorInfo.  
3330         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3331         quark in error_metadata.  Take message interface as default
3332         error message interface.
3333         (gerror_to_dbus_error_message): Pass message interface.
3334         (dbus_set_g_error): Resurrected.
3335         (dbus_g_error_info_free): New function.
3336         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3337         of _peek to actually create the object class if it hasn't been
3338         created yet.
3339         (dbus_g_error_domain_register): New function.
3340
3341         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3342
3343         * glib/dbus-gparser.c (validate_signature): Ditto.
3344
3345         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3346         (dbus_g_error_domain_register): Prototype.
3347
3348         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3349         Update tests.
3350
3351 2005-06-29  Colin Walters  <walters@verbum.org>
3352
3353         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3354         DBUS_TYPE_G_OBJECT_PATH.
3355
3356         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3357         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3358         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3359         (dbus_g_object_path_get_g_type): New function.
3360         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3361         to DBUS_TYPE_G_OBJECT_PATH by default.
3362         (demarshal_proxy): Remove unused name variable.
3363         (demarshal_object_path, marshal_object_path): New functions.
3364         (demarshal_proxy_array, marshal_proxy_array): Delete.
3365         
3366         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3367         DBUS_TYPE_G_OBJECT_PATH to char *.
3368         (dbus_g_type_get_lookup_function): Map builtin
3369         DBUS_TYPE_G_OBJECT_PATH.
3370
3371         * test/glib/test-dbus-glib.c
3372         * test/glib/test-service-glib.c (my_object_objpath): 
3373         Adapt tests to new object path marshalling.
3374
3375 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3376
3377         * configure.in: force check for Python >= 2.4
3378
3379 2005-06-29  Colin Walters  <walters@verbum.org>
3380         
3381         Patch from Ross Burton <ross@openedhand.com>
3382         
3383         * glib/dbus-gobject.c (invoke_object_method): Unset object
3384         value in all cases, not only in async case.
3385
3386 2005-06-29  Colin Walters  <walters@verbum.org>
3387
3388         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3389         name_call for keeping track of any outgoing GetNameOwner call.
3390         Also add for_owner and associated.
3391         (struct _DBusGProxyManager): Add owner_names, which is hash table
3392         that maps a base name to a list of names it owns (that we're
3393         interested in).  Add pending_nameowner_calls which is a list of
3394         all outstanding GetNameOwner; avoids us having to iterate over
3395         every proxy.  Add unassociated_proxies which keeps track of name
3396         proxies with no associated name owner.
3397         (dbus_g_proxy_manager_unref): Destroy owner_names.
3398         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3399         name refcounts.
3400         (find_name_in_info, name_owner_foreach)
3401         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3402         (dbus_g_proxy_manager_monitor_name_owner)
3403         (dbus_g_proxy_manager_unmonitor_name_owner)
3404         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3405         New functions; they manipulate the owner_names mapping.
3406         (got_name_owner_cb): New function.
3407         (get_name_owner): New function, extracted from
3408         dbus_g_proxy_new_for_name_owner.
3409         (dbus_g_proxy_manager_register): For now we need to keep track of
3410         all NameOwnerChanged.  Also if the proxy is for a name, if we
3411         don't already know the name owner, queue a new GetNameOwner
3412         request and add it to our list of unassociated proxies.  Otherwise
3413         inc the refcount.
3414         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3415         cancel any pending GetNameOwner call, etc.
3416         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3417         the owner_names mapping to look up the current names for the
3418         signal source, and dispatch to any proxies for that name.
3419         (dbus_g_proxy_new): Initialize new members.
3420         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3421         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3422         (dbus_g_pending_call_end_valist): New function, extracted from
3423         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3424         but want to use the GLib infrastructure.  Also note how many
3425         arguments in reply were over.
3426         (dbus_g_pending_call_end): New function, just call
3427         dbus_g_pending_call_end_valist.
3428         (dbus_g_proxy_end_call_internal): Just call
3429         dbus_g_pending_call_end_valist.
3430
3431         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3432         of builtin marshaller for STRING_STRING_STRING.
3433
3434         * test/glib/test-dbus-glib.c: 
3435         * test/glib/test-service-glib.c:
3436         * test/glib/test-service-glib.xml:
3437         Extend tests to cover name proxies, destruction of owner proxies,
3438         etc.
3439         
3440         * glib/examples/example-signal-recipient.c
3441         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3442         
3443         * tools/dbus-send.c (main): Print D-BUS error name in addition
3444         to message.
3445
3446 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3447
3448         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3449         cmessage_function_handler): Patch from 
3450         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3451         by using the Py_GILState_Ensure/Release to synchronize with the
3452         python runtime.
3453         
3454 2005-06-28  Ray Strode  <rstrode@redhat.com>
3455
3456         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3457         babysitter helper process on last unref, bug #2813.
3458
3459 2005-06-27  Colin Walters  <walters@verbum.org>
3460
3461         * test/glib/test-dbus-glib.c: 
3462         * test/glib/test-service-glib.c:
3463         * test/glib/test-service-glib.xml:
3464         Test hash table signal emitting.
3465
3466         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3467         types to their fundamental basis types, since this is what
3468         marshallers operate on.  Also add an entry for VOID__BOXED.
3469         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3470
3471 2005-06-26  Havoc Pennington  <hp@redhat.com>
3472
3473         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3474         from Don Park
3475
3476 2005-06-26  Colin Walters  <walters@verbum.org>
3477
3478         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3479         (dbus_g_error_set): New public function from its ashes; used by
3480         both service-side method implementation and GLib bindings
3481         internals.
3482         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3483         (_dbus_glib_test): Add some tests.
3484
3485         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3486
3487         * test/glib/test-service-glib.c (my_object_throw_error): Use
3488         dbus_g_error_set.
3489
3490         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3491         errors thrown by dbus_g_error_set.
3492
3493         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3494
3495         * glib/dbus-gparser.c (validate_signature): Ditto.
3496
3497         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3498         (dbus_g_proxy_end_call_internal): Ditto.
3499
3500         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3501         converts DBUS_ERROR_x to DBUS_GERROR_x.
3502         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3503
3504         * doc/TODO: Remove error TODO.
3505
3506         * doc/dbus-tutorial.xml: Update with documentation about error
3507         handling.
3508
3509         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3510         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3511         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3512
3513 2005-06-22  Colin Walters  <walters@verbum.org>
3514         
3515         Patch from Ross Burton <ross@openedhand.com>
3516
3517         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3518
3519 2005-06-20  Colin Walters  <walters@verbum.org>
3520
3521         * configure.in: Add glib/examples.
3522
3523         * glib/Makefile.am: Add examples/
3524
3525         * glib/examples/.cvsignore
3526         * glib/examples/Makefile.am
3527         * glib/examples/example-client.c
3528         * glib/examples/example-service.c
3529         * glib/examples/example-service.xml
3530         * glib/examples/example-signal-emitter.c
3531         * glib/examples/example-signal-emitter.xml
3532         * glib/examples/example-signal-recipient.c:
3533         New files; GLib binding examples, ported from
3534         python/examples.
3535
3536 2005-06-20  Colin Walters  <walters@verbum.org>
3537
3538         * dbus/dbus-glib.h: 
3539         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3540         dbus_g_proxy_call.
3541
3542         * glib/dbus-binding-tool-glib.c: 
3543         * doc/dbus-tutorial.xml: 
3544         * test/glib/test-dbus-glib.c: Update for rename.
3545         
3546 2005-06-20  Colin Walters  <walters@verbum.org>
3547
3548         Patch suggested by Ross Burton <ross@openedhand.com>
3549
3550         * glib/dbus-gobject.c (export_signals): Free signal name.
3551         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3552         memory leak.  Add a bit of documentation.
3553         (dbus_g_method_return_error): Free context, and note we do
3554         so.
3555
3556 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3557
3558         * dbus/dbus-glib.h:
3559         * glib/dbus-gobject.c:
3560         * glib/dbus-gproxy.c:
3561         * glib/dbus-gvalue.c: Predeclare structs as 
3562         typedef struct _Something Something instead of 
3563         typedef struct Something Something, so we can 
3564         redeclare the prototypes. Other GNOME libraries 
3565         do this already.
3566
3567 2005-06-17  Colin Walters  <walters@verbum.org>
3568
3569         * tools/dbus-names-model.c (have_names_notify): Fix call
3570         to dbus_g_proxy_end_call.
3571         
3572 2005-06-17  Colin Walters  <walters@verbum.org>
3573
3574         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3575         spew warnings if we get malformed remote signals.
3576
3577         * glib/dbus-gobject.c (propsig_iterate): New function.
3578         (lookup_object_info): New function, extracted from
3579         lookup_object_and_method.
3580         (introspect_properties, introspect_signals): Delete; these
3581         are merged into write_interface.
3582         (write_interface): Write out signals and properties here;
3583         dump the org.gtk.object stuff and use the interface given
3584         in the introspection data blob.  Also fix up property XML.
3585         (lookup_values): New function.
3586         (introspect_interfaces): Gather a mapping from interface to a
3587         list of its methods, signals, and properties, then write out
3588         each interface.
3589         (lookup_object_and_method): Use lookup_object_info.
3590         (struct DBusGSignalClosure): Add interface.
3591         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3592         we can just use the constant data.
3593         (dbus_g_signal_closure_finalize): Don't free signal name.
3594         (signal_emitter_marshaller): Use interface from signal closure.
3595         (export_signals): Only export signals mentioned in introspection
3596         blob.
3597         (dbus_g_connection_register_g_object): Warn if we have no
3598         introspection data for an object.
3599         (funcsig_equal): Remove unused variable.
3600         (dbus_g_object_register_marshaller): Take varargs instead of
3601         list.
3602         (dbus_g_object_register_marshaller_array): New function,
3603         extracted from old dbus_g_object_register_marshaller.
3604
3605         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3606         signals and property data.
3607         (write_quoted_string): New function, extracted from generate_glue.
3608         (generate_glue): Write signals and properties to introspection
3609         blob.
3610
3611         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3612         exported_signals and exported_properties.
3613         (dbus_g_object_register_marshaller): Update prototype.
3614         (dbus_g_object_register_marshaller_array): Prototype.
3615         
3616         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3617
3618         * test/glib/test-service-glib.c: Add new test signals and method
3619         to emit them.
3620
3621         * test/glib/test-service-glib.xml: Add some test signals.
3622
3623         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3624         and my-object-marshal.h
3625         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3626         my-object-marshal.c.
3627         (my-object-marshal.c, my-object-marshal.h): Implement.
3628
3629         * test/glib/.cvsignore: Update.
3630
3631         * doc/TODO: Remove two GLib TODO items fixed by this
3632         patch.
3633
3634 2005-06-16  Colin Walters  <walters@verbum.org>
3635
3636         * doc/TODO: Update for GLib bindings.
3637         
3638 2005-06-16  Colin Walters  <walters@verbum.org>
3639
3640         * glib/dbus-binding-tool-glib.c:
3641         * glib/dbus-gobject.c:
3642         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3643         from Ross Burton, for his GLib bindings work.
3644
3645 2005-06-16  Colin Walters  <walters@verbum.org>
3646
3647         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3648         to iterate instead of walking to G_TYPE_INVALID.
3649
3650         Patch based on a patch from Ryan Gammon.
3651
3652 2005-06-16  Colin Walters  <walters@verbum.org>
3653
3654         * bus/bus.c (bus_context_new): Set parser to NULL
3655         after we unref it (Patch from Chris Boscolo, #2174).
3656         
3657 2005-06-16  Colin Walters  <walters@verbum.org>
3658
3659         * python/dbus_bindings.pyx.in: Import size_t,
3660         __int64_t, __uint64_t, and __signed.
3661
3662         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3663         Define cmsg struct, output it.
3664         (_dbus_read_credentials_unix_socket):
3665         Use cmsg struct.
3666         
3667         Patch from Joe Markus Clarke for FreeBSD support.
3668         
3669 2005-06-16  Colin Walters  <walters@verbum.org>
3670
3671         * tools/dbus-send.c (append_array): Use strtok.
3672         (append_dict): New function.
3673         (type_from_name): New function, extracted from main.
3674         (main): Handle sending dicts.
3675
3676         * tools/dbus-print-message.c (print_iter): Print dict
3677         entries.
3678         
3679 2005-06-16  Colin Walters  <walters@verbum.org>
3680
3681         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3682         values as the empty string (#2948).
3683         
3684 2005-06-16  Colin Walters  <walters@verbum.org>
3685
3686         * dbus/Makefile.am:
3687         * mono/doc/Makefile.am:
3688         * test/glib/Makefile.am:
3689
3690         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3691
3692 2005-06-16  Colin Walters  <walters@verbum.org>
3693
3694         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3695         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3696
3697         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3698         Increment pointer after swapping fixed array.  Add assertion
3699         for array length.
3700                 
3701 2005-06-15  Colin Walters  <walters@verbum.org>
3702
3703         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3704         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3705         
3706 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3707
3708         * NEWS: Update to 0.34
3709
3710 2005-06-15  David Zeuthen  <davidz@redhat.com>
3711
3712         * configure.in (LT_CURRENT): Revert back to 1 as the library
3713         hasn't changed and we've certainly not committed to protocol
3714         stability yet.  All this does is to break ABI. See commit note
3715         from hp@redhat.com 2005-05-05 for details.
3716         
3717 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3718
3719         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3720         (_dbus_connection_run_builtin_filters): New method
3721         (dbus_connection_dispatch): Run the builtin filters which in turn
3722         runs the peer filter which handles Ping messages.
3723
3724         * doc/TODO: 
3725          - Ping isn't handled: This patch fixes it
3726          
3727          - Add a test case for the Ping message: added TODO item
3728
3729 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3730
3731         * dbus/dbus-message.c:
3732         (dbus_message_has_path): New method
3733         (dbus_message_has_interface): New method
3734         (dbus_message_has_member): New method
3735
3736         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3737         New method
3738
3739         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3740         the keyring directory is private to the user
3741
3742         * doc/TODO:
3743          - The convenience functions in dbus-bus.h should perhaps have
3744          the signatures that they would have if they were autogenerated
3745          stubs. e.g. the acquire service function. We should also evaluate
3746          which of these functions to include, in light of the fact that
3747          GLib/Qt native stubs will probably also exist.: Punted
3748
3749          - add dbus_message_has_path(), maybe has_member/interface:
3750          fixed in this patch
3751
3752          - in dbus-keyring.c, enforce that the keyring dir is not
3753          world readable/writable: Fixed in this patch
3754
3755 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3756
3757         * dbus/dbus-marshal-validate.h: Added a new validation
3758         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3759         out of memory errors when validating signitures
3760
3761         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3762         in places where we previously used DBUS_VALID and a FALSE return 
3763         value to indicate OOM
3764         
3765         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3766         Use a stack to track the number of elements inside containers.  The 
3767         stack values are then used to validate that dict entries have only two
3768         elements within them.
3769         (validate_body_helper): check the reason for failure when validating
3770         varients
3771         
3772         * dbus/dbus-message.c (load_message): use 
3773         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3774         DBUS_VALID and a FALSE return value to indicate OOM
3775
3776         * doc/TODO: remove "- validate dict entry number of fields" as this
3777         patch fixes it
3778
3779 2005-06-14  David Zeuthen  <davidz@redhat.com>
3780
3781         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3782         watches (if applicable) and add new watches
3783
3784         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3785         (main): Setup SIGIO signal handler if using D_NOTIFY
3786
3787         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3788
3789         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3790         (merge_included): Also merge conf_dirs list
3791         (bus_config_parser_unref): Clear conf_dirs list
3792         (include_dir): Add directory to conf_dirs list
3793         (bus_config_parser_get_conf_dirs): New function
3794
3795         * bus/dir-watch.[ch]: New files
3796
3797         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3798
3799         * configure.in: Add checks for D_NOTIFY on Linux
3800
3801 2005-06-14  Colin Walters  <walters@verbum.org>
3802
3803         * glib/dbus-binding-tool-glib.c:
3804         * glib/dbus-gobject.c:
3805         * glib/dbus-gvalue.c: Fix indentation and brace style.
3806         
3807 2005-06-14  Ross Burton <ross@openedhand.com>.
3808
3809         * glib/dbus-glib.h: Make DBusGMethodInvocation
3810         a private structure.  Rearrange prototypes a bit.
3811         
3812         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3813         documentation for first_arg_type.
3814         
3815         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3816         here, add documentation.  Move dbus_g_method_return
3817         and dbus_g_method_return_error into public API
3818         section.
3819
3820 2005-06-14  Colin Walters  <walters@verbum.org>
3821
3822         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3823         Add missing return statements, noticed by Ross Burton.
3824         
3825 2005-06-13  Ross Burton <ross@openedhand.com>.
3826
3827         * glib/dbus-gobject.c: Handle errors on message
3828         demarshalling by sending error message back.
3829         * glib/dbus-gvalue.c: Initialize return variables.
3830
3831 2005-06-13  Colin Walters  <walters@verbum.org>
3832
3833         * glib/Makefile.am: Fix thinko in last patch.
3834
3835 2005-06-13  Colin Walters  <walters@verbum.org>
3836
3837         * glib/Makefile.am: Move dbus-gtype-specialized.c
3838         and dbus-gtype-specialized.h into a _HEADERS variable,
3839         install them.
3840
3841 2005-06-12  Colin Walters  <walters@verbum.org>
3842
3843         Async signals and various bugfixes and testing by
3844         Ross Burton <ross@openedhand.com>.
3845
3846         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3847         (dbus_gvalue_genmarshal_name_from_type)
3848         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3849         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3850         (dbus_g_value_types_init, dbus_gtype_from_signature)
3851         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3852         (dbus_gtypes_from_arg_signature): New function prototypes.
3853         (dbus_gvalue_demarshal): Take context and error arguments.
3854         (dbus_gvalue_demarshal_variant): New function.
3855         (dbus_gvalue_demarshal_message): New function.
3856         (dbus_gvalue_store): Delete.
3857
3858         * glib/dbus-gvalue.c:
3859
3860         File has been almost entirely rewritten; now we special-case
3861         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3862         hash tables correctly, etc.  Full support for recursive values
3863         is not yet complete.
3864
3865         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3866         argument of signal to G_TYPE_POINTER since we now pass a
3867         structure.
3868         (lookup_g_marshaller): Delete in favor of
3869         _dbus_gobject_lookup_marshaller.
3870         (marshal_dbus_message_to_g_marshaller): Use
3871         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3872         to handle remote signal callbacks.
3873         (dbus_g_proxy_new_from_proxy): New function; creates a new
3874         DBusGProxy by copying an existing one.
3875         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3876         (dbus_g_proxy_get_path): New functions.
3877         (dbus_g_proxy_marshal_args_to_message): New function;
3878         factored out of existing code.
3879         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3880         from a varargs array.
3881         (dbus_g_proxy_begin_call_internal): New function.
3882         (dbus_g_proxy_end_call_internal): New function.
3883         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3884         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3885         after collecting args into value array.
3886         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3887         invoke dbus_g_proxy_end_call_internal.
3888         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3889         end_call_internal.
3890         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3891         types.
3892         (array_free_all): New function.
3893         (dbus_g_proxy_add_signal): Take GTypes.
3894
3895         * glib/dbus-gobject.h:
3896         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3897         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3898         Prototype.
3899
3900         * glib/dbus-gobject.c: Add a global marshal_table hash which
3901         stores mappings from type signatures to marshallers.  Change lots
3902         of invocations of dbus_gtype_to_dbus_type to
3903         dbus_gtype_to_signature.
3904         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3905         (introspect_signals): Fix test for query.return_type.
3906         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3907         (invoke_object_method): Many changes.  Handle asynchronous
3908         invocations.  Convert arguments with
3909         dbus_gvalue_demarshal_message.  Handle errors.  Use
3910         DBusSignatureIter instead of strlen on args. Handle all arguments
3911         generically.  Special-case variants.
3912         (dbus_g_method_return, dbus_g_method_return_error): New function.
3913         (DBusGSignalClosure): New structure, closes over signal
3914         information.
3915         (dbus_g_signal_closure_new): New function.
3916         (dbus_g_signal_closure_finalize): New function.
3917         (signal_emitter_marshaller): New function; is special marshaller
3918         which emits signals on bus.
3919         (export_signals): New function; introspects object signals and
3920         connects to them.
3921         (dbus_g_object_type_install_info): Take GType instead of
3922         GObjectClass.
3923         (dbus_g_connection_register_g_object): Invoke export_signals.
3924         (dbus_g_connection_lookup_g_object): New function.
3925         (DBusGFuncSignature) New structure; used for mapping type
3926         signatures to marshallers.
3927         (funcsig_hash): New function; hashes DBusGFuncSignature.
3928         (funcsig_equal): New function; compares DBusGFuncSignature.
3929         (_dbus_gobject_lookup_marshaller): New function.
3930         (dbus_g_object_register_marshaller): New function; used to
3931         register a marshaller at runtime for a particular signature.
3932
3933         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3934
3935         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3936         which notes a server method implementation should be
3937         asynchronous.
3938
3939         * glib/dbus-binding-tool-glib.c
3940         (dbus_binding_tool_output_glib_server): Call
3941         dbus_g_value_types_init.
3942         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3943         variants specially.
3944         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3945         of a lookup function.
3946         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3947         (write_untyped_out_args): New method; write output arguments.
3948         (write_formal_declarations_for_direction): Function for
3949         writing prototypes.
3950         (write_formal_parameters_for_direction): Function for
3951         writing implementations.
3952         (write_typed_args_for_direction): Function for writing
3953         arguments prefixed with GTypes.
3954         (write_async_method_client): Write out async version
3955         of method.
3956
3957         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3958         (dbus_g_type_get_marshal_name): Move mapping from GType
3959         to marshal name into here.
3960         (dbus_g_type_get_c_name): Move into here.
3961         (compute_marshaller): Convert signature to type with
3962         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3963         (compute_marshaller_name): Ditto.
3964         (compute_marshaller): Handle async signal annotations.
3965         (gather_marshallers): Return if we don't have a known
3966         prefix.
3967         (generate_glue): Collect introspection blob here, and
3968         write all of the blob at the end.  This allows an object
3969         with multiple interfaces to work.
3970         Mark async methods in introspection blob.
3971
3972         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3973         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3974         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3975
3976         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3977         avoids people accidentally using DBUS_TYPE_* which should
3978         not be necessary anymore.
3979         Do include dbus-gtype-specialized.h, which are utilities
3980         for GLib container types.
3981         Add various #defines for types such as
3982         DBUS_TYPE_G_BOOLEAN_ARRAY.
3983         (DBusGValueIterator, DBusGValue): Define, not fully used
3984         yet.
3985         (dbus_g_value_get_g_type): Type for recursive value.
3986         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3987         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3988         (dbus_g_value_free): Prototypes.
3989         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3990         (dbus_g_proxy_set_interface): Prototype.
3991         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3992         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3993         types.
3994         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3995         Accessors.
3996         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3997         doing async invocations.
3998         (dbus_g_method_return, dbus_g_method_return_error):
3999         Prototypes.
4000         * doc/dbus-tutorial.xml: Update GLib section.
4001         
4002         * tools/dbus-viewer.c (load_child_nodes): Update
4003         for new invocation type of dbus_g_proxy_end_call.
4004         (load_from_service_thread_func): Ditto.
4005
4006         * tools/print-introspect.c (main): Ditto.
4007
4008         * tools/dbus-names-model.c (have_names_notify)
4009         (names_model_reload, names_model_set_connection)
4010         Use GTypes.
4011
4012         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4013         needed since Python bindings use GLib bindings.
4014
4015         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4016         Add --prefix argument.
4017
4018         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4019         unneeded --ignore-unsupported arg.
4020         
4021         * test/glib/test-service-glib.c: 
4022         * test/glib/test-service-glib.xml:
4023         * test/glib/test-dbus-glib.c: Add many more tests.
4024
4025 2005-06-06  David Zeuthen  <davidz@redhat.com>
4026
4027         * doc/TODO: Add item about need to remove deprecated functions.
4028
4029         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4030
4031         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4032         to repair the ABI which was broken with the last commit.
4033
4034 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4035
4036         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4037         (dbus_connection_disconnect): renamed to dbus_connection_close 
4038         for API symmetry with dbus_connection_open
4039         (_dbus_connection_open_internal): 
4040         s/dbus_connection_disconnect/dbus_connection_close
4041
4042         * dbus/dbus-bus.c (dbus_bus_get):
4043         s/dbus_connection_disconnect/dbus_connection_close
4044
4045         * bus/connection.c (bus_connections_unref, 
4046         bus_connections_setup_connection, bus_connections_expire_incomplete):
4047         s/dbus_connection_disconnect/dbus_connection_close
4048
4049         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4050         kill_client_connection_unchecked, check_hello_connection):
4051         s/dbus_connection_disconnect/dbus_connection_close
4052
4053         * bus/bus.c (new_connection_callback):
4054         s/dbus_connection_disconnect/dbus_connection_close
4055
4056         * tools/dbus-send.c (main):
4057         s/dbus_connection_disconnect/dbus_connection_close
4058
4059         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4060         s/dbus_connection_disconnect/dbus_connection_close
4061         
4062         * test/test-service.c (path_message_func, filter_func):
4063         s/dbus_connection_disconnect/dbus_connection_close
4064         
4065         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4066         
4067 2005-05-25  Colin Walters  <walters@verbum.org>
4068
4069         * dbus/dbus-protocol.h: Move various bus service #defines such
4070           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4071           dbus/dbus-shared.h.
4072         * dbus/dbus-shared.h: Various defines moved here.
4073         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4074
4075 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4076
4077         * python/__init__.py: Python bindings deserve a minor version
4078         update.  Upped to (0, 40, 2)
4079
4080 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4081
4082         * python/decorators.py: add explicitly_pass_message decorator
4083         for passing in the dbus message as keyword for edge case signal
4084         handling
4085
4086         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4087         to conform with what dbus expects for match rules
4088         (SignalMatchRule.execute): add the dbus message as a keyword
4089         if the signal handler has requested it
4090
4091         * python/examples/example/signal-recipient.py: added some more
4092         examples on how to hook up to signals
4093
4094 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4095
4096         * python/decorators.py: import dbus_bindings
4097
4098         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4099         SignalMatchNode): new classes that implement wildcard signal
4100         callback matching using a tree lookup. Heavily modified from a
4101         patch sent by Celso Pinto (fd.o bug #3241)
4102
4103         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4104         use new match classes to handle signals.
4105
4106 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4107         
4108         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4109
4110 2005-05-18  Havoc Pennington  <hp@redhat.com>
4111
4112         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4113         gettext. Not really worth requiring yet perhaps, but any
4114         production quality 1.0 would require it so we should go ahead and
4115         get things set up. We do have a couple token calls to
4116         bindtextdomain in the code already.
4117
4118 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4119
4120         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4121         when using recursive g_main_loops
4122
4123         * python/_dbus.py (class Bus): add the ProxyObjectClass
4124         alias for ProxyObject to make it easier for the Twisted 
4125         networking framework to integrate dbus.
4126
4127         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4128         alias for ProxyMethod to make it easier for the Twisted 
4129         networking framework to integrate dbus. 
4130
4131 2005-05-11  Ross Burton  <ross@openedhand.com>
4132
4133         * glib/dbus-glib-tool.c: Add --prefix argument.
4134         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4135         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4136         Add prefix argument.
4137         (generate_glue): Pass prefix argument down.
4138         (dbus_binding_tool_output_glib_server): Pass prefix to
4139         glib-genmarshal.
4140         
4141 2005-05-11  Colin Walters  <walters@verbum.org>
4142
4143         * tools/dbus-send.c (append_array): New function.
4144         (append_arg): Broken out from main.
4145         (main): Add cheesy hack to send arrays and variants.
4146         (usage): Update.
4147         * tools/dbus-print-message.c (print_iter): Broken out
4148         from main.
4149
4150 2005-05-11  Colin Walters  <walters@verbum.org>
4151
4152         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4153         New function, returns signature string for signature iter.
4154         * dbus/dbus-signature.h: Prototype it.
4155         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4156         New function, returns signature string for message iter.
4157         (dbus_message_iter_get_array_len): New function, returns
4158         length of array.
4159         (dbus_message_iter_get_fixed_array): Fix assertion; this
4160         function should be used when the iter is pointing to the
4161         contents of an array
4162         * dbus/dbus-message.h: Prototypes.
4163         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4164         New function; returns length of an array.
4165         * dbus/dbus-marshal-recursive.h: Prototype it.
4166         
4167 2005-05-11  Colin Walters  <walters@verbum.org>
4168
4169         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4170         compilation error.
4171         
4172 2005-05-08  Havoc Pennington  <hp@redhat.com>
4173
4174         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4175         daemon's pid, not the parent's pid, to the file descriptor.
4176         Reported by Taj Morton.
4177
4178 2005-05-05  Havoc Pennington  <hp@redhat.com>
4179
4180         * configure.in (LT_*): add notes on how the libtool versioning
4181         works to save thinking. Increment soname to indicate protocol
4182         breakage (though really the library interface hasn't changed I
4183         guess)
4184
4185         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4186         verify the GUID received from server matches what we were
4187         expecting, if we had an expectation
4188
4189         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4190         (_dbus_auth_get_guid_from_server): new function
4191         (send_begin): parse the OK args
4192
4193         * doc/dbus-specification.xml: add GUID to the auth protocol
4194
4195 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4196
4197         * Fix my name in previous changelog ;)
4198
4199         * python/proxies.py (ProxyObject.__getattr__): add further patch
4200         from Anthony Baxter to throw an AttributeError when python 
4201         __special__ functions are called instead of marshling them over 
4202         the bus (Bug#1685 comment 3).
4203
4204 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4205
4206         * python/Makefile.am: changed to use pyexecdir for the binding
4207         shared libraries (Bug#2494)
4208
4209         * python/exceptions.py: bring exceptions over from the bindings
4210         so they can be used in applications (Bug#2036)
4211         Make all exceptions derive from DBusException
4212
4213         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4214         of classes so that print obj doesn't throw an exception (Bug #1685)
4215
4216 2005-05-03  Ross Burton  <ross@openedhand.com>
4217
4218         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4219         Return if we get an error during registration.  Set up a
4220         weak reference on object to unregister if object is destroyed.
4221         (unregister_gobject): New function.
4222         
4223 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4224
4225         * python/dbus_bindings.pyx.in: 
4226         - added new type classes for hinting to the marashaler what type 
4227         to send over the wire
4228         - added int16 and uint16 marshalers
4229         - Fixed a bug in the type constants that caused int32 to go out
4230         as uint16 over the wire
4231         * python/dbus.py: split up into different files and renamed _dbus.py
4232         * python/__init__.py, python/_util.py, python/decorators.py, 
4233         python/exceptions.py, python/proxies.py, python/services.py,
4234         python/types.py: new files split off from dbus.py
4235         * python/Makefile.am: Add new files, remove dbus.py and 
4236         install all python files to <python module dir>/dbus
4237         * python/examples/*: Added #!/usr/bin/env python to the top of
4238         every example.  Patch provided by Tatavarty Kalyan
4239
4240 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4241
4242         * NEWS: Update to 0.33
4243
4244 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4245
4246         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4247         method for doing async calls
4248         (_pending_call_notification): New C function for handling pendning call
4249         callbacks
4250         (set_notify): New method for setting pending call notification
4251         
4252         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4253         Async capabilities added to remote method calls
4254         (Sender): class removed
4255         (RemoteService): class removed
4256         (ObjectTree): class removed for now
4257         (RemoteObject): Renamed to ProxyObject
4258         (RemoteMethod): Renamed to ProxyMethod
4259         (method): Decorator added for decorating python methods as dbus methods
4260         (signal): Decorator added for decorating python methods as signal emitters
4261         (ObjectType): Metaclass added for generating introspection data and the
4262         method callback vtable
4263         (Interface): Wrapper class added to wrap objects in a dbus interface
4264         (Object): Uses ObjectType as its metaclass and exports Introspect
4265         of the org.freedesktop.DBus.Introspectable interface
4266         (ValidationException, UnknownMethodException): new exceptions
4267
4268         * python/examples/*: Modified to fit with the new bindings
4269
4270 2005-04-23  Havoc Pennington  <hp@redhat.com>
4271
4272         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4273         reported by Tony Houghton
4274
4275         * test/test-service.c (main): test
4276         dbus_connection_get_object_path_data()
4277
4278         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4279         the exact_match
4280         (_dbus_object_tree_get_user_data_unlocked): new function used by
4281         dbus_connection_get_object_path_data()
4282         (do_register): add assertion test for get_user_data_unlocked
4283         (object_tree_test_iteration): more tests
4284
4285         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4286         new function from Dan Reed to let you get the user data from 
4287         dbus_connection_register_object_path()
4288
4289 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4290
4291         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4292         in numerous places that did not account for the NULL terminator
4293         (signature_from_seed): changed the manual string copy loop to 
4294         just use strcpy instead
4295         make check should now pass
4296
4297 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4298
4299         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4300         so that it allows messages that are not signals to pass in 
4301         NULL as the interface.
4302
4303 2005-04-18  David Zeuthen  <davidz@redhat.com>
4304
4305         * glib/dbus-gmain.c (io_handler_destroy_source): 
4306         (timeout_handler_destroy_source, connection_setup_free): 
4307         Also unref the source to avoid memory leaks.
4308
4309 2005-04-13  David Zeuthen  <davidz@redhat.com>
4310
4311         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4312         more reasonable, yet still totally arbitrary, value :-). 
4313
4314 2005-04-13  David Zeuthen  <davidz@redhat.com>
4315
4316         * doc/TODO: Added an "important for 1.0" item about selinux
4317         allow/deny messages
4318
4319 2005-04-13  David Zeuthen  <davidz@redhat.com>
4320
4321         * bus/selinux.c: Add c-file-style to top of file
4322         (log_audit_callback): Don't free the data here anymore
4323         (bus_selinux_check): Don't take spid and tpid since appending
4324         that to auxdata may OOM.
4325         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4326         to the caller if we are OOM by taking an error object.
4327         (bus_selinux_allows_send): -do-
4328
4329         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4330         and bus_selinux_allows_send
4331
4332         * bus/bus.c (bus_context_check_security_policy): Pass error and
4333         pass on OOM thrown by bus_selinux_allows_send()
4334
4335         * bus/services.c (bus_registry_acquire_service): Pass error and
4336         pass on OOM thrown by bus_selinux_allows_acquire_service()
4337
4338 2005-04-13  Havoc Pennington  <hp@redhat.com>
4339
4340         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4341         message at a time to avoid monopolizing the main loop, bug 
4342         #2953 from Benjamin Otte
4343
4344 2005-04-09  Havoc Pennington  <hp@redhat.com>
4345
4346         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4347         possible overlap, fix from Daniel Reed
4348         (fixup_alignment): fix signedness warnings
4349         (_dbus_string_append_unichar): ditto
4350
4351 2005-04-09  Havoc Pennington  <hp@redhat.com>
4352
4353         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4354
4355         * glib/dbus-glib-tool.c (main): fix warning
4356
4357         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4358
4359         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4360         add a new function that can be used in simple applications that
4361         don't have a main loop and are willing to block
4362
4363 2005-04-05  David Zeuthen  <davidz@redhat.com>
4364
4365         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4366
4367         * glib/dbus-gmain.c:
4368         (io_handler_destroy_source): Remove from list of IO handlers
4369         of the ConnectionSetup object
4370         (timeout_handler_destroy_source): -do- for timeout handlers
4371         (io_handler_source_finalized): Don't remove from list since
4372         we now do that in io_handler_destroy_source(). Renamed from
4373         io_handler_source_destroyed
4374         (timeout_handler_source_destroyed): -do- for timeout handlers
4375         (connection_setup_free): It is now safe to iterate over all
4376         IO and timeout handlers as the _destroy_source removes them
4377         from the list synchronously
4378
4379 2005-03-30  Havoc Pennington  <hp@redhat.com>
4380
4381         * configure.in: change check to gtk 2.4
4382
4383         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4384         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4385         to 2.4
4386
4387 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4388
4389         * News: Update 0.32
4390
4391         * HACKING: Fixed realease instructions.  configure.in should be updated to
4392           the next release by the person who made the last release.
4393
4394 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4395
4396         * python/lvalue_cast_post_process.py - removed.  Patch has been
4397           submitted to Pyrex maintainers that fixes gcc4.0 errors
4398
4399         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4400
4401 2005-03-24  Daniel Reed  <n@ml.org>
4402
4403         * tools/Makefile.am: Make print-introspect and
4404         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4405
4406 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4407
4408         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4409
4410         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4411           had in Red Hat packages for a while but for some reason never 
4412           got merged upstream
4413           (_dbus_is_a_number): New checks if a string
4414           can be converted to a number and does the conversion if it can
4415           (_dbus_user_database_lookup): Add check to see if the given username
4416           is a udi.  This allows udi's to be used instead of usernames in the
4417           config file.
4418           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4419           is a gdi.  This allows gdi's to be used instead of groupnames in the
4420           config file.
4421
4422 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4423
4424         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4425           code so that it compiles with gcc4.0
4426
4427         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4428           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4429           results back to dbus_binding.c
4430
4431 2005-03-20  Colin Walters  <walters@verbum.org>
4432
4433         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4434
4435         * configure.in: Require GTK+ 2.6.
4436         
4437 2005-03-20  Colin Walters  <walters@verbum.org>
4438
4439         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4440
4441 2005-03-17  Tom Parker  <palfrey@tevp.net>
4442
4443         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4444         print DBUS_UID_UNSET; instead print passed username.  Also
4445         be sure to actually use gid looked up in cache.
4446         
4447         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4448         for DBUS_GID_UNSET and groupname.
4449
4450 2005-03-17  Colin Walters  <walters@verbum.org>
4451
4452         * bus/print-introspect.c: Move to tools/.
4453         * bus/run-with-tmp-session-bus.sh: Ditto.
4454         
4455         * glib/Makefile.am (dbus-glib-bindings.h): Move
4456         generation to tools/Makefile.am.
4457
4458         * test/glib/run-test.sh: Update to handle move
4459         of run-with-tmp-session-bus.sh.
4460
4461         * test/glib/test-service-glib.c: Update to handle
4462         move of dbus-glib-bindings.h.
4463
4464         * tools/print-introspect.c: Moved here
4465         from bus/, and ported to GLib bindings.
4466
4467         * tools/run-with-tmp-session-bus.sh: Moved here
4468         from bus/.
4469
4470         * tools/Makefile.am: Generate dbus-glib-bindings.h
4471         and dbus-bus-introspect.xml here.
4472
4473         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4474         Update.
4475
4476 2005-03-17  Colin Walters  <walters@verbum.org>
4477
4478         * bus/driver.c (write_args_for_direction): Use
4479         _dbus_string_get_const_data to retrieve string;
4480         _dbus_string_get_const_data_len doesn't actually return
4481         a NULL-terminated substring.
4482
4483         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4484         (main): Change to use org_freedesktop_DBus_request_name
4485         instead of using g_proxy_begin_call/end_call.
4486
4487 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4488
4489         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4490         generating the finalizer.  Fixes from Ben Maurer.
4491
4492 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4493
4494         * mono/BusDriver.cs: Update method names: ListServices
4495         becomes ListNames; GetOwner becomes GetNameOwner.
4496
4497         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4498         onto the eval stack when removing the delegate.
4499
4500 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4501
4502         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4503         LT_CURRENT.  Set it to the autoconf variable.
4504                                                                                 
4505         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4506         classes that disconnects the signal handler delegate from the
4507         service object.  Fixes a big leak of proxy objects on the
4508         client side of things.  Patch from Ben Maurer
4509         <bmaurer@ximian.com>
4510
4511 2005-03-12  Colin Walters  <walters@verbum.org>
4512
4513         * bus/driver.c (write_args_for_direction): New function,
4514         parses a type signature into arguments and outputs to
4515         XML.
4516         (bus_driver_handle_introspect): Use it instead of
4517         hardcoding XML for certain signatures.
4518         
4519         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4520         dependency on dbus-daemon.
4521
4522         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4523         argument, pass it to dbus_binding_tool_output_glib_client.
4524
4525         * glib/dbus-binding-tool-glib.c
4526         (generate_client_glue): Protect against multiple inclusion.
4527         (dbus_binding_tool_output_glib_client): Add
4528         G_BEGIN_DECLS/G_END_DECLS.
4529
4530         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4531         Change to just take iface prefix directly.
4532         (write_formal_parameters): Clarify error message.
4533         (check_supported_parameters): New function; checks to see type
4534         signatures of method parameters are supported.
4535         (generate_client_glue): Handle ignore_unsupported flag.
4536         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4537         parameter.
4538
4539         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4540         --ignore-unsupported by default until glib bindings
4541         support arrays.
4542
4543 2005-03-11  Colin Walters  <walters@verbum.org>
4544
4545         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4546         install it.
4547
4548         * bus/print-introspect.c: New file; prints introspection
4549         data for a given name and object path.
4550
4551         * bus/run-with-tmp-session-bus.sh: New file, refactored
4552         from test/glib/run-test.sh.  Creates a temporary session
4553         bus and runs another program.
4554
4555         * test/glib/run-test.sh: Refactor to invoke
4556         run-with-tmp-session-bus.sh.
4557
4558         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4559         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4560         macros instead of hardcoding.
4561
4562         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4563
4564 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4565
4566         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4567         this unref; it doesn't match up evenly in some codepaths.
4568         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4569         this evenly matches with the ref near the top of this function.
4570
4571 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4572
4573         * dbus/dbus-object-tree.c
4574         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4575         and we try to unregister a path that's not registered, still go
4576         through the process of unlocking and don't just return.
4577
4578 2005-03-09  Colin Walters  <walters@verbum.org>
4579
4580         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4581         to this are generated for client-side wrappers.  Invokes a
4582         D-BUS method and returns reply values.  
4583
4584         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4585         function; writes signature string for argument direction.
4586         (write_args_for_direction): Change to pass input values directly
4587         instead of via address, and fix indentation.
4588         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4589         make generated wrappers inlineable.
4590
4591         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4592         note about using dbus_type_is_fixed.
4593
4594         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4595         dbus/dbus-signature.c as dbus_type_is_fixed.
4596
4597         All callers updated.
4598
4599         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4600         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4601
4602         * dbus/dbus-signature.h: Prototype.
4603
4604         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4605         error printf code.
4606
4607         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4608         appropriate instead of just freeing it.
4609         (main): Free returned strings using g_free.
4610
4611         * test/glib/Makefile.am (test-service-glib-glue.h)
4612         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4613
4614         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4615         simply maps a simple D-BUS type to GType.
4616         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4617         GType.
4618         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4619         initialize the value with it.
4620         (dbus_gvalue_binding_type_from_type): Unused, delete.
4621         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4622         various types instead of unmarshalling to value data directly.
4623         Remove can_convert boolean.
4624         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4625         returning directly instead of using can_convert boolean.
4626         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4627         Stores a GValue in a pointer to a value of its corresponding C
4628         type.
4629
4630         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4631         add dbus_gvalue_store.
4632
4633 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4634
4635         Fix a bunch of lifecycle and memory management problems
4636         in the mono bindings.
4637
4638         * mono/Arguments.cs (Arguments): Implement IDisposable
4639
4640         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4641         strictly a static class.
4642
4643         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4644         delegates into this file.
4645         (Connection): Implement IDisposable.
4646         (Dispose): Disconnect the connection and set the raw connection
4647         pointer to IntPtr.Zero.
4648         (~Connection): Call Dispose().
4649         (RegisterObjectPath): Added.  Manages the registration of object
4650         paths so we can cleanly disconnect them at dispose/finalize time.
4651         (UnregisterObjectPath): Ditto.
4652         (set_RawConnection): Unregister all of the object paths when
4653         changing the underlying DBusConnection.  Add them back onto the
4654         new connection, if any.
4655
4656         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4657         more unmanaged resources anymore, so it's not necessary.  Move all
4658         the DBusObjectPathVTable stuff out of here.
4659         (Handler): Save references to our delegates so that they don't get
4660         finalized.  Call Connection.RegisterObjectPath() instead of
4661         dbus_connection_register_object_path() directly.
4662         (Message_Called): Dispose the message after we're finished with
4663         it.
4664
4665         * mono/Message.cs (Message): Implement IDisposable.
4666         (Dispose): Dispose the Arguments, and set the RawMessage to
4667         IntPtr.Zero.
4668         (SendWithReplyAndBlock): We own the ref to the reply that comes
4669         back from dbus_connection_send_with_reply_and_block() so add a
4670         comment about that and unref it after we've constructed a managed
4671         MethodReturn class around it.  Fixes a big, big leak.
4672
4673         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4674         method.
4675         (BuildSignalHandler): After we've sent the Signal message, dispose
4676         of it.
4677         (BuildMethod): Dispose of the method call and reply messages after
4678         we've sent the message and extracted the data we want from the
4679         reply.
4680
4681         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4682         anymore.
4683         (Service_FilterCalled): Dispose of the message after we're
4684         finished with it.
4685
4686 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4687
4688         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4689         After we attach our pending call to the connection, unref
4690         it.  Fixes a leak.
4691  
4692         * mono/Connection.cs (set_RawConnection): Disconnect our
4693         filter and match callbacks from the old connection and
4694         reconnect them to the new connection, if any.
4695
4696         * mono/DBusType/Array.cs: "Code" is a static member, so
4697         don't use "this" to refer to it.  Fix for stricter checking
4698         in Mono 1.1.4.
4699  
4700         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4701         object path that we pass into unmanaged code.
4702  
4703         * mono/DBusType/String.cs (Append): Don't leak the string
4704         that we pass into unmanged code.
4705
4706 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4707         * NEWS: Update for 0.31
4708
4709         * configure.in: Release 0.31
4710         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4711
4712         * qt/Makefile.am: fixed build
4713
4714         * dbus/Makefile.am: soname bump for libdbus
4715
4716         * glib/Makefile.am: soname bump for libdbus-glib
4717
4718 2005-03-05  Havoc Pennington  <hp@redhat.com>
4719
4720         * dbus/dbus-sysdeps.c:
4721         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4722         value
4723         (_dbus_generate_random_bytes_buffer): fix return value
4724
4725         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4726         checks actually work, from Tom Parker <fdo@tevp.net>
4727
4728 2005-03-01  Colin Walters  <walters@verbum.org>
4729
4730         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4731         functions copied from dbus-glib-tool.c.
4732         (main): Convert lots of error code to use them.
4733         Also add some testing for introspection bits.
4734
4735 2005-03-01  Colin Walters  <walters@verbum.org>
4736         
4737         * doc/TODO: Remove introspection signature TODO.
4738
4739 2005-02-27  Colin Walters  <walters@verbum.org>
4740
4741         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4742         Change return value to const char * instead of int so we can do
4743         full signatures.
4744         (struct PropertyInfo, struct ArgInfo): Store char *.
4745         (property_info_new, arg_info_new): Update parameters, strdup.
4746         (property_info_unref, arg_info_unref): Free.
4747
4748         * glib/dbus-gidl.h: Update prototypes.
4749
4750         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4751         (validate_signature): New function, just validates signature and
4752         sets GError.
4753         (parse_property, parse_arg): Invoke validate_signature.  Store
4754         signature instead of just type code.
4755
4756         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4757         function to return a primary type for a signature, dropping
4758         information about types in container types.
4759         (dbus_gvalue_genmarshal_name_from_type)
4760         (dbus_gvalue_binding_type_from_type)
4761         (dbus_gvalue_ctype_from_type): Update to take full signature
4762          instead of type code.
4763         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4764
4765         * glib/dbus-gvalue.h: Update prototypes for above.
4766
4767         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4768         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4769         (introspect_properties, introspect_signals, write_interface):
4770         Update to handle signatures, and remove usage of
4771         _dbus_gutils_type_to_string.
4772         (handle_introspect): Print out type codes instead of e.g. "string"
4773         in hardcoded introspection XML; also use x_AS_STRING constants
4774         instead of hardcoding in string.
4775
4776         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4777         to string.  Remove usage of _dbus_gutils_type_to_string.
4778
4779         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4780
4781         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4782         deletion.
4783         
4784         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4785         (compute_marshaller_name, generate_glue): Handle signature change
4786         to string.
4787         (write_formal_parameters, write_args_for_direction): Ditto, and
4788         remove FIXME.
4789
4790         * tools/dbus-tree-view.c (type_to_string): Delete.
4791         (info_set_func_text): Update to print full signatures.
4792
4793         * test/glib/test-service-glib.xml: Change types to new
4794         introspection format.
4795
4796 2005-02-26  Havoc Pennington  <hp@redhat.com>
4797
4798         * doc/TODO: remove the "guid" item
4799
4800         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4801         (with_bus_thread_func): use open_private
4802
4803         * dbus/dbus-connection.c (dbus_connection_open_private): new
4804         function that works like the old dbus_connection_open()
4805         (dbus_connection_open): now returns an existing connection if
4806         possible
4807
4808         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4809         through the GUID to the transport
4810
4811         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4812         GUID in hex-encoded form.
4813
4814         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4815         pass GUID argument in to the transport
4816
4817         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4818         guid argument
4819
4820         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4821
4822         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4823
4824 2005-02-25  Havoc Pennington  <hp@redhat.com>
4825
4826         * doc/dbus-specification.xml: document the GUID thing
4827
4828         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4829         globally unique ID for the server, and put a "guid=hexencoded"
4830         field in the address
4831
4832         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4833
4834         * dbus/dbus-message.c: ditto
4835
4836         * dbus/dbus-dataslot.c: ditto
4837
4838         * dbus/dbus-list.c: ditto
4839
4840         * dbus/dbus-internals.h: wait, just include
4841         dbus-threads-internal.h here
4842         
4843         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4844         use in main library
4845
4846         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4847
4848 2005-02-24  Colin Walters  <walters@verbum.org>
4849
4850         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4851
4852 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4853
4854         * glib/Makefile.am: added dbus-gobject.h to sources list
4855         so distcheck doesn't fail
4856         
4857 2005-02-24  Havoc Pennington  <hp@redhat.com>
4858
4859         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4860         you must disconnect before unref, since locking and other things
4861         are screwed up otherwise. Fix assorted other locking stuff.
4862
4863         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4864         fix compilation
4865
4866         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4867         into a private header and don't export from the library
4868
4869         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4870
4871 2005-02-24  Colin Walters  <walters@verbum.org>
4872         
4873         * dbus/dbus-signature.c: New file; implements various functions
4874         related to type signatures.  Includes an interator for parsing,
4875         validation functions.
4876         (dbus_type_is_basic): Moved here from
4877         dbus-marshal-basic.c:_dbus_type_is_basic.
4878         (dbus_type_is_container): Moved here from
4879         dbus-marshal-basic.c:_dbus_type_is_container.
4880
4881         All callers of _dbus_type_is_container and _dbus_type_is_basic
4882         updated, and include dbus-signature.h.
4883
4884         * dbus/dbus-signature.h: New file; prototypes for the above.
4885
4886         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4887         dbus-signature.h.
4888
4889         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4890         function factored out of _dbus_first_type_in_signature.
4891         (_dbus_first_type_in_signature_c_str): New function; returns first
4892         type code for a type signature character.
4893
4894         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4895         handle function moves.
4896
4897         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4898
4899         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4900         function; skips to next complete type in type signature.
4901         Implemented using previous skip_one_complete_type.  Now
4902         skip_one_complete_type just delegates to
4903         _dbus_type_signature_next.
4904
4905         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4906         to dbus-signature.c
4907         (_dbus_type_is_container): Ditto.
4908
4909         * doc/dbus-specification.xml: Update introspection sample to
4910         use real type signatures.
4911
4912         * dbus/dbus-test.h: Prototype signature test.
4913
4914         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4915         signature tests.
4916
4917         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4918
4919 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4920
4921         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4922         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4923
4924 2005-02-21  Colin Walters  <walters@verbum.org>
4925
4926         * dbus/dbus-test-main.c (main): Take optional specific test
4927         argument.
4928
4929         * dbus/dbus-test.c (run_test): New function, runs a test function
4930         with no data directory.
4931         (run_data_test): Like above, but takes data directory.
4932         (dbus_internal_do_not_use_run_tests): Take
4933         specific test argument.  Replace lots of cut n' paste code
4934         with run_test and run_data_test.
4935
4936         * dbus/dbus-test.h: Update prototype for
4937         dbus_internal_do_not_use_run_tests.
4938
4939 2005-02-20  Havoc Pennington  <hp@redhat.com>
4940
4941         Fix bugs reported by Daniel P. Berrange
4942         
4943         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4944         (protected_change_watch): new function
4945         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4946         (_dbus_server_add_watch): change to work like the
4947         dbus-connection.c equivalents; like those, probably kind of
4948         busted, but should at least mostly work for now
4949         (dbus_server_disconnect): drop the lock if we were already
4950         disconnected, patch from Daniel P. Berrange
4951
4952         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4953         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4954         same stuff
4955
4956         * doc/TODO: todo about unscrewing this mess
4957
4958 2005-02-19  Colin Walters  <walters@verbum.org>
4959
4960         * glib/dbus-binding-tool-glib.c
4961         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4962
4963         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4964         as errno.h and sys/stat.h.
4965         (lose): New function, prints error with
4966         newline and exits.
4967         (lose_gerror): Similar, but takes GError for message.
4968         (main): Add --output argument to specify output file to write to,
4969         instead of always printing to stdout.  In this mode, determine
4970         timestamps on source files to see whether any are newer than the
4971         target file.  If not, exit.  Also convert a number of error
4972         messages to use lose (since it's shorter), and switch to using
4973         g_io_channel_shutdown.
4974
4975 2005-02-19  Havoc Pennington  <hp@redhat.com>
4976
4977         * glib/dbus-gobject.c
4978         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4979
4980         * glib/dbus-glib.c: fix doxygen warnings
4981
4982         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4983         is found on an <arg>
4984
4985 2005-02-17  Colin Walters  <walters@verbum.org>
4986
4987         * glib/dbus-gobject.h: Don't export
4988         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4989         
4990         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4991         (invoke_object_method): Handle it.
4992
4993         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4994         Handle rename.
4995         
4996 2005-02-17  Colin Walters  <walters@verbum.org>
4997
4998         * bus/.cvsignore, doc/.cvsignore
4999         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5000         Update.
5001
5002 2005-02-17  Colin Walters  <walters@verbum.org>
5003         
5004         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5005         Rename to DBUS_SERVICE_DBUS.
5006         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5007         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5008         Change the value from "org.freedesktop.Local"
5009         to "org.freedesktop.DBus.Local".
5010         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5011         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5012         DBUS_INTERFACE_INTROSPECTABLE.
5013         Change the value from "org.freedesktop.Introspectable"
5014         to "org.freedesktop.DBus.Introspectable".
5015         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5016         DBUS_INTERFACE_PROPERTIES.
5017         Change the value from "org.freedesktop.Properties"
5018         to "org.freedesktop.DBus.Properties".
5019         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5020         DBUS_INTERFACE_PEER.
5021         Change the value from "org.freedesktop.Peer"
5022         to "org.freedesktop.DBus.Peer".
5023         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5024         DBUS_INTERFACE_LOCAL.
5025         Change the value from "org.freedesktop.Local"
5026         to "org.freedesktop.DBus.Local".
5027
5028         All other users of those constants have been changed.
5029
5030         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5031
5032         * glib/dbus-gobject.c (handle_introspect): Use constants.
5033
5034         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5035
5036 2005-02-17  Colin Walters  <walters@verbum.org>
5037
5038         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5039         (parse_node, parse_interface, parse_method, parse_signal)
5040         (parse_property, parse_annotation): Lose if we're currently in an
5041         annotation.
5042         (parse_annotation): New function.
5043         (parser_start_element, parser_end_element): Handle annotation.
5044         (parse_method, parse_interface): Remove support for c_name attribute,
5045         switch to annotations.
5046
5047         * glib/dbus-gidl.h (interface_info_get_binding_names)
5048         (method_info_get_binding_names)
5049         (interface_info_get_binding_name, method_info_get_binding_name)
5050         (interface_info_set_binding_name, method_info_set_binding_name):
5051         Remove.
5052         (interface_info_get_annotations, method_info_get_annotations)
5053         (interface_info_get_annotation, method_info_get_annotation)
5054         (interface_info_add_annotation, method_info_add_annotation):
5055         Prototype.
5056
5057         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5058         for "bindings".
5059         (struct MethodInfo): Ditto.
5060         Straightfoward conversion of binding methods into annotation methods
5061         as prototyped.
5062
5063         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5064
5065         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5066
5067         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5068         Use new annotation API.
5069
5070         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5071         annotation element.
5072         
5073         * doc/dbus-specification.xml: Discuss introspection annotations,
5074         include list of well-known annotations.
5075
5076         * test/glib/test-service-glib.xml: Make validate against new DTD.
5077
5078 2005-02-17  Colin Walters  <walters@verbum.org>
5079
5080         This patch is based on initial work from
5081         Paul Kuliniewicz <kuliniew@purdue.edu>.
5082
5083         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5084         initialization of GValue from dbus type to here.
5085         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5086         for the "glib-genmarshal" program from a DBus type.
5087         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5088         into the C name for it we use in the glib bindings.
5089         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5090         glib C type (not GValue).
5091         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5092
5093         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5094         from dbus-gobject.c.
5095
5096         * glib/dbus-gutils.h: Prototype it.
5097
5098         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5099         (marshal_dbus_message_to_g_marshaller): Use new shared function
5100         dbus_glib_marshal_dbus_message_to_gvalue_array.
5101
5102         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5103         Will be changed once we have annotations.
5104
5105         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5106         GStaticRWLock.  Callers updated.
5107         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5108         (string_table_next): New function for iterating over zero-terminated
5109         string value array.
5110         (string_table_lookup): New function; retrieves specific entry in
5111         array.
5112         (get_method_data): New function; look up method data in object data chunk.
5113         (object_error_domain_prefix_from_object_info)
5114         (object_error_code_from_object_info): New functions, but not implemented yet.
5115         (method_interface_from_object_info): New function; retrieve interface name.
5116         (method_name_from_object_info): New function; retrieve method name.
5117         (method_arg_info_from_object_info): New function; retrieve argument data.
5118         (arg_iterate): New function; iterates over serialized argument data.
5119         (method_dir_signature_from_object_info): New function; returns a
5120         GString holding type signature for arguments for just one
5121         direction (input or output).
5122         (method_input_signature_from_object_info)
5123         (method_output_signature_from_object_info): New functions.
5124         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5125         converts dbus message arguments into a GValue array.  Used for both
5126         signal handling and method invocation.
5127         (struct DBusGlibWriteIterfaceData): New utility structure.
5128         (write_interface): New function; generate introspection XML for
5129         an interface.
5130         (introspect_interfaces): New function; gathers all interface->methods,
5131         generates introspection XML for them.
5132         (handle_introspect): Invoke introspect_interfaces.
5133         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5134         (lookup_object_and_method): New function; examines an incoming message
5135         and attempts to match it up (via interface, method name, and argument
5136         signature) with a known object and method.
5137         (gerror_domaincode_to_dbus_error_name): New function; converts a
5138         GError domain and code into a DBus error name.  Needs GError data
5139         added to object introspection to work well.
5140         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5141         GError.
5142         (invoke_object_method): New function to invoke an object method
5143         looked up via lookup_object_and_method.  Parses the incoming
5144         message, turns it into a GValue array, then invokes the marshaller
5145         specified in the DBusGMethodInfo.  Creates a new message with
5146         either return values or error message as appropriate.
5147         (gobject_message_function): Invoke lookup_object_and_method and
5148         invoke_object_method.
5149
5150         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5151         (enum DBusBindingOutputMode): New enum for binding output modes.
5152         (pretty_print): Print binding names.
5153         (dbus_binding_tool_error_quark): GError bits.
5154         (version): Fix typo.
5155         (main): Create GIOChannel for output.  Parse new --mode argument,
5156         possible values are "pretty-print", "glib-server", "glib-client".
5157         Use mode to invoke appropriate function.
5158         
5159         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5160
5161         * glib/dbus-glib-tool.h: New header, just includes GError bits
5162         for now.
5163
5164         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5165         maps binding style to name.
5166         (struct MethodInfo): Ditto.
5167         (get_hash_keys, get_hash_key): Utility function, returns keys for
5168         a GHashTable.
5169         (interface_info_new, method_info_new): Initialize bindings.
5170         (interface_info_unref, method_info_unref): Destroy bindings.
5171         (method_info_get_binding_names, method_info_get_binding_name)
5172         (interface_info_get_binding_names, interface_info_get_binding_name):
5173         Functions for retrieving binding names.
5174         (method_info_set_binding_name, interface_info_set_binding_name):
5175         Functions for setting binding names.
5176
5177         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5178         for glib binding generation.
5179
5180         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5181         and client-side glib glue generation.
5182
5183         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5184         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5185         dbus-glib-tool.h.
5186
5187         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5188         of using GClosureMarshal directly.
5189         (struct DBusGObjectInfo): Add n_infos member.
5190
5191         * test/glib/test-service-glib.xml: New file; contains introspection data
5192         for MyTestObject used in test-service-glib.c.
5193
5194         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5195         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5196         (my_object_uppercase, my_object_many_args): New test methods.
5197         (main): Use dbus_g_object_class_install_info to include generated object
5198         info.
5199
5200         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5201         as well as client-side bindings.
5202
5203         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5204         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5205         using both the dbus_gproxy stuff directly as well as the generated bindings.
5206
5207 2005-02-15  Havoc Pennington  <hp@redhat.com>
5208
5209         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5210         complete a pending call, don't run filters first.
5211
5212         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5213         dbus_pending_call_steal_reply
5214
5215         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5216         _dbus_connection_block_pending_call
5217         (dbus_pending_call_get_reply): change to steal_reply and return a
5218         ref
5219
5220         * dbus/dbus-connection.c
5221         (dbus_connection_send_with_reply_and_block): port to work in terms
5222         of DBusPendingCall
5223         (_dbus_connection_block_pending_call): replace block_for_reply
5224         with this
5225
5226 2005-02-14  Havoc Pennington  <hp@redhat.com>
5227
5228         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5229         properly handle looking up group information by name; fix 
5230         from j@bootlab.org
5231
5232 2005-02-13  Havoc Pennington  <hp@redhat.com>
5233
5234         * dbus/dbus-connection.c (dbus_connection_return_message) 
5235         (dbus_connection_borrow_message): hold dispatch lock while message
5236         is outstanding
5237         (_dbus_connection_block_for_reply): hold dispatch lock while we
5238         block for the reply, so nobody steals our reply
5239         (dbus_connection_pop_message): hold the dispatch lock while we
5240         pluck the message
5241
5242 2005-02-13  Havoc Pennington  <hp@redhat.com>
5243
5244         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5245         (_dbus_connection_release_dispatch)
5246         (_dbus_connection_acquire_io_path)
5247         (_dbus_connection_release_io_path): make the mutex and condvar
5248         control access to the "acquired" flag. Drop the connection lock
5249         while waiting on the condvar. Hopefully these are baby steps in
5250         roughly the right direction.
5251
5252 2005-02-13  Havoc Pennington  <hp@redhat.com>
5253
5254         * dbus/dbus-connection.c: use separate mutexes for the condition
5255         variables; this is some kind of baseline for sanity, but the
5256         condition variables still aren't used correctly afaict
5257
5258 2005-02-13  Havoc Pennington  <hp@redhat.com>
5259
5260         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5261         fix a double-unlock
5262
5263         * dbus/dbus-connection.c
5264         (_dbus_connection_detach_pending_call_unlocked): add this
5265
5266         Initial semi-correct pass through to fix thread locking; there are
5267         still some issues with the condition variable paths I'm pretty
5268         sure
5269         
5270         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5271         lock/unlock calls
5272
5273         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5274         rename to add _unlocked
5275         (struct DBusConnection): move "dispatch_acquired" and
5276         "io_path_acquired" to use only one bit each.
5277         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5278         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5279         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5280         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5281         (_dbus_connection_remove_timeout) 
5282         (_dbus_connection_toggle_timeout): drop lock when calling out to
5283         user functions; done in a hacky/bad way.
5284         (_dbus_connection_send_and_unlock): add a missing unlock
5285         (_dbus_connection_block_for_reply): add a missing unlock
5286
5287         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5288         drop lock in a hacky probably unsafe way to call out to user
5289         function
5290
5291 2005-02-12  Havoc Pennington  <hp@redhat.com>
5292
5293         * tools/dbus-tree-view.c (info_set_func_text): display more
5294         details on args
5295
5296         * bus/driver.c (bus_driver_handle_list_services): list the bus
5297         driver
5298
5299         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5300
5301         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5302         (method_info_get_n_args): new function
5303
5304 2005-02-12  Havoc Pennington  <hp@redhat.com>
5305
5306         * bus/driver.c (bus_driver_handle_introspect): add introspection
5307         for bus driver
5308
5309 2005-02-12  Havoc Pennington  <hp@redhat.com>
5310
5311         * bus/driver.c: put the signature of each bus driver method in the
5312         table of handlers and check it on incoming calls; this isn't
5313         really useful, but going to add introspect support in a minute.
5314
5315 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5316
5317         * mono/Connection.cs: The unpredictability of finalizers in mono
5318         prevents us from deterministically disconnecting the filters from
5319         the Service class's finalizer, so move tracking of filters and
5320         matches here.  Add API for that.
5321
5322         * mono/Service.cs: Remove the code, add code which calls the
5323         methods now on the Connection class.
5324
5325 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5326
5327         * python/dbus.py (class Sender): added to support dbus signals better
5328         (Bus::add_signal_receiver): added expand_args parameter which defaults
5329         to True.  When expand args is True the signal handler will pass the 
5330         message arguments as parameters to the signal handler.  If False
5331         revert to previous behavior where the signal handler must get the
5332         argument list from the message.  This is to help port applications
5333         like HAL that have a tendancy to send variable length argument lists.
5334         self._match_rule_to_receivers is now a dict of dicts.
5335         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5336         removing it from a list
5337         (Bus::_signal_func): change signal handlers so that interface,
5338         signal_name, service, path and message are packed into a Sender
5339         object and that is passed to the handler.  If expand_args is True
5340         extract the args list from the message and append it to the parameter
5341         list
5342         
5343         * python/dbus_bindings.pyx.in (class Signature): added to support 
5344         signiature types
5345         (MessageIter::__init__): changed iteration limit to match D-BUS
5346         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5347         STRUCT and VARIENT type support
5348         (MessageIter::python_value_to_dbus_sig): made recursive to support
5349         recursive types
5350         (MessageIter::append*): added Signature, dict, tuple 
5351         support
5352
5353         * python/examples/example-client.py: added examples of getting tuples
5354         and dicts
5355
5356         * python/examples/example-service.py: added examples of sending tuples
5357         and dicts
5358
5359         * python/examples/example-signal-recipient.py: Fixed to handle new
5360         signal callback format
5361
5362 2005-02-10  Havoc Pennington  <hp@redhat.com>
5363
5364         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5365         (call dbus_g_proxy_add_signal)
5366
5367         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5368         escape the hostname
5369         (_dbus_server_new_for_domain_socket): escape the path
5370
5371         * dbus/dbus-address.c (dbus_address_escape_value): new
5372         (dbus_address_unescape_value): new
5373         (dbus_parse_address): unescape values
5374
5375         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5376
5377         * doc/dbus-specification.xml: explain how to escape values in
5378         addresses
5379
5380 2005-02-10  Havoc Pennington  <hp@redhat.com>
5381
5382         * dbus/dbus-message-factory.c (generate_special): modify test to
5383         avoid using a non-basic dict key
5384
5385         * dbus/dbus-marshal-validate-util.c: add test for the below
5386
5387         * doc/dbus-specification.xml: require that dict keys are a basic
5388         type
5389
5390         * dbus/dbus-marshal-validate.c
5391         (_dbus_validate_signature_with_reason): require that dict key is a
5392         basic type
5393
5394 2005-02-10  Havoc Pennington  <hp@redhat.com>
5395
5396         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5397         change to be _and_unlock instead of _unlocked
5398
5399         * dbus/dbus-connection.c
5400         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5401         have no_update so we can find this bug quickly in future
5402
5403 2005-02-10  Havoc Pennington  <hp@redhat.com>
5404
5405         * dbus/dbus-message-util.c (verify_test_message): tests for string
5406         array
5407
5408         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5409         support for arrays of string/signature/path
5410
5411 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5412
5413         * dbus/dbus-connection.c
5414         (_dbus_connection_queue_received_message_link,
5415         _dbus_connection_message_sent): Add the path to
5416         the verbose output.
5417         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5418         _dbus_connection_send_preallocated_unlocked(), updated the
5419         dispatch status, and unlocks.  Fixes a bug where certain
5420         situations (like a broken pipe) could cause a Disconnect message
5421         to not be sent, tricking the bus into thinking a service was still
5422         there when the process had quit.
5423         (_dbus_connection_send_preallocated): Call
5424         _dbus_connection_send_preallocated_and_unlock().
5425         (_dbus_connection_send_and_unlock): Added.  Calls
5426         _dbus_connection_send_preallocated_and_unlock().
5427         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5428         (dbus_connection_send_with_reply): Update the dispatch status and
5429         unlock.
5430
5431         * mono/Service.cs (~Service): Added.  Removes the filter so that
5432         we don't get unmanaged code calling back into a GCed delegate.
5433         (RemoveFilter); Added.
5434
5435 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5436
5437         * dbus/dbus-message.c (dbus_message_iter_open_container):
5438         - Removed check for iterator type being an array because
5439         get_arg_type does not work with writer iterators
5440         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5441
5442 2005-02-07  Havoc Pennington  <hp@redhat.com>
5443
5444         * doc/dbus-specification.xml: some more language cleanups; add
5445         stuff about how to deal with invalid protocol and extension
5446         points; add _ to allowed chars in auth commands; add EXTENSION_
5447         auth command prefix
5448
5449 2005-02-06  Havoc Pennington  <hp@redhat.com>
5450
5451         * s/expected/required/ in a couple places for clarity
5452
5453 2005-02-07  Colin Walters  <walters@verbum.org>
5454
5455         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5456         sender or proposed_recipient.
5457
5458 2005-02-06  Havoc Pennington  <hp@redhat.com>
5459
5460         * dbus/dbus-message-factory.c (generate_special): more tests
5461
5462         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5463         array length that exceeds the maximum
5464
5465 2005-02-05  Havoc Pennington  <hp@redhat.com>
5466
5467         * dbus/dbus-message-factory.c (generate_special): more test cases,
5468         increasing coverage
5469
5470         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5471         reason why a signature was invalid
5472
5473         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5474         skip the length of the string before we look at it in validation
5475
5476         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5477         equal_substring
5478
5479         * dbus/dbus-message.c (_dbus_message_loader_new): default
5480         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5481
5482 2005-02-05  Havoc Pennington  <hp@redhat.com>
5483
5484         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5485         if the signature of a variant was empty
5486         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5487         struct with no element type)
5488
5489         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5490         mangled messages to break things
5491
5492 2005-02-04  Havoc Pennington  <hp@redhat.com>
5493
5494         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5495         g_quark_try_string() so it actually can return 0
5496         (dbus_g_proxy_connect_signal): ditto
5497
5498 2005-02-04  Havoc Pennington  <hp@redhat.com>
5499
5500         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5501         bogus warning
5502         (tristring_from_message): assert cleanly on null path/interface
5503         (should not be possible though I decided later)
5504         (dbus_g_proxy_dispose): move proxy manager unregistration here
5505         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5506         g_return_if_fail() checks
5507
5508 2005-02-04  Havoc Pennington  <hp@redhat.com>
5509
5510         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5511
5512         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5513         (with some minor changes)
5514
5515         * doc/dbus-specification.xml: add deprecated attribute to
5516         introspection format
5517
5518 2005-01-31  Havoc Pennington  <hp@redhat.com>
5519
5520         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5521         think it's sort of right
5522
5523 2005-01-30  Havoc Pennington  <hp@redhat.com>
5524
5525         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5526
5527 2005-01-30  Havoc Pennington  <hp@redhat.com>
5528
5529         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5530
5531         * autogen.sh: change to autotools 1.9
5532
5533         * glib/dbus-gproxy.c: completely change how signals work
5534         (dbus_g_proxy_add_signal): new function to specify signature of a
5535         signal
5536         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5537         and g_warning if the incoming message has the wrong signature.
5538
5539 2005-01-30  Havoc Pennington  <hp@redhat.com>
5540
5541         * tools/dbus-names-model.c (have_names_notify): fix this
5542
5543         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5544         up the string array handling a bit 
5545
5546 2005-01-30  Havoc Pennington  <hp@redhat.com>
5547
5548         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5549         (dbus_g_pending_call_cancel): new function
5550
5551         * dbus/dbus-glib.h: move GType decls for connection/message here;
5552         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5553         here, just kind of rationalizing how we handle all that
5554
5555         * tools/dbus-names-model.c: new file for a tree model listing the
5556         services on a bus
5557
5558         * tools/dbus-tree-view.c (model_new): use proper typing on the
5559         model rows
5560
5561 2005-01-30  Havoc Pennington  <hp@redhat.com>
5562
5563         * glib/dbus-gmain.c: add a custom GSource back that just checks
5564         whether the message queue has anything in it; otherwise, there are 
5565         cases where we won't see messages in the queue since there was no 
5566         IO visible to the glib main loop
5567
5568         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5569         increase default message timeout to 25 seconds
5570
5571 2005-01-30  Havoc Pennington  <hp@redhat.com>
5572
5573         * test/glib/test-profile.c (no_bus_stop_server): remove the
5574         warning about the g_warning that I just fixed
5575
5576         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5577         custom source, seems to be a lot easier to understand and work
5578         better.
5579
5580 2005-01-30  Havoc Pennington  <hp@redhat.com>
5581
5582         I think this main loop thing is conceptually broken, but here are 
5583         some band aids. I'll maybe rewrite it in a minute.
5584         
5585         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5586         custom GSource, so don't pass it in; confusing
5587         (gsource_server_finalize, gsource_connection_finalize): add
5588         finalize handlers that remove all the watches.  
5589
5590 2005-01-30  Havoc Pennington  <hp@redhat.com>
5591
5592         * glib/dbus-gobject.c (introspect_properties): fix the XML
5593         generated
5594
5595         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5596         which effectively detects the use of freed messages
5597
5598         * glib/dbus-gobject.c (handle_introspect): modify and return the
5599         reply message instead of the incoming message
5600
5601         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5602         gee, maybe it should SEND THE XML instead of just making a string
5603         and freeing it again ;-)
5604
5605         * tools/dbus-print-message.c (print_message): improve printing of
5606         messages
5607
5608         * configure.in: add debug-glib.service to the output
5609
5610 2005-01-30  Havoc Pennington  <hp@redhat.com>
5611
5612         dbus-viewer introspected and displayed the bus driver
5613         
5614         * dbus/dbus-object-tree.c 
5615         (object_tree_test_iteration): add tests for a handler registered on "/"
5616
5617         * dbus/dbus-object-tree.c
5618         (_dbus_decompose_path): fix to handle path "/" properly
5619         (run_decompose_tests): add tests for path decomposition
5620         
5621         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5622         properly
5623
5624         * glib/dbus-gobject.c (handle_introspect): fix quotes
5625
5626         * test/glib/run-test.sh: support launching the bus, then running
5627         dbus-viewer
5628
5629         * test/glib/test-service-glib.c (main): put in a trivial gobject
5630         subclass and register it on the connection
5631
5632         * bus/driver.c (bus_driver_handle_introspect): implement
5633         introspection of the bus driver service
5634
5635         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5636         identifiers, doctype decl
5637
5638         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5639         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5640         returning the service unchanged.
5641         (bus_driver_handle_message): remove old check for reply_serial in
5642         method calls, now the message type deals with that
5643         (bus_driver_handle_message): handle NULL interface
5644
5645         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5646
5647         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5648         -1 for len
5649
5650         * tools/dbus-viewer.c: add support for introspecting a service on
5651         a bus
5652
5653         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5654         (dbus_g_pending_call_unref): add
5655
5656 2005-01-29  Havoc Pennington  <hp@redhat.com>
5657
5658         * tools/dbus-tree-view.c: add support for displaying properties.
5659         (run dbus-viewer with an introspect xml file as arg, then resize
5660         the window so the tree elements show up, not sure what that is)
5661
5662         * glib/dbus-gobject.c (handle_introspect): return
5663         org.freedesktop.Properties and org.freedesktop.Introspectable
5664         interfaces when we are introspected.
5665
5666         * doc/dbus-specification.xml: allow empty interface name when 
5667         Get/Set a property
5668
5669 2005-01-29  Havoc Pennington  <hp@redhat.com>
5670
5671         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5672         though it uses glib, it could be extended for any binding in
5673         principle
5674
5675         * glib/dbus-gobject.c (gobject_message_function): change to the
5676         new way properties work
5677
5678         * dbus/dbus-protocol.h: add the new interfaces
5679
5680         * doc/dbus-specification.xml: document the introspection format,
5681         Introspectable interface, and add an org.freedesktop.Properties
5682         interface.
5683
5684         * glib/dbus-gparser.c: add support for a <property> element
5685
5686         * glib/dbus-gidl.c: add PropertyInfo
5687
5688         * glib/dbus-gobject.c (handle_introspect): put the outermost
5689         <node> outside the signal and property descriptions.
5690         (introspect_properties): export properties as <property> rather
5691         than as method calls
5692
5693 2005-01-28  Havoc Pennington  <hp@redhat.com>
5694
5695         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5696         related to authentication protocol
5697
5698 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5699
5700         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5701                 - BUS_ACTIVATION -> BUS_STARTER
5702                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5703                 - class MessageIter (__init__): Added recursion checking 
5704                 so we throw a nice error instead of just disconnecting from the
5705                 bus.
5706                 (get): Added arg_type parameter for recursion.
5707                 Removed the nil type
5708                 Added signiture type placeholder (not implemented)
5709                 Added struct type placeholder (not implemented)
5710                 Added varient type placeholder (not implemented)
5711                 Commented out dict type for now     
5712                 (get_element_type): renamed from get_array_type
5713                 (get_*): changed to use the dbus_message_iter_get_basic API
5714                 (get_*_array): removed in favor of recursive get_array method
5715                 (get_array): new recursive method which calls get to marshal
5716                 the elements of the array
5717                 (value_to_dbus_sig): New method returns the corrasponding
5718                 dbus signiture to a python value
5719                 (append): Comment out dict handling for now
5720                 Handle lists with the new recursive API
5721                 Comment out None handling for now
5722                 (append_nil): removed
5723                 (append_*): changed to use dbus_message_iter_append_basic API
5724                 (append_*_array): removed in favor of recursive append_array 
5725                 method
5726                 (__str__): Make it easier to print out recursive iterators
5727                 for debugging
5728                 - class Message (__str__): moved type inspection to the
5729                 MessageIter class' __str__ method
5730                 (get_iter): Added an append parameter wich defaults to False
5731                 If True use the new API's to create an append iterator
5732
5733         * python/dbus.py: Update to use new bindings API
5734                 - TYPE_ACTIVATION -> TYPE_STARTER
5735                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5736                 - class ActivationBus -> class StarterBus
5737                 - class RemoteObject (__call__): get an append iterator
5738                 - (_dispatch_dbus_method_call): get an append iterator
5739                 - class Object (emit_signal): get an append iterator
5740
5741         * python/examples/: Fixed up the examples to work with the new API
5742                 
5743 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5744
5745         * configure.in: Bump version up to 0.30.
5746
5747         * HACKING: Add a release item to bump the version number up after 
5748         a release.
5749
5750 2005-01-28  Havoc Pennington  <hp@redhat.com>
5751
5752         * doc/dbus-specification.xml: update to describe 16-bit types and
5753         dict entries
5754
5755         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5756         assertion
5757
5758         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5759         type
5760
5761         * dbus/dbus-marshal-recursive.c: implement
5762
5763 2005-01-27  Havoc Pennington  <hp@redhat.com>
5764
5765         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5766
5767         * configure.in: find the right type for 16 and 32 bit ints as well
5768         as 64
5769
5770         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5771         the 16-bit types so people don't have to stuff them in 32-bit or
5772         byte arrays.
5773
5774 2005-01-27  Havoc Pennington  <hp@redhat.com>
5775
5776         * dbus/dbus-message.c: byteswap the message if you init an
5777         iterator to read/write from it
5778         
5779         * dbus/dbus-marshal-byteswap.c: new file implementing 
5780         _dbus_marshal_byteswap()
5781
5782         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5783
5784 2005-01-26  Havoc Pennington  <hp@redhat.com>
5785         
5786         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5787         build, apparently - nobody noticed?)
5788         
5789 2005-01-26  Havoc Pennington  <hp@redhat.com>
5790
5791         * dbus/dbus-marshal-recursive.h: remove todo comment
5792
5793 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5794
5795         * Land the mono binding changes to conform to the new APIs.
5796
5797         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5798         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5799
5800         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5801         type code as a string.
5802         (InitAppending): Rename dbus_message_append_iter_init() to
5803         dbus_message_iter_init_append().
5804
5805         * mono/BusDriver.cs: Rename ServiceEventHandler to
5806         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5807         Rename ServiceOwnerChanged to NameOwnerChanged.
5808
5809         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5810         underlying C call.
5811
5812         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5813
5814         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5815         dbus_bus_acquire_service() to dbus_bus_request_name().
5816
5817         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5818         of Type.UnderlyingSystemType to get the correct element type for
5819         the array.
5820         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5821         dbus_message_get_{element|arg}_type() instead of
5822         dbus_message_iter_init_array_iterator().
5823         (Append): Replace dbus_message_iter_append_array() with
5824         dbus_message_iter_open_container() and
5825         dbus_message_iter_close_container().
5826
5827         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5828         types have been removed.
5829         
5830         * mono/DBusType/*.cs: Replace calls of
5831         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5832         but specify the type in the DllImport extern declaration.  Ditto
5833         for dbus_message_iter_append_[type]() ->
5834         dbus_message_iter_append_basic().
5835
5836         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5837         NameOwnerChangedHandler.
5838
5839 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5840
5841         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5842                 - get_base_service -> get_unique_name
5843                 - bus_get_base_service -> bus_get_unique_name
5844                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5845                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5846                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5847                 - bus_activate_service -> bus_start_service_by_name
5848                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5849                 - bus_acquire_service -> bus_request_name
5850                 - dbus_bus_acquire_service -> dbus_bus_request_name
5851                 - bus_service_exists -> bus_name_has_owner
5852                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5853
5854         * python/dbus.py: Rename of methods
5855                 - activate_service -> start_service_by_name
5856                 - bus_acquire_service -> bus_request_name
5857                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5858                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5859
5860         
5861 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5862
5863         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5864         signature for the method that can't be found.
5865
5866         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5867         the message has any arguments, we need to call
5868         _dbus_type_reader_get_current_type(), not
5869         _dbus_type_reader_has_next().
5870
5871 2005-01-24  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-message-factory.c: more testing of message validation
5874
5875         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5876         header
5877
5878 2005-01-23  Havoc Pennington  <hp@redhat.com>
5879
5880         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5881         get this all working, not many tests in the framework yet though
5882
5883 2005-01-22  Havoc Pennington  <hp@redhat.com>
5884
5885         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5886         tutorial, based on work from David Wheeler.
5887
5888 2005-01-21  Havoc Pennington  <hp@redhat.com>
5889
5890         * dbus/dbus-bus.c: add more return_if_fail checks
5891
5892         * dbus/dbus-message.c (load_message): have the "no validation"
5893         mode (have to edit the code to toggle the mode for now though)
5894
5895         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5896         skips all validation; I want to use this at least for benchmark
5897         baseline, I'm not sure if it should be a publicly-available switch.
5898
5899 2005-01-21  Havoc Pennington  <hp@redhat.com>
5900
5901         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5902         toplevel doxygen group as the low-level API stuff
5903
5904         * dbus/dbus.h: note that libdbus is the low-level API
5905
5906 2005-01-20  Havoc Pennington  <hp@redhat.com>
5907
5908         * update-dbus-docs.sh: script to update docs on the web site, only
5909         works for me though. neener.
5910
5911 2005-01-20  Havoc Pennington  <hp@redhat.com>
5912
5913         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5914         code can reveal bugs in it
5915
5916 2005-01-20  Havoc Pennington  <hp@redhat.com>
5917
5918         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5919         select() version, patches from Tor Lillqvist
5920
5921 2005-01-20  Havoc Pennington  <hp@redhat.com>
5922
5923         * doc/dbus-tutorial.xml: replace > with &gt;
5924
5925         * bus/services.c (bus_registry_acquire_service): validate the name
5926         and return a better error if it's no good.
5927
5928         * doc/dbus-specification.xml: note NO_AUTO_START change
5929
5930         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5931         from AUTO_START, we're toggling the default
5932
5933         * bus/dispatch.c: adapt the tests to change of auto-start default
5934
5935 2005-01-18  Havoc Pennington  <hp@redhat.com>
5936
5937         * rename dbus-daemon-1 to dbus-daemon throughout
5938
5939 2005-01-18  Havoc Pennington  <hp@redhat.com>
5940
5941         * Throughout, grand renaming to strip out the use of "service",
5942         just say "name" instead (or "bus name" when ambiguous).  Did not
5943         change the internal code of the message bus itself, only the
5944         programmer-facing API and messages.
5945         
5946         * doc/dbus-specification.xml: further update the message bus section
5947         
5948         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5949         in error case
5950
5951 2005-01-17  Havoc Pennington  <hp@redhat.com>
5952
5953         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5954         ever
5955
5956         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5957         "invalid name character" not only non-ASCII
5958
5959         * doc/dbus-specification.xml: further update spec, message bus 
5960         parts are still out-of-date but the marshaling etc. stuff is now
5961         accurate-ish
5962
5963 2005-01-17  Havoc Pennington  <hp@redhat.com>
5964
5965         * doc/dbus-specification.xml: partially update spec
5966
5967 2005-01-17  Havoc Pennington  <hp@redhat.com>
5968
5969         * Throughout, align variant bodies according to the contained
5970         type, rather than always to 8. Should save a fair bit of space in
5971         message headers.
5972         
5973         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5974         fix handling of case where p == end
5975
5976         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5977
5978 2005-01-17  Havoc Pennington  <hp@redhat.com>
5979
5980         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5981
5982         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5983         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5984         are marshaling/unmarshaling a boolean.
5985
5986 2005-01-16  Havoc Pennington  <hp@redhat.com>
5987
5988         This is about it on what can be disabled/deleted from libdbus
5989         easily, back below 150K anyhow. Deeper cuts are more work than 
5990         just turning the code off as I've done here.
5991         
5992         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5993         signed int convenience funcs
5994
5995         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5996         verbose mode
5997
5998         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5999         things out of libdbus
6000
6001         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6002         
6003         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6004         tests-enabled-only, though it should probably be deleted)
6005
6006         * dbus/dbus-message-util.c: same stuff
6007
6008         * dbus/dbus-auth-util.c: same stuff
6009
6010 2005-01-16  Havoc Pennington  <hp@redhat.com>
6011
6012         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6013
6014         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6015         way for stripping down dbus-userdb.c stuff included in libdbus.
6016         Rename _dbus_parse_uid for consistency.
6017
6018 2005-01-16  Havoc Pennington  <hp@redhat.com>
6019
6020         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6021         name the assertion failed in
6022
6023         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6024         (_dbus_return_val_if_fail): assert that the name of the function
6025         containing the check doesn't start with '_', since we only want to 
6026         use checks on public functions
6027         
6028         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6029         checks to assertions
6030
6031         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6032         change checks to asserts for private function
6033
6034         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6035         to asserts for private function
6036
6037         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6038         broken assertion that was breaking make check
6039         (_dbus_type_reader_array_is_empty): remove this rather than fix
6040         it, was only used in assertions
6041
6042 2005-01-16  Havoc Pennington  <hp@redhat.com>
6043
6044         * test/unused-code-gc.py: hacky script to find code that's used
6045         only by the bus (not libdbus) or used only by tests or not used at
6046         all. It has some false alarms, but looks like we can clean up a
6047         lot of size from libdbus.
6048
6049         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6050         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6051         
6052 2005-01-16  Havoc Pennington  <hp@redhat.com>
6053
6054         * Add and fix docs according to Doxygen warnings throughout
6055         source.
6056         
6057         * dbus/dbus-marshal-recursive.c
6058         (_dbus_type_reader_array_is_empty): change this to just call
6059         array_reader_get_array_len() and make it static
6060
6061         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6062         from get_array_type
6063         (dbus_message_iter_init_append): rename from append_iter_init
6064
6065         * dbus/dbus-marshal-recursive.c
6066         (_dbus_type_reader_get_element_type): rename from
6067         _dbus_type_reader_get_array_type
6068
6069 2005-01-15  Havoc Pennington  <hp@redhat.com>
6070
6071         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6072
6073         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6074         when DBUS_DISABLE_ASSERT
6075         (_dbus_marshal_set_basic): be sure we align for the string length
6076
6077         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6078         this look faster
6079
6080         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6081         inline macro version
6082         (_dbus_string_set_byte): provide inline macro version
6083
6084 2005-01-15  Havoc Pennington  <hp@redhat.com>
6085
6086         * Land the new message args API and type system.
6087
6088         This patch is huge, but the public API change is not 
6089         really large. The set of D-BUS types has changed somewhat, 
6090         and the arg "getters" are more geared toward language bindings;
6091         they don't make a copy, etc.
6092
6093         There are also some known issues. See these emails for details
6094         on this huge patch:
6095         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6096         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6097         
6098         * dbus/dbus-marshal-*: all the new stuff
6099
6100         * dbus/dbus-message.c: basically rewritten
6101
6102         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6103         freed blocks to be all non-nul bytes so using freed memory is less
6104         likely to work right
6105
6106         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6107         DBUS_FAIL_MALLOC=N environment variable, so you can do
6108         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6109         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6110         thorough.
6111
6112         * qt/message.cpp: port to the new message args API
6113         (operator<<): use str.utf8() rather than str.unicode()
6114         (pretty sure this is right from the Qt docs?)
6115
6116         * glib/dbus-gvalue.c: port to the new message args API
6117
6118         * bus/dispatch.c, bus/driver.c: port to the new message args API
6119
6120         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6121         "locked" flag to TRUE and align_offset to 0; I guess we never
6122         looked at these anyhow, but seems cleaner.
6123
6124         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6125         move allocation padding macro to this header; use it to implement
6126         (_DBUS_STRING_STATIC): ability to declare a static string.
6127
6128         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6129         change to return TRUE if the interface is not set.
6130
6131         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6132         to dbus-marshal-validate.[hc]
6133
6134         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6135         dbus-internals.c
6136
6137         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6138         to dbus-marshal-*.[hc]
6139
6140         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6141         function here from dbus-marshal.c
6142
6143 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6144
6145         * NEWS: Update for 0.23.
6146
6147         * configure.in: Release 0.23.
6148
6149 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6150
6151         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6152         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6153         behind.
6154
6155         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6156         uninstall"
6157
6158         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6159         is an enum, get the enum's underlying type.  Another mono
6160         1.1.3 fix.
6161
6162 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6163
6164         Patch from Sjoerd Simons <sjoerd@luon.net>
6165
6166         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6167         DESTDIR.  It breaks stuff.
6168
6169 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6170
6171         Patch from Tambet Ingo <tambet@ximian.com>
6172
6173         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6174         calling type.GetElementType().  The code previously depended on
6175         broken Mono behavior, which was fixed in Mono 1.1.3.
6176
6177         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6178         Activator.CreateInstance() so that the class's constructor is
6179         called with the right parameters.
6180
6181 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6182
6183         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6184
6185         * dbus/dbus-connection.c
6186         (_dbus_connection_queue_received_message_link): Call
6187         _dbus_connection_remove_timeout() instead of the _locked()
6188         variant, since it's always called from
6189         _dbus_connection_handle_watch(), which handles the locking.
6190         Removed the _locked() variant since it's no longer used.
6191
6192 2005-01-03  Havoc Pennington  <hp@redhat.com>
6193
6194         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6195         return
6196         
6197 2004-12-26  Havoc Pennington  <hp@redhat.com>
6198
6199         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6200
6201 2005-01-03  Havoc Pennington  <hp@redhat.com>
6202
6203         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6204         floating point
6205
6206         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6207
6208 2005-01-02  Havoc Pennington  <hp@redhat.com>
6209
6210         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6211
6212 2005-01-01  Havoc Pennington  <hp@redhat.com>
6213
6214         * configure.in: add -Wfloat-equal
6215
6216 2005-01-01  Havoc Pennington  <hp@redhat.com>
6217
6218         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6219         for a variety of reasons '==' doesn't do this.
6220
6221 2004-12-31  Havoc Pennington  <hp@redhat.com>
6222
6223         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6224         I keep wishing I had
6225
6226 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6227
6228         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6229
6230 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6231
6232         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6233         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6234         dbus-protocol.h.  Because they are defines and not enums they are not
6235         autogenerated.
6236
6237 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6238
6239         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6240         dbus_bus_activate_service
6241
6242         * python/dbus.py (Bus.activate_service): activate a service on the
6243         bus.
6244
6245 2004-12-24  Havoc Pennington  <hp@redhat.com>
6246
6247         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6248         file format has also changed and I haven't adapted to that yet
6249         
6250         * Makefile.am: load .gcno files from latest gcc
6251
6252 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6253         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6254
6255         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6256         lowlevel binding
6257
6258         * python/dbus.py (get_unix_user): Added binding to 
6259         call dbus_bindings.bus_get_unix_user
6260
6261         * python/extract.py: Modified the proto_pat regex to
6262         handle unsigned long
6263
6264 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6265
6266         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6267         better POSIX compliance.
6268
6269 2004-12-19  Havoc Pennington  <hp@redhat.com>
6270
6271         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6272         (_dbus_string_insert_8_aligned): new functions
6273
6274         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6275
6276 2004-12-18  Havoc Pennington  <hp@redhat.com>
6277
6278         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6279         macro
6280
6281         * dbus/dbus-message.c: fix a comment, and add a still-unused
6282         not-implemented function
6283
6284         * dbus/dbus-marshal.h: fix comment
6285
6286         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6287
6288 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6289
6290         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6291         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6292         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6293         Type.UnderlyingSystemType to get the actual system type
6294         underneath.  This code previously depended on the broken Mono
6295         behavior, which was fixed in 1.1.3.
6296
6297 2004-11-27  Havoc Pennington  <hp@redhat.com>
6298
6299         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6300         are disabled
6301         (_dbus_string_get_const_data): inline when asserts are disabled
6302
6303         * dbus/dbus-message.c: record the _dbus_current_generation of
6304         creation so we can complain if dbus_shutdown() is used improperly.
6305         Do this only if checks are enabled.
6306
6307         * dbus/dbus-connection.c: ditto
6308         
6309 2004-11-26  Havoc Pennington  <hp@redhat.com>
6310
6311         * test/glib/test-profile.c: add with_bus mode to profile echoes
6312         that go through the bus.
6313
6314         * test/glib/run-test.sh: add ability to run test-profile
6315
6316         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6317         config file reload.
6318
6319 2004-11-26  Havoc Pennington  <hp@redhat.com>
6320
6321         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6322         thing was implemented
6323
6324 2004-11-26  Havoc Pennington  <hp@redhat.com>
6325
6326         * test/glib/test-profile.c: tweak a bit, add support for some
6327         made-up minimal malloc overhead with plain sockets, since in 
6328         real life some sort of buffers are unavoidable thus we could 
6329         count them in the theoretical best case
6330
6331 2004-11-26  Havoc Pennington  <hp@redhat.com>
6332
6333         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6334         where I was trying to cache one too many messages
6335
6336 2004-11-26  Havoc Pennington  <hp@redhat.com>
6337
6338         * dbus/dbus-message.c: reimplement message cache as an array which 
6339         makes the cache about twice as fast and saves maybe 1.5% overall
6340
6341 2004-11-26  Havoc Pennington  <hp@redhat.com>
6342
6343         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6344         message cache lock here
6345
6346 2004-11-26  Havoc Pennington  <hp@redhat.com>
6347
6348         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6349         the "char byte_order" next to each other to save 4 bytes
6350         (dbus_message_new_empty_header): reduce preallocation, since the
6351         message cache should achieve a similar effect
6352         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6353         message cache that keeps a few DBusMessage around in a pool,
6354         another 8% speedup or so.
6355
6356         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6357
6358 2004-11-25  Havoc Pennington  <hp@redhat.com>
6359
6360         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6361         to write, without reading or blocking, try it before the poll()
6362         and skip the poll() if nothing remains to write. This is about a
6363         3% speedup in the echo client/server
6364
6365 2004-11-25  Havoc Pennington  <hp@redhat.com>
6366
6367         The primary change here is to always write() once before adding
6368         the write watch, which gives us about a 10% performance increase.
6369         
6370         * dbus/dbus-transport-unix.c: a number of modifications to cope
6371         with removing messages_pending
6372         (check_write_watch): properly handle
6373         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6374         messages_pending stuff
6375         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6376         AUTHENTICATED cases
6377         (unix_handle_watch): after writing, see if the write watch can be
6378         removed
6379         (unix_do_iteration): assert that write_watch/read_watch are
6380         non-NULL rather than testing that they aren't, since they 
6381         aren't allowed to be NULL. check_write_watch() at the end so 
6382         we add the watch if we did not finish writing (e.g. got EAGAIN)
6383
6384         * dbus/dbus-transport-protected.h: remove messages_pending call,
6385         since it resulted in too much inefficient watch adding/removing; 
6386         instead we now require that the transport user does an iteration 
6387         after queueing outgoing messages, and after trying the first
6388         write() we add a write watch if we got EAGAIN or exceeded our 
6389         max bytes to write per iteration setting
6390
6391         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6392         function
6393
6394         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6395         freed and then accessed, valgrind flagged this bug, fix it
6396
6397         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6398         as the last valid field plus 1, where really it is equal to the
6399         last valid field. Corrects some message corruption issues.
6400
6401         * dbus/dbus-mainloop.c: verbosity changes
6402
6403         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6404         instead of aborting in one of the test codepaths
6405
6406         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6407         caused not printing the pid ever again if a verbose was missing
6408         the newline at the end
6409         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6410
6411         * dbus/dbus-connection.c: verbosity changes; 
6412         (dbus_connection_has_messages_to_send): new function
6413         (_dbus_connection_message_sent): no longer call transport->messages_pending
6414         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6415         try to write() immediately, so we can avoid the write watch. This
6416         is the core purpose of this patchset
6417         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6418         dump the outgoing message queue, so nobody will get confused
6419         trying to send them or thinking stuff is pending to be sent
6420
6421         * bus/test.c: verbosity changes
6422
6423         * bus/driver.c: verbosity/assertion changes
6424
6425         * bus/dispatch.c: a bunch of little tweaks to get it working again
6426         because this patchset changes when/where you need to block.
6427
6428 2004-11-23  Havoc Pennington  <hp@redhat.com>
6429
6430         * test/glib/test-profile.c: modify to accept a plain_sockets
6431         argument in which case it will bench plain sockets instead of
6432         libdbus, for comparison purposes.
6433
6434 2004-11-22  Havoc Pennington  <hp@redhat.com>
6435
6436         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6437         threads for more time, so sysprof can get a grip on it.
6438
6439         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6440         pointless variable
6441
6442 2004-11-13  Havoc Pennington  <hp@redhat.com>
6443
6444         * test/glib/test-profile.c: fix this thing up a bit
6445
6446         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6447         preallocation sizes by a fair bit; not sure if this will be an
6448         overall performance win or not, but it does reduce reallocs.
6449
6450         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6451         the test hack that forced constant realloc if asserts are
6452         disabled, so we can profile sanely. Sprinkle in some
6453         _DBUS_UNLIKELY() which are probably pointless, but before I
6454         noticed the real performance problem I put them in.
6455         (_dbus_string_validate_utf8): micro-optimize this thing a little
6456         bit, though callgrind says it didn't help; then special-case
6457         ascii, which did help a lot; then be sure we detect nul bytes as
6458         invalid, which is a bugfix.
6459         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6460         superstition; use memset to nul the padding instead of a manual
6461         loop.
6462         (_dbus_string_get_length): inline this as a
6463         macro; it showed up in the profile because it's used for loop
6464         tests and so forth
6465
6466 2004-11-10  Colin Walters  <walters@verbum.org>
6467
6468         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6469         for extra paranoia.
6470
6471 2004-11-09  Colin Walters  <walters@verbum.org>
6472
6473         * dbus/dbus-string.c (_dbus_string_get_length): New
6474         function, writes DBusString to C buffer.
6475
6476         * dbus/dbus-string.h: Prototype it.
6477
6478         * dbus/dbus-message.c (dbus_message_type_to_string): New
6479         function, converts message type into C string.
6480
6481         * dbus/dbus-message.h: Prototype it.
6482
6483         * bus/selinux.c (bus_selinux_check): Take source pid,
6484         target pid, and audit data.  Pass audit data to
6485         avc_has_perm.
6486         (log_audit_callback): New function, appends extra
6487         audit information.
6488         (bus_selinux_allows_acquire_service): Also take
6489         service name, add it to audit data.
6490         (bus_selinux_allows_send): Also take message
6491         type, interface, method member, error name,
6492         and destination, and add them to audit data.
6493         (log_cb): Initialize func_audit.
6494         
6495         * bus/selinux.h (bus_selinux_allows_acquire_service)
6496         (bus_selinux_allows_send): Update prototypes 
6497
6498         * bus/services.c (bus_registry_acquire_service): Pass
6499         service name to bus_selinux_allows_acquire_service.
6500
6501         * bus/bus.c (bus_context_check_security_policy): Pass
6502         additional audit data.  Move assignment of dest
6503         to its own line.
6504
6505 2004-11-07  Colin Walters  <walters@verbum.org>
6506
6507         * dbus/dbus-transport-unix.c (do_authentication): Always
6508         initialize auth_completed.
6509         
6510 2004-11-07  Colin Walters  <walters@verbum.org>
6511
6512         * bus/bus.c (load_config): Break into three
6513         separate functions: process_config_first_time_only,
6514         process_config_every_time, and process_config_postinit.
6515         (process_config_every_time): Move call of
6516         bus_registry_set_service_context_table into
6517         process_config_postinit.
6518         (process_config_postinit): New function, does
6519         any processing that needs to happen late
6520         in initialization (and also on reload).
6521         (bus_context_new): Instead of calling load_config,
6522         open config parser here and call process_config_first_time_only
6523         and process_config_every_time directly.  Later, after
6524         we have forked but before changing UID,
6525         invoke bus_selinux_full_init, and then call
6526         process_config_postinit.
6527         (bus_context_reload_config): As in bus_context_new,
6528         load parse file inside here, and call process_config_every_time
6529         and process_config_postinit.
6530
6531         * bus/services.h, bus/services.c
6532         (bus_registry_set_service_context_table): Rename
6533         from bus_registry_set_sid_table.  Take string hash from config
6534         parser, and convert them here into SIDs.
6535
6536         * bus/config-parser.c (struct BusConfigParser): Have
6537         config parser only store a mapping of service->context
6538         string.
6539         (merge_service_context_hash): New function.
6540         (merge_included): Merge context string hashes instead
6541         of using bus_selinux_id_table_union.
6542         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6543         simply create a new string hash.
6544         (bus_config_parser_unref): Unref it.
6545         (start_selinux_child): Simply insert strings into hash,
6546         don't call bus_selinux_id_table_copy_over.
6547
6548         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6549         (bus_selinux_id_table_copy_over): Delete.
6550
6551 2004-11-03  Colin Walters  <walters@verbum.org>
6552
6553         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6554         variables.
6555         
6556 2004-11-03  Colin Walters  <walters@verbum.org>
6557
6558         * bus/test-main.c (test_pre_hook): Fix test logic,
6559         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6560
6561 2004-11-02  Colin Walters  <walters@redhat.com>
6562
6563         * bus/selinux.c (bus_selinux_init): Split into two functions,
6564         bus_selinux_pre_init and bus_selinux_post_init.
6565         (bus_selinux_pre_init): Just determine whether SELinux is
6566         enabled.
6567         (bus_selinux_post_init): Do everything else.
6568
6569         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6570         config file, and bus_selinux_post_init after.  This ensures that
6571         we don't lose the policyreload notification thread that
6572         bus_selinux_init created before forking previously.
6573         
6574         * bus/test-main.c (test_pre_hook): Update for split.
6575
6576 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6577
6578         Patch from Johan Fischer <linux@fischaz.com>
6579         
6580         * mono/doc/Makefile.am (install-data-local): Added directory
6581         install for DESTDIR
6582
6583 2004-10-29  Colin Walters  <walters@redhat.com>
6584
6585         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6586         parameter for fd to write pid to.       
6587
6588         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6589         
6590         * bus/bus.c (bus_context_new): Pass print_pid_fd
6591         to _dbus_become_daemon (bug #1720)
6592
6593 2004-10-29  Colin Walters  <walters@redhat.com>
6594
6595         Patch from Ed Catmur <ed@catmur.co.uk>
6596
6597         * mono/doc/Makefile.am (install-data-local): Handle
6598         DESTDIR.
6599
6600 2004-10-29  Colin Walters  <walters@redhat.com>
6601
6602         * bus/.cvsignore, qt/.cvsignore: Update.
6603
6604 2004-10-29  Colin Walters  <walters@redhat.com>
6605
6606         Patch from Kristof Vansant <de_lupus@pandora.be>
6607
6608         * configure.in: Detect Slackware.
6609         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6610         * bus/rc.messagebus.in: New file.
6611
6612 2004-10-29  Colin Walters  <walters@redhat.com>
6613
6614         * tools/dbus-monitor.c (filter_func): Return
6615         DBUS_HANDLER_RESULT_HANDLED in filter function
6616         for now.  See:
6617         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6618
6619 2004-10-29  Colin Walters  <walters@redhat.com>
6620
6621         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6622
6623         * bus/services.c (bus_registry_acquire_service): 
6624         Correctly retrieve service name from DBusString
6625         for printing.
6626
6627 2004-10-29  Colin Walters  <walters@redhat.com>
6628
6629         * dbus/dbus-glib.h: Update documentation to not
6630         refer to internal APIs.
6631
6632 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6633
6634         * mono/Arguments.cs (GetDBusTypeConstructor):
6635         type.UnderlyingSystemType will return "System.Byte" if you do it
6636         on "byte[]", which is not what we want.  So check the type.IsArray
6637         property and use System.Array instead.
6638
6639 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6640
6641         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6642         the DBusUserInfo structure since this is passed into the function.
6643         This would cause a double free when the function that allocated
6644         the structure would try to free it when an error occured.
6645
6646         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6647         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6648         for service activation to avoid 32bit/64bit parallel install issues
6649
6650 2004-10-21  Colin Walters  <walters@verbum.org>
6651
6652         * AUTHORS: Fix my email address, the @gnu.org one
6653         has been bouncing for some time.  Also add J5.
6654         
6655 2004-10-21  Colin Walters  <walters@verbum.org>
6656
6657         * dbus/dbus-transport-unix.c (do_authentication): Return
6658         authentication status to callers.
6659         (unix_handle_watch): If we completed authentication this round,
6660         don't do another read.  Instead wait until the next iteration,
6661         after we've read any pending data in the auth buffer.
6662         (unix_do_iteration): Ditto.
6663         (unix_handle_watch): Updated for new do_authentication prototype.
6664
6665 2004-10-18  Colin Walters  <walters@verbum.org>
6666
6667         * bus/selinux.c (bus_selinux_enabled): Handle
6668         --disable-selinux case.
6669         
6670 2004-10-18  Colin Walters  <walters@verbum.org>
6671
6672         * bus/selinux.h: Add bus_selinux_enabled.
6673         
6674         * bus/selinux.c (bus_selinux_enabled): Implement it.
6675         
6676         * bus/config-parser.c (struct include): Add
6677         if_selinux_enabled member.
6678         (start_busconfig_child): Parse if_selinux_enabled
6679         attribute for include.
6680         (bus_config_parser_content): Handle it.
6681
6682         * bus/session.conf.in, bus/system.conf.in: Add
6683         inclusion of context mapping to default config files;
6684         conditional on SELinux being enabled.
6685         
6686         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6687         
6688         * test/data/invalid-config-files/badselinux-1.conf, 
6689         test/data/invalid-config-files/badselinux-2.conf:
6690         Test files for bad syntax.
6691         
6692 2004-10-17  Colin Walters  <walters@verbum.org>
6693
6694         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6695         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6696         format specifier mismatches.
6697
6698 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6699
6700         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6701         format string.
6702
6703         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6704         pointer (bug #1540, Leonardo Boiko).
6705
6706 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6707
6708         * mono/BusDriver.cs: Changed BusDriver struct to remove
6709         the ServiceCreated and ServiceDeleted events and replace them
6710         with the new ServiceOwnerChanged event.
6711
6712         * mono/example/BusListener.cs: Added a new example program,
6713         which listens for and reports any ServiceOwnerChanged events
6714         on the bus driver.
6715
6716         * mono/example/Makefile.am (DESTDIR): Build changes for the
6717         new BusListener.cs example.
6718
6719 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6720
6721         * bus/signals.c (bus_match_rule_parse): validate the components of
6722         match rules (bug #1439).
6723
6724         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6725
6726 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6727
6728         * doc/dbus-specification.xml: document ServiceOwnerChanged
6729         signal.
6730         
6731         * bus/driver.c, bus/driver.h, bus/services.c: Use
6732         ServiceOwnerChanged signal instead of ServiceCreated and
6733         ServiceDeleted.
6734         
6735         * bus/dispatch.c: update testcase for the new signal.
6736
6737 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6738
6739         Patch from Nat Friedman <nat@novell.com>
6740
6741         * mono/Makefile.am: A number of small build fixes to allow "make
6742         distcheck" to succeed.
6743
6744         * mono/example/Makefile.am: "make distcheck" fixes.
6745
6746         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6747         key in @srcdir@.
6748
6749         * test/Makefile.am: "make distcheck" fixes.
6750
6751 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6752
6753         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6754
6755         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6756
6757         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6758         messages after the first one (bug #1389).
6759         
6760         * bus/dispatch.c (check_double_hello_message): add a test case for
6761         the double hello message bug.
6762         (check_existent_service_activation): fix check of spawning error.
6763         
6764 2004-09-16  David Zeuthen  <david@fubar.dk>
6765
6766         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6767
6768 2004-09-12  David Zeuthen  <david@fubar.dk>
6769
6770         Patch from Kay Sievers <kay.sievers@vrfy.org>
6771
6772         * bus/bus.c (bus_context_new):
6773         * bus/bus.h:
6774         * bus/main.c (usage)
6775         (main):
6776         Add commandline option --nofork to override configuration file
6777         setting.
6778
6779 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6780
6781         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6782         compilers don't like it (bug #974).
6783
6784 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6785
6786         * qt/connection.*: Applied patch by Jérôme Lodewyck
6787         <lodewyck@clipper.ens.fr> to integrate an existing
6788         connection into the Qt eventloop
6789
6790 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6791
6792         * mono/BusDriver.cs: Added.  This is a class for interacting with
6793         the org.freedesktop.DBus service.
6794
6795         * mono/Message.cs: Added a mechanism to expose the message that is
6796         currently being dispatched via the static Message.Current
6797         property.  Added Message.Sender and Message.Destination
6798         properties.
6799
6800         * mono/Handler.cs: Expose the dispatched message via
6801         Message.Current when handling method calls.
6802
6803         * mono/Service.cs: Expose the dispatched message via
6804         Message.Current when handling signal emissions.
6805         
6806         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6807         Connection.BaseService property.
6808
6809 2004-08-28  Havoc Pennington  <hp@redhat.com>
6810
6811         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6812
6813         More fixes from Steve Grubb
6814         
6815         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6816         (_dbus_listen_tcp_socket): fix fd leak
6817
6818         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6819         EINTR to a bit lower in the code
6820
6821 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6822
6823         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6824         TRUE if we are inquiring about the existence of the built-in
6825         org.freedesktop.DBus service.
6826
6827 2004-08-25  John Palmieri  <johnp@redhat.com>
6828         * bus/config-parser.c:
6829         (struct PolicyType): Add POLICY_CONSOLE
6830         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6831         (start_busconfig_child): Sets up console element when
6832         <policy at_console=""> is encountered in a policy file
6833         (append_rule_from_element): Convert console elements to console
6834         rules.
6835
6836         * bus/policy.c: 
6837         (bus_policy_create_client_policy): Add console rules to the client
6838         policy based on if the client is at the console
6839         (bus_policy_append_console_rule): New function for adding a
6840         console rule to a policy
6841         (bus_policy_merge): Handle console rule merging
6842
6843         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6844         where we check for console user files
6845         
6846         * dbus/dbus-sysdeps.c:
6847         (_dbus_file_exists): New function which checks if the given
6848         file exists
6849         (_dbus_user_at_console): New function which does the system
6850         specific process of checking if the user is at the console
6851
6852         * dbus/dbus-userdb.c:
6853         (_dbus_is_console_user): New function converts a UID to user name
6854         and then calls the system specific _dbus_user_at_console to 
6855         see if the user is at the console and therefor a console user
6856
6857 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6858
6859         * bus/config-parser.c (set_limit):
6860         * bus/dbus-daemon-1.1.in:
6861         * test/data/valid-config-files/many-rules.conf: set the
6862         max_match_rules_per_connection limt from the config file. 
6863
6864         * doc/busconfig.dtd: update the DTD.
6865
6866         * bus/driver.c: remove some unused variables.
6867
6868 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6869
6870         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6871         it's been replaced by dbus_g_bus_get
6872
6873 2004-08-23  Colin Walters  <walters@redhat.com>
6874
6875         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6876
6877         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6878
6879         * bus/selinux.c: Create a thread for policy reload notification.
6880         (bus_selinux_get_policy_root): Implement.
6881
6882         * bus/config-parser.c (start_busconfig_child)
6883         (bus_config_parser_content): Support SELinux-root relative
6884         inclusion.
6885
6886         * configure.in <HAVE_SELINUX>: Add -lpthread.
6887         
6888         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6889         (test_post_hook): Move memory checking into here.
6890         (test_pre_hook, test_post_hook): Move SELinux checks in
6891         here, but conditional on a DBUS_TEST_SELINUX environment
6892         variable.  Unfortunately we can't run the SELinux checks
6893         as a normal user, since they won't have any permissions
6894         for /selinux.  So this will have to be tested manually
6895         for now, until we have virtualization for most of
6896         libselinux.
6897         
6898 2004-08-23  Havoc Pennington  <hp@redhat.com>
6899
6900         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6901         drop supplementary groups, suggested by Steve Grubb
6902
6903 2004-08-20  Colin Walters  <walters@redhat.com>
6904
6905         * bus/config-parser.c (start_busconfig_child): Remove some unused
6906         variables.
6907         
6908         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6909         warning.
6910
6911 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6912
6913         * configure.in: If --enable-mono is passed in, if we can't find
6914         mono error out.
6915
6916         * mono/Makefile.am: Use /gacutil to install assemblies into the
6917         GAC and not /root.
6918
6919 2004-08-12  Havoc Pennington  <hp@redhat.com>
6920
6921         * NEWS: update for 0.22
6922
6923         * configure.in: release 0.22
6924
6925 2004-08-11  Colin Walters  <walters@redhat.com>
6926
6927         * tools/dbus-send.c (main, usage): Add --reply-timeout
6928         argument.
6929
6930 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6931
6932         * bus/bus.c (process_config_first_time_only): get rid of an unused
6933         DBusError that was causing a memoy leak (bug #989).
6934
6935         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6936         fix compilation on Solaris/Forte C (bug #974)
6937
6938         * bus/main.c (main): plug two minuscule memleaks.
6939
6940 2004-08-10  Havoc Pennington  <hp@redhat.com>
6941
6942         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6943
6944 2004-08-09  Havoc Pennington  <hp@redhat.com>
6945
6946         * COPYING: switch to Academic Free License version 2.1 instead of
6947         2.0, to resolve complaints about patent termination clause.
6948
6949 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6950
6951         * README: added documentation for the --enable-python 
6952         configure switch.
6953
6954 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6955
6956         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6957         _unref in the SELinux support.
6958
6959         * doc/busconfig.dtd: update DTD for SELinux support.
6960
6961         * bus/config-loader-libxml.c: fix error handler and parser
6962         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6963
6964         * configure.in: remove the warning about libxml2.
6965
6966         * dbus/dbus-bus.c: silence doxygen warning.
6967
6968 2004-07-31  Colin Walters  <walters@redhat.com>
6969
6970         * configure.in: Move #error in SELinux check to its own line.
6971
6972 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6973
6974         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6975         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6976         dbus_error_set.
6977
6978         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6979         broken by the change in the _SET_OOM macros.
6980
6981 2004-07-31  Colin Walters  <walters@redhat.com>
6982
6983         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6984         BUS_SET_OOM.
6985
6986 2004-07-31  Colin Walters  <walters@redhat.com>
6987
6988         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6989         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6990         AC_MSG_CHECKING.
6991
6992 2004-07-24  Havoc Pennington  <hp@redhat.com>
6993
6994         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6995
6996         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6997         functionality
6998
6999         * configure.in: add --enable-selinux
7000         
7001         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7002
7003         * bus/main.c (main): initialize and shut down selinux
7004
7005         * bus/connection.c: store SELinux ID on each connection, to avoid 
7006         repeated getting of the string context and converting it into 
7007         an ID
7008
7009         * bus/bus.c (bus_context_get_policy): new accessor, though it
7010         isn't used
7011         (bus_context_check_security_policy): check whether the security
7012         context of sender connection can send to the security context of
7013         recipient connection
7014
7015         * bus/config-parser.c: add parsing for <selinux> and <associate>
7016         
7017         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7018         implement dbus_connection_get_unix_fd()
7019
7020         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7021         function, used by the selinux stuff
7022         
7023 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7024
7025         * bus/config-loader-libxml.c: complete the implementation of
7026         libxml backend for config file loader. Doesn't work with full OOM
7027         test yet. 
7028         
7029         * configure.in: change error when selecting libxml into a warning.
7030         
7031         * test/data/invalid-config-files: add two non-well-formed XML
7032         files. 
7033         
7034         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7035         
7036         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7037         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7038         be necessary to read all the buffer. (bug #894)
7039
7040         * bus/activation.c (bus_activation_activate_service): fix a
7041         potential assertion failure (bug #896). Small optimization in the
7042         case of auto-activation messages.
7043
7044         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7045         add test case for byte-through-vararg bug (#901). patch by Kimmo
7046         Hämäläinen. 
7047
7048 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7049
7050         * python/dbus.py:
7051         * python/dbus_bindings.pyx.in:
7052         Add dbus.init_gthreads (), allow emit_signal to pass
7053         arguments to the signal.
7054         
7055 2004-07-24  Havoc Pennington  <hp@redhat.com>
7056
7057         * AUTHORS: add some people, not really comprehensively, let me
7058         know if I missed you
7059
7060 2004-07-24  Havoc Pennington  <hp@redhat.com>
7061
7062         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7063         Owen
7064
7065         * test/Makefile.am (DIST_SUBDIRS): here also
7066
7067 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7068
7069         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7070         breaking build on Solaris, reported by Farhad Saberi on the ML.
7071
7072         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7073         va_arg invocation to account for integer promotion in the case of
7074         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7075
7076         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7077         _dbus_list_get_first_link, not _dbus_list_get_first.
7078
7079         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7080
7081         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7082         handler functions so that the asserts in _dbus_object_subtree_unref
7083         do not fail.
7084
7085         * dbus/dbus-transport-unix.c (do_reading):
7086         _dbus_transport_queue_messages return value is of type
7087         dbus_bool_t, not DBusDispatchStatus.
7088         
7089 2004-07-19  David Zeuthen  <david@fubar.dk>
7090
7091         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7092
7093         * bus/dispatch.c:
7094         (check_get_connection_unix_user): Debug says GetProperty; but the
7095         method is called GetConnectionUnixUser
7096         (check_get_connection_unix_process_id): New function
7097         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7098         also call check_get_connection_unix_process_id()
7099         
7100         * bus/driver.c:
7101         (bus_driver_handle_get_connection_unix_process_id): New function,
7102         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7103         interface
7104         
7105         * dbus/dbus-auth.c:
7106         (handle_server_data_external_mech): Set pid from the credentials
7107         obtained from the socket
7108         
7109         * dbus/dbus-connection.c:
7110         (dbus_connection_get_unix_process_id): New function
7111         
7112         * dbus/dbus-connection.h: 
7113         Add prototype for dbus_connection_get_unix_process_id
7114         
7115         * dbus/dbus-transport.c:
7116         (_dbus_transport_get_unix_process_id): New function
7117         
7118         * dbus/dbus-transport.h:
7119         Add prototype for _dbus_transport_get_unix_process_id
7120         
7121 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7122
7123         * dbus/dbus-message.c: Message counter fix, patch by Christian
7124         Hammond <chipx86@gnupdate.org>
7125
7126 2004-07-18  Seth Nickell  <seth@gnome.org>
7127
7128         * python/dbus.py:
7129         * python/dbus_bindings.pyx.in:
7130         * python/tests/test-client.py:
7131
7132         Add dbus.ByteArray and dbus_bindings.ByteArray
7133         types so that byte streams can be passed back.
7134
7135         Give jdahlin the heaps of credit that are so
7136         rightfully his.
7137         
7138 2004-07-12  Seth Nickell  <seth@gnome.org>
7139
7140         * python/dbus.py:
7141
7142         Add message argument to the default object_method_handler
7143         function.
7144         
7145         * python/dbus_bindings.pyx.in:
7146
7147         Automatically return NIL when passed an empty list
7148         (we can't pass back a list since lists are typed
7149         and we don't have any idea what type the the client
7150         intended the list to be... :-( )
7151         
7152 2004-07-10  Seth Nickell  <seth@gnome.org>
7153
7154         * python/examples/Makefile.am:
7155
7156         Fix distcheck breakage caused by new examples.
7157
7158 2004-07-10  Seth Nickell  <seth@gnome.org>
7159
7160         * python/dbus.py:
7161
7162         Add "message" argument to service-side dbus.Object
7163         methods. This will break existing services written
7164         using the python bindings, but will allow extraction
7165         of all the message information (e.g. who its from).
7166
7167         Add improved "object oriented" signal handling/emission.
7168         
7169         * python/examples/example-service.py:
7170
7171         Nix this example.
7172         
7173         * python/examples/example-signal-emitter.py:
7174         * python/examples/example-signal-recipient.py:
7175
7176         Two new examples that show how to emit and receive
7177         signals using the new APIs.
7178         
7179         * python/examples/example-signals.py:
7180         * python/examples/gconf-proxy-service.py:
7181         * python/examples/gconf-proxy-service2.py:
7182
7183         Add "message" argument to service methods.
7184
7185 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7186
7187         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7188         * dbus/bus.c (dbus_bus_get_unix_user)
7189         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7190         method of org.freedesktop.DBus interface.
7191
7192         * bus/dispatch.c: test case
7193
7194 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7195
7196         * python/Makefile.am: switched include directory from glib/ to dbus/
7197         since dbus-glib.h moved
7198  
7199 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7200
7201         * configure.in: prevent building the gcj stuff and libxml loader
7202         since they are broken.
7203
7204 2004-06-20  Havoc Pennington  <hp@redhat.com>
7205
7206         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7207         codes from the dbus error names
7208         
7209         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7210         as dbus/dbus-glib.h and that breakage is now visible due to 
7211         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7212         
7213         * glib/dbus-glib.h: s/gproxy/g_proxy/
7214
7215         * dbus/dbus-shared.h: new header to hold stuff shared with
7216         binding APIs
7217         
7218         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7219         than dbus-errors.h
7220
7221         * glib/dbus-glib.h (dbus_set_g_error): move to
7222         dbus-glib-lowlevel.h
7223
7224         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7225         of stuff to enable this
7226
7227         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7228
7229         * a bunch of other changes with the same basic "separate glib 
7230         bindings from dbus.h" theme
7231         
7232 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7233
7234         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7235
7236         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7237
7238 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7239
7240         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7241         the reply value of the ServiceExists message.
7242
7243 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7244
7245         * python/dbus_bindings.pyx.in: No longer need to parse path
7246         elements and pass them as arrays of strings.  The C API now
7247         accepts plain path strings.
7248         (_build_parsed_path): removed 
7249
7250 2004-06-07  Havoc Pennington  <hp@redhat.com>
7251
7252         * doc/TODO: remove auto-activation item since it's done; sort
7253         items by importance/milestone
7254
7255 2004-06-07  Havoc Pennington  <hp@redhat.com>
7256
7257         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7258         random signature when using REQUIRED_FIELDS (this hack won't work
7259         in the long term)
7260
7261         * dbus/dbus-message.c: change the signature to be a header field,
7262         instead of message->signature special-case string. Incremental
7263         step forward. Then we can fix up code to send the signature in the
7264         message, then fix up code to validate said signature, then fix up
7265         code to not put the typecodes inline, etc.
7266         (load_one_message): don't make up the signature after the fact
7267         (decode_header_data): require signature field for the known
7268         message types
7269
7270         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7271
7272         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7273
7274 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7275
7276         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7277
7278         * mono/Handler.cs: Updated to follow new path argument for
7279         (un-)registering objects.
7280
7281         * mono/example/Makefile.am:
7282         * mono/Makefile.am:
7283         * configure.in: Bumped required version for mono and use new -pkg
7284         syntax for deps
7285
7286 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7287
7288         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7289         registration functions take the path argument as char* instead of
7290         char**.
7291
7292         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7293         split off the path decompostion part of
7294         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7295         warnings. 
7296
7297         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7298         
7299 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7300  
7301         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7302         machine approach.  A state is implemented as a function that
7303         handles incoming events as specified for that state.
7304         
7305         * doc/dbus-specification.xml: Update auth protocol state machine
7306         specification to match implementation.  Remove some leftover
7307         base64 examples.
7308
7309 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7310
7311         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7312         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7313         quiet doxygen.
7314
7315         * Doxyfile.in: remove deprecated options.
7316
7317         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7318         glib/test-thread.h, glib/test-thread-client.c,
7319         glib/test-thread-server.c, glib/test-profile.c,
7320         glib/test-dbus-glib.c: remove these unused files.
7321
7322 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7323
7324         * dbus/dbus-object-tree.c
7325         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7326         non-fallback handlers (bug #684).
7327         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7328         (find_subtree_recurse): report wether the returned subtree is an
7329         exact match or a "fallback" match higher up in the tree.
7330         (object_tree_test_iteration): update test case.
7331
7332 2004-06-01  Seth Nickell  <seth@gnome.org>
7333
7334         * python/dbus_bindings.pyx.in:
7335         * python/tests/test-client.py:
7336
7337         Round off basic type support. Add dicts (yay!), and 
7338         remaining array types.
7339
7340         Make MessageIter more general so it works for dicts too.
7341
7342         Mark all loop variables as C integers.
7343         
7344 2004-05-31  Havoc Pennington  <hp@redhat.com>
7345
7346         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7347         "in" before "out"
7348
7349         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7350
7351         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7352         option that runs the tests, and start filling in some code
7353         including for starters just dumping the interfaces to stdout
7354
7355         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7356
7357         * test/data/valid-introspection-files/lots-of-types.xml: test of
7358         an example introspection file
7359
7360         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7361         "node" (I think...)
7362
7363 2004-05-31  Seth Nickell  <seth@gnome.org>
7364
7365         * python/dbus_bindings.pyx.in:
7366         * python/tests/test-client.py:
7367
7368         Test Suite: 1
7369         Python Bindings: 0
7370
7371         Fix string array memory trashing bug... oops...
7372
7373 2004-05-30  Seth Nickell  <seth@gnome.org>
7374
7375         * python/dbus.py:
7376
7377         Add a nicer-but-less-flexible alternate API for handling 
7378         calls to virtual objects in dbus.ObjectTree.
7379
7380         Screw up the argument order to the dbus.Object constructor
7381         for consistency with dbus.ObjectTree (and to make dbus_methods
7382         optional for future extension)
7383         
7384         * python/examples/Makefile.am:
7385         * python/examples/gconf-proxy-service.py:
7386         * python/examples/gconf-proxy-service2.py:
7387
7388         Alternate implementation of gconf-proxy-service using the
7389         nicer dbus.ObjectTree API.
7390         
7391         * python/examples/example-service.py:
7392         * python/tests/test-server.py
7393
7394         Reverse the argument order to deal with dbus.Object constructor
7395         changes.
7396         
7397 2004-05-30  Seth Nickell  <seth@gnome.org>
7398
7399         * python/examples/example-client.py:
7400         * python/examples/example-service.py:
7401
7402         Take it back. Lists seem to work but they're broken
7403         in the test suite. Make the base examples use
7404         lists (works fine).
7405
7406 2004-05-30  Seth Nickell  <seth@gnome.org>
7407
7408         * python/dbus_bindings.pyx.in:
7409         * python/tests/test-client.py:
7410
7411         Add some more tests and fix errors that crop up.
7412         Unfortunately, currently it seems like marshalling
7413         and unmarshalling of lists is completely broken :-(
7414
7415 2004-05-30  Seth Nickell  <seth@gnome.org>
7416
7417         * python/dbus_bindings.pyx.in:
7418
7419         Add support for ObjectPath type.
7420
7421         * python/dbus.py:
7422
7423         Refactor message handling code to a common function.
7424         
7425         * python/tests/test-client.py:
7426         * python/tests/test-server.py:
7427
7428         Add tests that check to make sure values of all types
7429         can be echoed from a service w/o mangling.
7430         
7431 2004-05-29  Seth Nickell  <seth@gnome.org>
7432
7433         * python/dbus.py:
7434
7435         Add ObjectTree class which allows implementation
7436         of trees of "virtual" objects. Basically the python
7437         wrapper for "register_fallback".
7438         
7439         * python/examples/Makefile.am
7440         * python/examples/gconf-proxy-client.py:
7441         * python/examples/gconf-proxy-service.py:
7442
7443         Implement a simple GConf proxy service that supports
7444         get/set on string and int GConf keys using the ObjectTree.
7445         
7446 2004-05-29  Seth Nickell  <seth@gnome.org>
7447
7448         * python/dbus.py:
7449         * python/examples/example-client.py:
7450         * python/examples/example-service.py:
7451         * python/examples/list-system-services.py:
7452
7453         Add SessionBus, SystemBus and ActivationBus classes
7454         so you don't need to know the special little BUS_TYPE
7455         flag.
7456         
7457 2004-05-29  Havoc Pennington  <hp@redhat.com>
7458
7459         * bus/config-parser.c (process_test_valid_subdir): temporarily
7460         stop testing config parser OOM handling, since expat has issues
7461         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7462
7463         * bus/dbus-daemon-1.1.in: change requested_reply to
7464         send_requested_reply/receive_requested_reply so we can send the
7465         replies, not just receive them.
7466
7467         * bus/config-parser.c: parse the new
7468         send_requested_reply/receive_requested_reply
7469
7470         * bus/policy.c (bus_client_policy_check_can_send): add
7471         requested_reply argument and use it
7472
7473         * bus/bus.c (bus_context_check_security_policy): pass through
7474         requested_reply status to message send check
7475
7476         * bus/system.conf.in: adapt to requested_reply change
7477         
7478 2004-05-28  Havoc Pennington  <hp@redhat.com>
7479
7480         * test/glib/test-service-glib.c (main): remove unused variable
7481
7482         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7483
7484         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7485         from the enum, no longer in use.
7486
7487         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7488         works right.
7489
7490         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7491         whether error_name passed in is a valid error name.
7492
7493 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7494
7495         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7496         OBJECT_PATH and OBJECT_PATH_ARRAY
7497
7498 2004-05-28  Seth Nickell  <seth@gnome.org>
7499
7500         * python/examples/Makefile.am:
7501
7502         Forget to add Makefile.am. Do not pass go.
7503
7504 2004-05-28  Michael Meeks  <michael@ximian.com>
7505
7506         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7507         fix no int64 case.
7508
7509         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7510
7511         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7512         (_dbus_message_iter_get_basic_type_array): impl.
7513         drastically simplify ~all relevant _get methods to use these.
7514         (_dbus_message_iter_append_basic_array),
7515         (dbus_message_iter_append_basic): impl
7516         drastically simplify ~all relevant _append methods to use these.
7517
7518         * dbus/dbus-message-builder.c (parse_basic_type) 
7519         (parse_basic_array, lookup_basic_type): impl.
7520         (_dbus_message_data_load): prune scads of duplicate /
7521         cut & paste coding.
7522
7523         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7524         (_dbus_demarshal_basic_type): implement,
7525         (demarshal_and_validate_len/arg): beef up debug.
7526         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7527
7528 2004-05-27  Seth Nickell  <seth@gnome.org>
7529
7530         * configure.in:
7531         * python/Makefile.am:
7532
7533         Include the example python apps in the tarball.
7534         
7535         * python/examples/list-system-services.py
7536
7537         Add a python new example that fetches the list of services
7538         from the system bus.
7539         
7540 2004-05-27  Seth Nickell  <seth@gnome.org>
7541
7542         * python/dbus.py:
7543         * python/dbus_bindings.pyx.in:
7544
7545         Fix failure to notify that a signal was not handled,
7546         resulted in hung functions.
7547         
7548 2004-05-25  Colin Walters  <walters@redhat.com>
7549
7550         * tools/dbus-monitor.c (main): Monitor all types of messages.
7551
7552 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7553
7554         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7555         which unregisters the object path and disposes the handler.
7556
7557 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7558  
7559         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7560          
7561         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7562         operands to && so we call dbus_message_iter_next () for the last
7563         argument also.
7564
7565 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7566
7567         * dbus/dbus-object-tree.c
7568         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7569         children even if the requested path isn't registered.
7570         (object_tree_test_iteration): test object_tree_list_registered.
7571
7572         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7573         it to 0.
7574         
7575 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7576
7577         * doc/TODO: Remove resolved items.
7578
7579         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7580         field.
7581         
7582         * bus/connection.c (bus_connections_expect_reply): Enforce the
7583         per-connection limit on pending replies.
7584         
7585         Patch from Jon Trowbridge <trow@ximian.com>:
7586  
7587         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7588         up a watch that triggers a config reload when one end of the pipe
7589         becomes readable.
7590         (signal_handler): Instead of doing the config reload in our SIGHUP
7591         handler, just write to the reload pipe and let the associated
7592         watch handle the reload when control returns to the main loop.
7593  
7594         * bus/driver.c (bus_driver_handle_reload_config): Added.
7595         Implements a ReloadConfig method for requesting a configuration
7596         file reload via the bus driver.
7597  
7598 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7599
7600         * HACKING: Updated release instructions concerning the wiki page.
7601
7602 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7603
7604         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7605         filter against auth->allowed_mechs; we only add allowed mechs in
7606         record_mechanisms().
7607  
7608         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7609         ALLOWED_MECHS to auth-script format so we can set the list of
7610         allowed mechanisms.
7611  
7612         * data/auth/client-out-of-mechanisms.auth-script: New test to
7613         check client disconnects when it is out of mechanisms to try.
7614  
7615         * dbus/dbus-auth.c (process_command): Remove check for lines
7616         longer that 1 MB; we only buffer up maximum 16 kB.
7617  
7618         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7619         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7620         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7621         assume there might be unused bytes.
7622  
7623         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7624         client-out-of-mechs, it is handled in process_reject(). Move check
7625         for max failures to send_rejected(), as it's a server-only thing.
7626
7627         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7628         send_auth(), send_data(), send_rejected(), send_error(),
7629         send_ok(), send_begin() and send_cancel().
7630
7631 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7632
7633         Remove base64 encoding, replace with hex encoding. Original patch
7634         from trow@ximian.com, added error handling.
7635
7636         * dbus/dbus-string.c (_dbus_string_base64_encode)
7637         (_dbus_string_base64_decode): Remove.
7638         (_dbus_string_hex_decode): Add end_return argument so we can
7639         distinguish between OOM and invalid hex encoding.
7640         (_dbus_string_test): Remove base64 tests and add test case for
7641         invalid hex.
7642
7643         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7644         Replace base64 with hex.
7645
7646         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7647         for invalid hex encoded data in auth protocol.
7648
7649 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7650
7651         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7652         leak.
7653
7654 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7655
7656         * mono/dbus-sharp.dll.config.in: Added for GAC
7657         * mono/dbus-sharp.snk: Added for GAC
7658         * mono/Assembly.cs.in: Added for GAC
7659         * mono/Makefile.am: Changes for GAC installation        
7660         * configure.in: Added refs for dbus-sharp.dll.config.in and
7661         Assembly.cs.in. More fixes for mono testing
7662         * mono/example/Makefile.am: Changed var to CSC
7663         * Makefile.am: Changed flag name to DBUS_USE_CSC
7664
7665 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7666
7667         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7668         * mono/doc/*: Added documentation framework
7669         * configure.in: Added monodoc check
7670         * README: Added description of mono configure flags
7671
7672 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7673
7674         * doc/dbus-specification.xml: Added a "Required" column to the 
7675         header fields table and changed the "zero or more" verbage in
7676         the above paragraph to read "The header must contain the required 
7677         named header fields and zero or more of the optional named header 
7678         fields".
7679         * test/data/invalid-messages/*.message: Added the required PATH 
7680         named header field to the tests so that they don't fail on 
7681         'Missing path field'
7682
7683 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7684
7685         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7686         the stack by implicitly defining variable and parameter types and
7687         removing the hack of defining C pointers as python objects and later
7688         casting them.
7689
7690 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7691
7692         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7693
7694 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7695
7696         * mono/DBusType/Dict.cs: Handle empty dicts
7697         * mono/DBusType/Array.cs: Handle empty arrays
7698         * mono/Arguments.cs: Handle empty arguments
7699
7700 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7701
7702         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7703         field
7704
7705 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7706
7707         * test/data/valid-messages/standard-*.message: Update message
7708         test scripts to new header field names.
7709
7710 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7711
7712         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7713         overflow to times_we_did_each_thing array which would chop off the
7714         first character of the failure_dir string. Increased the size of
7715         the array to 7 to reflect the number of random mutation functions
7716         we have.
7717
7718 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7719
7720         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7721         unix_server->watch here, it is unreffed in disconnect.
7722         (_dbus_server_new_for_tcp_socket): convert NULL host to
7723         "localhost" here so we don't append NULL to address.
7724         
7725         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7726         various addresses, including tcp with no explicit host.
7727
7728 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7729
7730         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7731         fix incorrect setting of .name_offset in the HeaderField (it was
7732         off by two bytes, positioned right after the name and typecode)
7733
7734         * bus/bus.c (bus_context_new, bus_context_unref): test before
7735         calling dbus_server_free_data_slot and _dbus_user_database_unref
7736         in case of an error.
7737
7738         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7739         by libdbus-gtool.
7740
7741 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7742
7743         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7744         _dbus_poll() instead of select().
7745
7746 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7747
7748         * bus/main.c (signal_handler): Reload the configuration files
7749         on SIGHUP.
7750         (main): Set up our SIGHUP handler.
7751
7752         * bus/bus.c (struct BusContext): Store the config file, user and
7753         fork flag in the BusContext.
7754         (process_config_first_time_only): Added.  Contains the code
7755         (previously in bus_context_new) for setting up the BusContext from
7756         the BusConfigParser that should only be run the first time the
7757         config files are read.
7758         (process_config_every_time): Added.  Contains the code (previously
7759         in bus_context_new) for setting up the BusContext from the
7760         BusConfigParser that should be run every time the config files are
7761         read.
7762         (load_config): Added.  Builds a BusConfigParser from the config
7763         files and passes the resulting structure off to
7764         process_config_first_time_only (assuming this is the first time)
7765         and process_config_every_time.
7766         (bus_context_new): All of the config-related code has been moved
7767         to process_config_first_time_only and process_config_every_time.
7768         Now this function just does the non-config-related initializations
7769         and calls load_config.
7770         (bus_context_reload_config): Added.
7771
7772 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7773
7774         * bus/driver.c (bus_driver_handle_get_service_owner):
7775         implement a GetServiceOwner method.
7776         * doc/dbus-specification.xml: document it.
7777         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7778         
7779         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7780         implement, using the bus GetServiceOwner method.
7781
7782         * test/glib/test-dbus-glib.c:
7783         use dbus_gproxy_new_for_service_owner so that we can receive the
7784         signal. 
7785
7786 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7787
7788         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7789         dbus/dbus-message.c, dbus/dbus-protocol.h
7790         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7791
7792         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7793         dbus/dbus-message.c, dbus/dbus-protocol.h
7794         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7795
7796         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7797         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7798         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7799
7800         * doc/dbus-specification.xml (Header Fields Table):
7801         s/SERVICE/DESTINATION
7802         s/SENDER_SERVICE/SENDER
7803
7804
7805 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7806
7807         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7808         a few seconds.
7809
7810 2004-04-13  Michael Meeks  <michael@ximian.com>
7811
7812         * glib/dbus-gobject.c (handle_introspect): split out
7813         (introspect_properties): this.
7814         (handle_introspect): implement this.
7815
7816         * test/glib/Makefile.am: use the absolute path so the bus
7817         daemon's chdir ("/") doesn't kill us dead.
7818
7819         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7820
7821 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7822
7823         * bus/config-parser.c (struct BusConfigParser): Added
7824         included_files field.
7825         (seen_include): Added.  Checks whether or not a file has already
7826         been included by any parent BusConfigParser.
7827         (bus_config_parser_new): Copy the parent's included_files.
7828         (include_file): Track which files have been included, and fail on
7829         circular inclusions.
7830         (process_test_valid_subdir): Changed printf to report if we are
7831         testing valid or invalid conf files.
7832         (all_are_equiv): Changed printf to be a bit clearer about
7833         what we are actually doing.
7834         (bus_config_parser_test): Test invalid configuration files.
7835
7836 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7837
7838         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7839         argument.  If non-null, the newly-constructed BusConfigParser will
7840         be initialized with the parent's BusLimits instead of the default
7841         values.
7842         (include_file): When including a config file, pass in
7843         the current parser as the parent and then copy the BusLimits
7844         from the included BusConfigParser pack to the current parser.
7845         (process_test_valid_subdir): Renamed from process_test_subdir.
7846         (process_test_equiv_subdir): Added.  Walks through a directory,
7847         descending into each subdirectory and loading the config files
7848         it finds there.  If any subdirectory contains two config files
7849         that don't produce identical BusConfigParser structs, fail.
7850         For now, the BusConfigParser's BusPolicies are not compared.
7851         (bus_config_parser_test): Call both process_test_valid_subdir and
7852         process_test_equiv_subdir.
7853
7854         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7855         argument and pass it along to the call to bus_config_parser_new.
7856         Also made a few small changes to allow this code to compile.
7857
7858         * bus/config-loader-expat.c (bus_config_load): Take a parent
7859         argument and pass it along to the call to bus_config_parser_new.
7860
7861         * bus/bus.c (bus_context_new): Load the config file
7862         with a NULL parent argument.
7863
7864 2004-03-29  Michael Meeks  <michael@ximian.com>
7865
7866         * glib/dbus-gobject.c (introspect_properties): split
7867         out, fix mangled 'while' flow control.
7868         (introspect_signals): implement.
7869         (handle_introspect): update.
7870
7871 2004-03-29  Michael Meeks  <michael@ximian.com>
7872
7873         * glib/dbus-gobject.c (set_object_property): split out / 
7874         re-work, use the property type, and not the message type(!)
7875         (get_object_property): ditto.
7876
7877         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7878         (dbus_gvalue_marshal): make this code re-usable, needed
7879         for signals too, also on both proxy and server side.
7880         Re-write for more efficiency / readability.
7881
7882 2004-03-29  Michael Meeks  <michael@ximian.com>
7883
7884         * dbus/dbus-message.c
7885         (dbus_message_new_error_printf): impl.
7886
7887         * dbus/dbus-connection.c
7888         (dbus_connection_unregister_object_path): fix warning.
7889
7890         * configure.in: fix no-mono-installed situation.
7891
7892 2004-03-27  Havoc Pennington  <hp@redhat.com>
7893
7894         Patch from Timo Teräs:
7895         
7896         * tools/dbus-send.c (main): if --print-reply, assume type is
7897         method call; support boolean type args
7898         
7899         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7900         bunch of memleak and logic bugs
7901         
7902 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7903
7904         * mono/Arguments.cs:
7905         * mono/Introspector.cs:
7906         * mono/Handler.cs:
7907         * mono/InterfaceProxy.cs:
7908         * mono/Message.cs
7909         * mono/ProxyBuilder.cs:
7910         * mono/Service.cs:
7911         Added InterfaceProxy class to avoid building proxies for every
7912         object.
7913
7914         * dbus-message.h:
7915         * dbus-message.c (dbus_message_append_args_valist)
7916         (dbus_message_iter_get_object_path)
7917         (dbus_message_iter_get_object_path_array)
7918         (dbus_message_iter_append_object_path)
7919         (dbus_message_iter_append_object_path_array):
7920         Added object_path iter functions to handle OBJECT_PATH arguments
7921         
7922 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7923
7924         First checkin of mono bindings.
7925         * configure.in:
7926         * Makefile.am:
7927         Build stuff for the bindings
7928         * dbus-sharp.pc.in: Added for pkgconfig
7929         
7930 2004-03-21  Havoc Pennington  <hp@redhat.com>
7931
7932         * test/test-service.c (main): remove debug spew
7933
7934 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7935
7936         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7937         arrays
7938
7939         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7940         (dbus_message_iter_init_array_iterator)
7941         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7942         indicate whether the iterator is empty
7943
7944         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7945         warnings
7946
7947 2004-03-19  Havoc Pennington  <hp@redhat.com>
7948
7949         * NEWS: 0.21 updates
7950
7951         * configure.in: 0.21
7952
7953         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7954         
7955         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7956         you don't need pyrex to make dist
7957
7958         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7959         sources; run moc
7960         
7961 2004-03-18  Richard Hult  <richard@imendio.com>
7962
7963         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7964         (dbus_message_set_auto_activation): Add doxygen docs.
7965
7966 2004-03-16  Richard Hult  <richard@imendio.com>
7967
7968         * bus/activation.c: (bus_activation_service_created),
7969         (bus_activation_send_pending_auto_activation_messages),
7970         (bus_activation_activate_service):
7971         * bus/activation.h:
7972         * bus/dispatch.c: (bus_dispatch),
7973         (check_nonexistent_service_auto_activation),
7974         (check_service_auto_activated),
7975         (check_segfault_service_auto_activation),
7976         (check_existent_service_auto_activation), (bus_dispatch_test):
7977         * bus/driver.c: (bus_driver_handle_activate_service):
7978         * bus/services.c: (bus_registry_acquire_service):
7979         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7980         (dbus_message_get_auto_activation):
7981         * dbus/dbus-message.h:
7982         * dbus/dbus-protocol.h: Implement auto-activation.
7983         
7984         * doc/dbus-specification.xml: Add auto-activation to the spec.
7985
7986 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7987
7988         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7989         fix a bug with CUSTOM types.
7990
7991         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7992         a unit test for this bug (used to fail).
7993
7994 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7995
7996         * bus/activation.c:
7997         (babysitter_watch_callback): notify all pending activations waiting for
7998           the same exec that the activation failed.
7999         (bus_activation_activate_service): shortcut the activation if we 
8000           already waiting for the same executable to start up.
8001
8002 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8003
8004         * bus/activation.c: 
8005         - Added service file reloading. 
8006           Each service files directory is kept in an hash table in 
8007           BusActivation and each BusActivationEntry knows what .service-file it
8008           was read from. So when you try to activate a service the bus will 
8009           check if it's been updated, removed or if new .service-files has 
8010           been installed.
8011         - Test code at the bottom for the service file reloading.
8012         * bus/test-main.c: (main):
8013         * bus/test.h:
8014         - added service reloading test.
8015         * dbus/dbus-sysdeps.c: 
8016         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8017
8018 2004-03-08  Michael Meeks  <michael@ximian.com>
8019
8020         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8021         bail immediately if disconnected, to avoid busy loop.
8022
8023         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8024         cleanup cut/paste/inefficiency.
8025
8026 2004-03-01  David Zeuthen  <david@fubar.dk>
8027
8028         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8029         bug where args were used twice. This bug resulted in a segfault
8030         on a Debian/PPC system when starting the messagebus daemon. Include
8031         dbus-sysdeps.h for DBUS_VA_COPY
8032
8033         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8034
8035         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8036         appropriate va_copy implementation. From GLib
8037         
8038 2004-02-24  Joe Shaw  <joe@ximian.com>
8039
8040         * bus/services.c (bus_registry_acquire_service): We need to pass
8041         in the service name to dbus_set_error() to prevent a crash.
8042
8043 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8044
8045         * AUTHORS: Reveal my True identity.
8046
8047 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8048
8049         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8050         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8051
8052 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8053
8054         * doc/TODO: Added not about better error check of configuration files.
8055
8056 2003-12-02  Richard Hult  <richard@imendio.com>
8057
8058         * Update AFL version to 2.0 throughout the source files to reflect
8059         the update that was done a while ago.
8060
8061 2003-12-02  Richard Hult  <richard@imendio.com>
8062
8063         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8064         wrote_dict_key to FALSE on the iter that the dict is appended to,
8065         just like when appending other types. Fixes a bug where a dict
8066         couldn't be put inside a dict.
8067         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8068         (message_iter_test, _dbus_message_test): Add test case for dict
8069         inside dict.
8070
8071 2003-12-01  David Zeuthen  <david@fubar.dk>
8072
8073         * python/dbus.py: Add the actual message when calling the reciever
8074         of a signal such that parameters can be inspected. Add the method
8075         remove_signal_receiver
8076         
8077 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8078
8079         * bus/*.[ch]:
8080         * dbus/*.[ch]:
8081         * glib/*.[ch]: Made ref functions return the pointer
8082
8083 2003-11-25  Zack Rusin  <zack@kde.org>
8084
8085         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8086
8087         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8088         wrappers,
8089
8090         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8091         the Integrator and to better fit with the server,
8092
8093 2003-11-24  Zack Rusin  <zack@kde.org>
8094
8095         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8096         the integrator handles it now
8097
8098         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8099         since QTimer wasn't really meant to be used the way DBusTimeout is
8100
8101 2003-11-24  Zack Rusin  <zack@kde.org>
8102
8103         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8104         Integrator class which integrates D-BUS with the Qt event loop,
8105
8106         * qt/connection.h, qt/connection.cpp: Move all the code which
8107         was dealing with D-BUS integration to the Integrator class,
8108         and start using Integrator,
8109
8110 2003-11-23  Zack Rusin  <zack@kde.org>
8111
8112         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8113         wrapper
8114
8115         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8116         switching namespaces to DBusQt, reworking the class,
8117
8118         * Makefile.cvs: switching dependencies so that it matches KDE 
8119         schematics,
8120         
8121         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8122         the library
8123
8124 2003-11-19  Havoc Pennington  <hp@redhat.com>
8125
8126         * NEWS: update
8127
8128         * configure.in: bump version to 0.20
8129
8130         * configure.in (have_qt): add yet another place to look for qt
8131         (someone hand trolltech a .pc file...)
8132
8133 2003-11-01  Havoc Pennington  <hp@redhat.com>
8134
8135         * doc/dbus-specification.xml: add state machine docs on the auth
8136         protocol; just a first draft, I'm sure it's wrong.      
8137
8138 2003-10-28  David Zeuthen  <david@fubar.dk>
8139
8140         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8141         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8142         
8143 2003-10-28  Havoc Pennington  <hp@redhat.com>
8144
8145         * dbus/dbus-message.c (get_next_field): delete unused function
8146
8147 2003-10-28  Havoc Pennington  <hp@redhat.com>
8148
8149         * bus/expirelist.c (do_expiration_with_current_time): detect
8150         failure of the expire_func due to OOM
8151
8152         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8153
8154         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8155         NoReply error that's now created by the bus when the service exits
8156
8157 2003-10-28  Havoc Pennington  <hp@redhat.com>
8158
8159         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8160         tests for set_path, set_interface, set_member, etc.
8161
8162         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8163
8164         * dbus/dbus-message.c (set_string_field): always just delete and
8165         re-append the field; accept NULL for deletion
8166         (re_align_fields_recurse): reimplement
8167         
8168 2003-10-26  Havoc Pennington  <hp@redhat.com>
8169
8170         * dbus/dbus-connection.c: fix docs to properly describe the
8171         disconnected message
8172         (_dbus_connection_notify_disconnected): remove this function; 
8173         we can't synchronously add the disconnected message, we have to 
8174         do it after we've queued any remaining real messages
8175         (_dbus_connection_get_dispatch_status_unlocked): queue the
8176         disconnect message only if the transport has finished queueing all
8177         its real messages and is disconnected.
8178         (dbus_connection_disconnect): update the dispatch status here
8179
8180 2003-10-22  Havoc Pennington  <hp@redhat.com>
8181
8182         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8183
8184         * bus/connection.c (bus_transaction_send_from_driver): set the
8185         destination to the connection's base service
8186
8187 2003-10-20  Havoc Pennington  <hp@redhat.com>
8188
8189         hmm, make check is currently not passing.
8190         
8191         * doc/dbus-specification.xml: add requirement that custom type
8192         names follow the same rules as interface names.
8193
8194         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8195         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8196         'map'
8197
8198         * doc/dbus-specification.xml: update type codes to match
8199         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8200         CUSTOM. Add type OBJECT_PATH to the spec.
8201
8202 2003-10-17  Havoc Pennington  <hp@redhat.com>
8203
8204         * bus/driver.c (create_unique_client_name): use "." as separator
8205         in base service names instead of '-'
8206
8207         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8208         byte at the end of the string
8209
8210         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8211         optimization macros since string validation seems to be a slow
8212         point.
8213         
8214         * doc/dbus-specification.xml: restrict valid
8215         service/interface/member/error names. Add test suite code for the
8216         name validation.
8217
8218         * dbus/dbus-string.c: limit service/interface/member/error names 
8219         to [0-9][A-Z][a-z]_
8220
8221         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8222         format arg to verbose spew
8223
8224         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8225         memory, return instead of g_error
8226
8227         * test/test-service.c (path_message_func): support emitting a
8228         signal on request
8229
8230         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8231         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8232         assuming the activation bus was the session bus so that services
8233         started manually will still register.
8234         (init_connections_unlocked): fix so that in OOM situation we get
8235         the same semantics when retrying the function
8236         
8237         * test/test-service.c (main): change to use path registration, to
8238         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8239         than DBUS_BUS_SESSION
8240
8241 2003-10-16  Havoc Pennington  <hp@redhat.com>
8242
8243         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8244
8245         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8246         coverage of the tests
8247         (coverage-report.txt): don't move the .da and .bbg files around
8248
8249 2003-10-16  Havoc Pennington  <hp@redhat.com>
8250
8251         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8252         to put there
8253
8254 2003-10-16  Havoc Pennington  <hp@redhat.com>
8255
8256         * bus/connection.c (bus_pending_reply_expired): either cancel or
8257         execute, not both
8258         (bus_connections_check_reply): use unlink, not remove_link, as we
8259         don't want to free the link; fixes double free mess
8260
8261         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8262         where no reply was received
8263
8264         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8265         fix a refcount leak
8266
8267         * bus/signals.c (match_rule_matches): add special cases for the
8268         bus driver, so you can match on sender/destination for it.
8269
8270         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8271         DBUS_PRINT_BACKTRACE is set
8272
8273         * dbus/dbus-internals.c: add pid to assertion failure messages
8274
8275         * dbus/dbus-connection.c: add message type code to the debug spew
8276
8277         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8278         sender=foo not service=foo
8279
8280         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8281         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8282         DBUS_ACTIVATION_ADDRESS instead
8283
8284         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8285         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8286
8287         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8288         context struct
8289
8290         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8291         (dbus_message_iter_get_object_path_array): new function (half
8292         finished, disabled for the moment)
8293         
8294         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8295         DBUS_MESSAGE_TYPE_ERROR
8296
8297         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8298         avoid redirecting stderr to /dev/null
8299         (babysit): close stdin if not doing the "exit_with_session" thing
8300
8301         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8302         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8303         stdout/stdin, so things don't get confused
8304         
8305         * bus/system.conf.in: fix to allow replies, I modified .conf
8306         instead of .conf.in again.
8307
8308 2003-10-14  David Zeuthen  <david@fubar.dk>
8309
8310         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8311         argtype to arg_type when raising unknown arg type exception.
8312         Changed type list to reflect the changes in dbus-protocol.h so 
8313         the bindings actually work.
8314
8315 2003-10-14  Havoc Pennington  <hp@redhat.com>
8316
8317         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8318         to have a bug keeping it from outputting the .da files sometimes
8319         (string_get_string): don't append garbage nul bytes to the string.
8320
8321 2003-10-15  Seth Nickell  <seth@gnome.org>
8322
8323         * python/Makefile.am:
8324
8325         Include dbus_h_wrapper.h in the dist tarball.
8326
8327 2003-10-14  Havoc Pennington  <hp@redhat.com>
8328
8329         * bus/bus.c (bus_context_check_security_policy): revamp this to
8330         work more sanely with new policy-based requested reply setup
8331
8332         * bus/connection.c (bus_transaction_send_from_driver): set bus
8333         driver messages as no reply
8334
8335         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8336         requested_reply attribute on allow/deny rules
8337
8338         * bus/system.conf: add <allow requested_reply="true"/>
8339
8340         * bus/driver.c (bus_driver_handle_message): fix check for replies
8341         sent to the bus driver, which was backward. How did this ever work
8342         at all though? I think I'm missing something.
8343
8344         * dbus/dbus-message.c (decode_header_data): require error and
8345         method return messages to have a reply serial field to be valid
8346         (_dbus_message_loader_queue_messages): break up this function;
8347         validate that reply serial and plain serial are nonzero; 
8348         clean up the OOM/error handling.
8349         (get_uint_field): don't return -1 from this
8350         (dbus_message_create_header): fix signed/unsigned bug
8351
8352         * bus/connection.c (bus_connections_expect_reply): save serial of
8353         the incoming message, not reply serial
8354
8355 2003-10-14  Havoc Pennington  <hp@redhat.com>
8356
8357         * bus/connection.c: implement pending reply tracking using
8358         BusExpireList
8359
8360         * bus/bus.c (bus_context_check_security_policy): verify that a
8361         reply is pending in order to allow a reply to be sent. Deny 
8362         messages of unknown type.
8363
8364         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8365
8366         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8367         (bus_context_get_reply_timeout): new
8368
8369 2003-10-13  Seth Nickell  <seth@gnome.org>
8370
8371         * python/Makefile.am:
8372
8373         Pass "make distcheck": remove a couple files from DIST_FILES
8374         that weren't included in the final version.
8375
8376 2003-10-12  Havoc Pennington  <hp@pobox.com>
8377
8378         Added test code that 1) starts an actual bus daemon and 2) uses
8379         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8380         more testing possible, but this is the basic framework.
8381         
8382         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8383         empty proxy lists from the proxy list hash
8384
8385         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8386         couple of return_if_fail checks
8387
8388         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8389         to allocate, so everything is cleared to NULL as it should be.
8390
8391         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8392         source as data to dbus_connection_set_timeout_functions() as the 
8393         timeout functions expected
8394
8395         * test/glib/run-test.sh: add a little script to start up a message
8396         bus and run tests using it
8397
8398         * tools/dbus-launch.1: updates
8399
8400         * tools/dbus-launch.c (main): add --config-file option
8401
8402         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8403         that could never be reached.
8404
8405         * dbus/dbus-message.c (dbus_message_new_method_return) 
8406         (dbus_message_new_error, dbus_message_new_signal): set the
8407         no-reply-expected flag on all these. Redundant, but may
8408         as well be consistent.
8409
8410 2003-10-11  Havoc Pennington  <hp@pobox.com>
8411
8412         * test/decode-gcov.c (function_solve_graph): make broken block
8413         graph a nonfatal error since it seems to be broken. Need to debug
8414         this.
8415
8416         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8417         can't just check type > INVALID < LAST anymore
8418
8419         * dbus/dbus-message.c (dbus_message_get_signature): new function
8420         (dbus_message_has_signature): new function
8421         (struct DBusMessage): add signature field (right now it isn't sent
8422         over the wire, just generated on the fly)
8423         (dbus_message_copy): copy the signature, and init strings to
8424         proper length to avoid some reallocs
8425         (dbus_message_iter_init_array_iterator): return void, since it
8426         can't fail
8427         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8428         (_dbus_message_loader_queue_messages): add silly temporary hack to
8429         fill in message->signature on load
8430
8431         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8432         characters, so they are relatively human-readable.
8433
8434 2003-10-11  Havoc Pennington  <hp@pobox.com>
8435
8436         * dbus/dbus-message.c (_dbus_message_test): add more test
8437         coverage, but #if 0 for now since they uncover a bug 
8438         not fixed yet; I think in re_align_field_recurse()
8439         (re_align_field_recurse): add FIXME about broken assertion
8440
8441         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8442
8443         * bus/connection.c: share a couple code bits with expirelist.c
8444
8445         * bus/expirelist.h, bus/expirelist.c: implement a generic
8446         expire-items-after-N-seconds facility, was going to share between
8447         expiring connections and replies, decided not to use for expiring
8448         connections for now.
8449
8450         * COPYING: include AFL 2.0 (still need to change all the file headers)
8451
8452 2003-10-09  Havoc Pennington  <hp@redhat.com>
8453
8454         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8455         gcc 3.3. Not that we do anything about it yet.
8456
8457         * bus/signals.c (bus_match_rule_parse): impose max length on the
8458         match rule text
8459
8460         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8461
8462 2003-10-09  Havoc Pennington  <hp@redhat.com>
8463
8464         Make matching rules theoretically work (add parser).
8465         
8466         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8467         the case where destination is explicitly specified as bus driver
8468         and someone else is eavesdropping.
8469         
8470         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8471         definition of eavesdropping and assertion
8472
8473         * tools/dbus-send.c (main): use dbus_message_type_from_string
8474
8475         * bus/signals.c (bus_match_rule_parse): implement
8476
8477         * dbus/dbus-message.c (dbus_message_type_from_string): new
8478
8479         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8480
8481 2003-10-02  Havoc Pennington  <hp@pobox.com>
8482
8483         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8484         dbus_gproxy_oneway_call
8485
8486         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8487         (dbus_server_setup_with_g_main): fix to allow calling them more
8488         than once on the same args
8489         (dbus_bus_get_with_g_main): new function
8490
8491 2003-10-02  Havoc Pennington  <hp@redhat.com>
8492
8493         * doc/dbus-tutorial.xml: write some stuff
8494
8495 2003-09-29  Havoc Pennington  <hp@pobox.com>
8496
8497         * configure.in: split checks for Doxygen from XML docs, check for
8498         xmlto
8499
8500         * doc/Makefile.am: XML-ify all the docs, and add a blank
8501         dbus-tutorial.xml
8502
8503 2003-09-29  Havoc Pennington  <hp@pobox.com>
8504
8505         * Merge dbus-object-names branch. To see the entire patch 
8506         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8507         it's huuuuge though.
8508         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8509         
8510 2003-09-28  Havoc Pennington  <hp@pobox.com>
8511
8512         * HACKING: update to reflect new server
8513
8514 2003-09-26  Seth Nickell  <seth@gnome.org>
8515
8516         * python/dbus.py:
8517         * python/examples/example-signals.py:
8518
8519         Start implementing some notions of signals. The API
8520         is really terrible, but they sort of work (with the
8521         exception of being able to filter by service, and to
8522         transmit signals *as* a particular service). Need to
8523         figure out how to make messages come from the service
8524         we registered :-(
8525         
8526         * python/dbus_bindings.pyx.in:
8527
8528         Removed duplicate message_handler callbacks.
8529         
8530 2003-09-25  Havoc Pennington  <hp@redhat.com>
8531
8532         * bus/session.conf.in: fix my mess
8533
8534 2003-09-25  Havoc Pennington  <hp@pobox.com>
8535
8536         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8537
8538 2003-09-25  Seth Nickell  <seth@gnome.org>
8539
8540         * python/examples/example-service.py:
8541
8542         Johan notices complete wrong code in example-service, but
8543         completely wrong in a way that works exactly the same (!).
8544         Johan is confused, how could this possibly work? Example
8545         code fails to serve purpose of making things clear.
8546         Seth fixes.
8547
8548 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8549
8550         * doc/dbus-specification.sgml: don't require header fields
8551         to be 4-byte aligned and specify that fields should be
8552         distinguished from padding by the fact that zero is not
8553         a valid field name.
8554         
8555         * doc/TODO: remove re-alignment item and add item to doc
8556         the OBJECT_PATH type.
8557         
8558         * dbus/dbus-message.c:
8559         (HeaderField): rename the original member to value_offset
8560         and introduce a name_offset member to keep track of where
8561         the field actually begins.
8562         (adjust_field_offsets): remove.
8563         (append_int_field), (append_uint_field),
8564         (append_string_field): don't align the start of the header
8565         field to a 4-byte boundary.
8566         (get_next_field): impl finding the next marhsalled field
8567         after a given field.
8568         (re_align_field_recurse): impl re-aligning a number of
8569         already marshalled fields.
8570         (delete_field): impl deleting a field of any type and
8571         re-aligning any following fields.
8572         (delete_int_or_uint_field), (delete_string_field): remove.
8573         (set_int_field), (set_uint_field): no need to re-check
8574         that we have the correct type for the field.
8575         (set_string_field): ditto and impl re-aligning any
8576         following fields.
8577         (decode_header_data): update to take into account that
8578         the fields aren't 4-byte aligned any more and the new
8579         way to distinguish padding from header fields. Also,
8580         don't exit when there is too much header padding.
8581         (process_test_subdir): print the directory.
8582         (_dbus_message_test): add test to make sure a following
8583         field is re-aligned correctly after field deletion.
8584         
8585         * dbus/dbus-string.[ch]:
8586         (_dbus_string_insert_bytes): rename from insert_byte and
8587         allow the insert of multiple bytes.
8588         (_dbus_string_test): test inserting multiple bytes.
8589
8590         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8591         warning note to docs about having to re-align any
8592         marshalled values following the string.
8593         
8594         * dbus/dbus-message-builder.c:
8595         (append_string_field), (_dbus_message_data_load):
8596         don't align the header field.
8597         
8598         * dbus/dbus-auth.c: (process_test_subdir): print the
8599         directory.
8600         
8601         * test/break-loader.c: (randomly_add_one_byte): upd. for
8602         insert_byte change.
8603         
8604         * test/data/invalid-messages/bad-header-field-alignment.message:
8605         new test case.
8606         
8607         * test/data/valid-messages/unknown-header-field.message: shove
8608         a dict in the unknown field.
8609
8610 2003-09-25  Seth Nickell  <seth@gnome.org>
8611
8612         * python/dbus.py:
8613         * python/dbus_bindings.pyx.in:
8614
8615         Handle return values.
8616         
8617         * python/examples/example-client.py:
8618         * python/examples/example-service.py:
8619
8620         Pass back return values from the service to the client.
8621         
8622 2003-09-24  Seth Nickell  <seth@gnome.org>
8623
8624         * python/dbus.py:
8625
8626         Connect Object methods (when you are sharing an object) up... pass
8627         in a list of methods to be shared. Sharing all the methods just
8628         worked out too weird. You can now create nice Services over the
8629         DBus in Python. :-)
8630         
8631         * python/dbus_bindings.pyx.in:
8632
8633         Keep references to user_data tuples passed into C functions so 
8634         Python doesn't garbage collect on us.
8635
8636         Implement MethodReturn and Error subclasses of Message for creating
8637         DBusMessage's of those types.
8638         
8639         * python/examples/example-client.py:
8640         * python/examples/example-service.py:
8641
8642         Simple example code showing both how create DBus services and objects,
8643         and how to use them.
8644
8645 2003-09-23  Havoc Pennington  <hp@pobox.com>
8646
8647         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8648
8649 2003-09-23  Havoc Pennington  <hp@redhat.com>
8650
8651         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8652         (dbus_gproxy_disconnect_signal): implement
8653         (dbus_gproxy_manager_remove_signal_match): implement
8654         (dbus_gproxy_manager_add_signal_match): implement
8655         (dbus_gproxy_oneway_call): implement
8656
8657 2003-09-23  Havoc Pennington  <hp@pobox.com>
8658
8659         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8660         subclass. This means dropping the transparent thread safety of the
8661         proxy; you now need a separate proxy per-thread, or your own
8662         locking on the proxy. Probably right anyway.
8663         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8664
8665 2003-09-22  Havoc Pennington  <hp@redhat.com>
8666
8667         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8668
8669 2003-09-21  Seth Nickell  <seth@gnome.org>
8670
8671         First checkin of the Python bindings.
8672         
8673         * python/.cvsignore:
8674         * python/Makefile.am:
8675         * python/dbus_bindings.pyx.in:
8676         * python/dbus_h_wrapper.h:
8677
8678         Pieces for Pyrex to operate on, building a dbus_bindings.so
8679         python module for low-level access to the DBus APIs.
8680         
8681         * python/dbus.py:
8682
8683         High-level Python module for accessing DBus objects.
8684
8685         * configure.in:
8686         * Makefile.am:
8687
8688         Build stuff for the python bindings.
8689
8690         * acinclude.m4:
8691
8692         Extra macro needed for finding the Python C header files.
8693
8694 2003-09-21  Havoc Pennington  <hp@pobox.com>
8695
8696         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8697         implementing the proxy manager, didn't get very far.
8698
8699         * dbus/dbus-bus.c (dbus_bus_add_match): new
8700         (dbus_bus_remove_match): new
8701
8702         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8703         path_name argument; adjust the other not-yet-implemented 
8704         gproxy constructors to be what I think they should be.
8705
8706 2003-09-21  Havoc Pennington  <hp@pobox.com>
8707
8708         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8709         by default for message bus connections.
8710
8711         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8712         exit_on_disconnect flag is set and we process the disconnected
8713         signal.
8714         (dbus_connection_set_exit_on_disconnect): new function
8715
8716 2003-09-21  Havoc Pennington  <hp@pobox.com>
8717
8718         Get matching rules mostly working in the bus; only actually
8719         parsing the rule text remains. However, the client side of
8720         "signal connections" hasn't been started, this patch is only the
8721         bus side.
8722         
8723         * dbus/dispatch.c: fix for the matching rules changes
8724         
8725         * bus/driver.c (bus_driver_handle_remove_match)
8726         (bus_driver_handle_add_match): send an ack reply from these
8727         method calls
8728
8729         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8730         arguments, reported by Seth Nickell
8731
8732         * bus/config-parser.c (append_rule_from_element): support
8733         eavesdrop=true|false attribute on policies so match rules 
8734         can be prevented from snooping on the system bus.
8735
8736         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8737         and "destination" in attribute names; fix some docs bugs; 
8738         add eavesdrop=true|false attribute
8739
8740         * bus/driver.c (bus_driver_handle_add_match)
8741         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8742         messages
8743
8744         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8745         rid of broadcast service concept, signals are just always broadcast
8746
8747         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8748         mostly implement matching rules stuff (currently only exposed as signal
8749         connections)
8750
8751 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8752
8753         * doc/dbus-specification.sgml: Change the header field name
8754         to be an enum and update the rest of the spec to reference
8755         the fields using the conventinal name.
8756
8757         * dbus/dbus-protocol.h: update to reflect the spec.
8758
8759         * doc/TODO: add item to remove the 4 byte alignment requirement.
8760         
8761         * dbus/dbus-message.c: Remove the code to generalise the
8762         header/body length and serial number header fields as named
8763         header fields so we can reference field names using the 
8764         protocol values.
8765         (append_int_field), (append_uint_field), (append_string_field):
8766         Append the field name as a byte rather than four chars.
8767         (delete_int_or_uint_field), (delete_string_field): reflect the
8768         fact that the field name and typecode now occupy 4 bytes instead
8769         of 8.
8770         (decode_string_field), (decode_header_data): update to reflect
8771         protocol changes and move the field specific encoding from
8772         decode_string_field() back into decode_header_data().
8773         
8774         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8775         Add utility to aid debugging.
8776         
8777         * dbus/dbus-message-builder.c:
8778         (append_string_field), (_dbus_message_data_load): Update to
8779         reflect protocol changes; Change the FIELD_NAME directive
8780         to HEADER_FIELD and allow it to take the field's conventional
8781         name rather than the actual value.
8782         
8783         * test/data/*/*.message: Update to use HEADER_FIELD instead
8784         of FIELD_NAME; Always align the header on an 8 byte boundary
8785         *before* updating the header length.
8786
8787 2003-09-15  Havoc Pennington  <hp@pobox.com>
8788
8789         * dbus/dbus-pending-call.c: add the get/set object data
8790         boilerplate as for DBusConnection, etc. Use generic object data
8791         for the notify callback.
8792
8793         * glib/dbus-gparser.c (parse_node): parse child nodes
8794
8795         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8796         
8797         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8798         contain functions shared between the convenience lib and the
8799         installed lib
8800
8801         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8802         -export-symbols-regex to the GLib library
8803
8804         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8805         fix the locking in here, and add a default handler for
8806         Introspect() that just returns sub-nodes.
8807
8808 2003-09-14  Havoc Pennington  <hp@pobox.com>
8809
8810         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8811         rather than gfoo consistent
8812
8813         * glib/dbus-gproxy.h: delete for now, move contents to
8814         dbus-glib.h, because the include files don't work right since we
8815         aren't in the dbus/ subdir.
8816         
8817         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8818         (dbus_gproxy_end_call): finish
8819         (dbus_gproxy_begin_call): finish
8820
8821         * glib/dbus-gmain.c (dbus_set_g_error): new
8822
8823         * glib/dbus-gobject.c (handle_introspect): include information
8824         about child nodes in the introspection
8825
8826         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8827         function to help in implementation of introspection
8828
8829         * dbus/dbus-object-tree.c
8830         (_dbus_object_tree_list_registered_and_unlock): new function
8831
8832 2003-09-12  Havoc Pennington  <hp@pobox.com>
8833
8834         * glib/dbus-gidl.h: add common base class for all the foo_info
8835         types
8836
8837         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8838         similar to kdcop
8839
8840         * test/Makefile.am: try test srcdir -ef . in addition to test
8841         srcdir = ., one of them should work (yeah lame)
8842         
8843         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8844         library
8845         
8846         * glib/dbus-gparser.h: make description_load routines return
8847         NodeInfo* not Parser*
8848
8849         * Makefile.am (SUBDIRS): build test dir after all library dirs
8850
8851         * configure.in: add GTK+ detection
8852
8853 2003-09-07  Havoc Pennington  <hp@pobox.com>
8854
8855         * Make Doxygen contented.
8856
8857 2003-09-07  Havoc Pennington  <hp@pobox.com>
8858
8859         * doc/dbus-specification.sgml: more updates
8860
8861 2003-09-06  Havoc Pennington  <hp@pobox.com>
8862
8863         * doc/dbus-specification.sgml: partial updates
8864
8865         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8866         zillionth time; hopefully I edited the right file this time.
8867
8868         * bus/config-parser.c (append_rule_from_element): support
8869         send_type, send_path, receive_type, receive_path
8870
8871         * bus/policy.c: add message type and path to the list of things
8872         that can be "firewalled"
8873
8874 2003-09-06  Havoc Pennington  <hp@pobox.com>
8875
8876         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8877         (dbus_connection_register_object_path): make this not handle
8878         messages to paths below the given path
8879
8880 2003-09-03  Havoc Pennington  <hp@pobox.com>
8881
8882         * test/glib/Makefile.am: add this with random glib-linked test
8883         programs
8884
8885         * glib/Makefile.am: remove the random test programs from here,
8886         leave only the unit tests
8887
8888         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8889         uscore/javacaps conversion, and fix     
8890         (get_object_property, set_object_property): change to .NET
8891         convention for mapping props to methods, set_FooBar/get_FooBar, 
8892         since one language has such a convention we may as well copy it. 
8893         Plus real methods in either getFooBar or get_foo_bar style won't 
8894         collide with this convention.
8895
8896 2003-09-01  Havoc Pennington  <hp@pobox.com>
8897
8898         * glib/dbus-gparser.c: implement
8899
8900         * glib/dbus-gobject.c: start implementing skeletons support
8901
8902         * configure.in: when disabling checks/assert, also define
8903         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8904
8905 2003-09-01  Havoc Pennington  <hp@pobox.com>
8906
8907         * glib/Makefile.am: rearrange a bunch of files and get "make
8908         check" framework set up
8909
8910 2003-08-31  Havoc Pennington  <hp@pobox.com>
8911
8912         * fix build with --disable-tests
8913
8914 2003-08-30  Havoc Pennington  <hp@pobox.com>
8915
8916         * dbus/dbus-connection.c: purge DBusMessageHandler
8917
8918         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8919         use callbacks everywhere
8920
8921 2003-08-30  Havoc Pennington  <hp@pobox.com>
8922
8923         * test/data/valid-config-files/system.d/test.conf: change to 
8924         root for the user so warnings don't get printed
8925
8926         * dbus/dbus-message.c: add dbus_message_get_path,
8927         dbus_message_set_path
8928         
8929         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8930         dispatching to a path
8931
8932         * dbus/dbus-string.c (_dbus_string_validate_path): add
8933
8934         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8935         (_dbus_marshal_object_path): implement
8936
8937         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8938         to contain the path to the target object
8939         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8940         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8941
8942 2003-08-30  Havoc Pennington  <hp@pobox.com>
8943
8944         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8945
8946 2003-08-29  Havoc Pennington  <hp@pobox.com>
8947
8948         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8949         registered
8950         (struct DBusObjectSubtree): shrink this
8951         a lot, since we may have a lot of them
8952         (_dbus_object_tree_free_all_unlocked): implement
8953         (_dbus_object_tree_dispatch_and_unlock): implement
8954
8955 2003-08-29  Havoc Pennington  <hp@pobox.com>
8956
8957         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8958
8959 2003-08-28  Havoc Pennington  <hp@pobox.com>
8960
8961         purge DBusObjectID
8962         
8963         * dbus/dbus-connection.c: port to no ObjectID, create a
8964         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8965
8966         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8967         everything except UnregisterFunction and MessageFunction
8968         
8969         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8970         add DBUS_TYPE_OBJECT_PATH
8971         
8972         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8973         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8974         path-based object IDs
8975
8976 2003-08-25  Havoc Pennington  <hp@pobox.com>
8977
8978         Just noticed that dbus_message_test is hosed, I wonder when I
8979         broke that. I thought make check was passing earlier...
8980         
8981         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8982         container tree, will replace most of dbus-object-registry
8983
8984         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8985         screwup
8986
8987 2003-08-19  Havoc Pennington  <hp@pobox.com>
8988
8989         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8990         (dbus_message_is_error): fix this function
8991
8992         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8993         match
8994
8995         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8996         reflect clarified man page
8997         (bus_client_policy_check_can_send): ditto
8998         
8999         * bus/session.conf.in: fixup
9000
9001         * bus/system.conf.in: fixup
9002
9003 2003-08-18  Havoc Pennington  <hp@redhat.com>
9004
9005         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9006
9007         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9008         dumb bug created earlier (wrong order of args to
9009         decode_header_data())
9010         
9011         * tools/dbus-send.c: port
9012
9013         * tools/dbus-print-message.c (print_message): port
9014
9015         * test/data/*messages: port all messages over
9016         
9017         * dbus/dbus-message-builder.c: support including 
9018         message type
9019         
9020         * bus/driver.c: port over
9021         
9022         * bus/dispatch.c: port over to new stuff
9023
9024         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9025         rename disconnect signal to "Disconnected"
9026
9027 2003-08-17  Havoc Pennington  <hp@pobox.com>
9028
9029         This doesn't compile yet, but syncing up so I can hack on it from
9030         work. What are branches for if not broken code? ;-)
9031         
9032         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9033         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9034         DBUS_HEADER_FIELD_ERROR_NAME
9035         
9036         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9037         for the interface+member pairs
9038         (string_hash): change to use g_str_hash algorithm
9039         (find_direct_function, find_string_function): refactor these to
9040         share most code.
9041         
9042         * dbus/dbus-message.c: port all of this over to support 
9043         interface/member fields instead of name field
9044
9045         * dbus/dbus-object-registry.c: port over
9046         
9047         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9048         from _dbus_string_validate_name
9049
9050         * bus/dbus-daemon-1.1: change file format for the 
9051         <deny>/<allow> stuff to match new message naming scheme
9052
9053         * bus/policy.c: port over
9054
9055         * bus/config-parser.c: parse new format
9056         
9057 2003-08-16  Havoc Pennington  <hp@pobox.com>
9058
9059         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9060         broken assertion
9061
9062         * glib/dbus-gproxy.c: some hacking
9063
9064 2003-08-15  Havoc Pennington  <hp@redhat.com>
9065
9066         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9067
9068         * dbus/dbus-connection.c
9069         (dbus_connection_send_with_reply_and_block): factor out internals;
9070         change to convert any error replies to DBusError instead of 
9071         returning them as a message
9072
9073 2003-08-15  Havoc Pennington  <hp@pobox.com>
9074
9075         * dbus/dbus-connection.c, 
9076         dbus/dbus-pending-call.c: Finish the pending call stuff
9077
9078 2003-08-14  Havoc Pennington  <hp@redhat.com>
9079
9080         * dbus/dbus-pending-call.c: start on new object that will replace
9081         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9082         replies
9083
9084         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9085         with remote interfaces
9086
9087         * dbus/dbus-gidl.c: do the boring boilerplate in here
9088         
9089 2003-08-12  Havoc Pennington  <hp@pobox.com>
9090
9091         * bus/dispatch.c (bus_dispatch): make this return proper 
9092         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9093
9094         * dbus/dbus-errors.c (dbus_set_error): use
9095         _dbus_string_append_printf_valist
9096
9097         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9098         (_dbus_string_append_printf): new
9099
9100         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9101         UNKNOWN_METHOD
9102
9103         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9104         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9105         message is unhandled.
9106
9107 2003-08-11  Havoc Pennington  <hp@pobox.com>
9108
9109         * bus/test.c (client_disconnect_handler): change to return
9110         HANDLED (would have been REMOVE_MESSAGE)
9111
9112         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9113         HANDLED/NOT_YET_HANDLED instead of
9114         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9115         should be used.
9116
9117 2003-08-10  Havoc Pennington  <hp@pobox.com>
9118
9119         * tools/dbus-send.c (main): add --type argument, for now
9120         supporting only method_call and signal types.
9121
9122         * tools/dbus-print-message.c: print message type
9123
9124         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9125         init connection->objects
9126
9127         * doc/dbus-specification.sgml: fix sgml
9128
9129         * bus/*.c: port over to object-instance API changes
9130
9131         * test/test-service.c: ditto
9132         
9133         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9134         name, we will have to fix up the rest of the code to also handle
9135         this
9136         (dbus_message_new): generic message-creation call
9137         (set_string_field): allow appending name field
9138
9139 2003-08-06  Havoc Pennington  <hp@pobox.com>
9140
9141         * dbus/dbus-object-registry.c: implement signal connection 
9142         and dispatch
9143
9144         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9145
9146         * dbus/dbus-internals.c (_dbus_memdup): new function
9147
9148 2003-08-02  Havoc Pennington  <hp@pobox.com>
9149
9150         * dbus/dbus-message.c (dbus_message_get_no_reply)
9151         (dbus_message_set_no_reply): add these and remove
9152         set_is_error/get_is_error
9153
9154         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9155         remove the ERROR flag, since there's now an ERROR type
9156
9157 2003-08-01  Havoc Pennington  <hp@pobox.com>
9158
9159         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9160         implement
9161
9162         * dbus/dbus-message.c (dbus_message_get_type): new function
9163
9164         * doc/dbus-specification.sgml: add "type" byte to messages
9165
9166 2003-08-01  Havoc Pennington  <hp@pobox.com>
9167
9168         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9169         a message type enum to distinguish kinds of message
9170         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9171         that need not be replied to
9172
9173 2003-08-01  Havoc Pennington  <hp@pobox.com>
9174
9175         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9176         (unpack_8_octets): fix no-64-bit-int bug
9177
9178         * dbus/dbus-object-registry.c (validate_id): validate the 
9179         connection ID bits, not just the instance ID.
9180
9181         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9182         the connection-global 33 bits of the object ID
9183
9184         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9185         object ID in the new way
9186
9187         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9188         define server/client/instance bits.
9189
9190 2003-07-30  Havoc Pennington  <hp@pobox.com>
9191
9192         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9193         build
9194
9195 2003-07-13  Havoc Pennington  <hp@pobox.com>
9196
9197         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9198         fields to DBusObjectVTable and DBusObjectInfo
9199
9200 2003-07-12  Havoc Pennington  <hp@pobox.com>
9201
9202         * dbus/dbus-object-registry.c: implement unit test,
9203         fix bugs discovered in process
9204
9205         * dbus/dbus-connection.c: remove handler_table and
9206         register_handler(), add DBusObjectRegistry usage
9207
9208         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9209         (dbus_object_id_set_null): new functions
9210
9211 2003-07-08  Havoc Pennington  <hp@pobox.com>
9212
9213         * dbus/dbus-object.c: implement some of this
9214
9215         * dbus/dbus-object-registry.c
9216         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9217         param
9218         (_dbus_object_registry_new): handle OOM
9219
9220 2003-07-08  Havoc Pennington  <hp@pobox.com>
9221
9222         * dbus/dbus-object.h: sketch out an API for registering objects
9223         with a connection, that allows us to use as little as 24 bytes
9224         per object and lets application code represent an object in 
9225         any conceivable way.
9226
9227         * dbus/dbus-object-registry.c: implement the hard bits of the
9228         DBusConnection aspect of object API. Not yet wired up.
9229         
9230 2003-07-06  Havoc Pennington  <hp@pobox.com>
9231
9232         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9233         (_dbus_marshal_object_id): new
9234         (_dbus_demarshal_object_id): new
9235         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9236         consolidate identical switch cases. Don't conditionalize handling
9237         of DBUS_TYPE_UINT64, need to handle the type always.
9238         (_dbus_marshal_validate_arg): consolidate identical cases, and
9239         handle DBUS_TYPE_OBJECT_ID
9240
9241         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9242
9243         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9244
9245 2003-09-28  Havoc Pennington  <hp@pobox.com>
9246
9247         * real 0.13 release
9248
9249 2003-09-28  Havoc Pennington  <hp@pobox.com>
9250
9251         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9252         to work with Debian db2html
9253
9254 2003-09-28  Havoc Pennington  <hp@pobox.com>
9255
9256         * configure.in: 0.13
9257
9258         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9259         stylesheet-images for benefit of Debian
9260         
9261         Change back to using filesystem-linked sockets for the system
9262         bus, so only root can create the default system bus address.
9263         
9264         * bus/system.conf.in: change to use
9265         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9266
9267         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9268         from here.
9269
9270         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9271         here, and AC_DEFINE DBUS_SYSTEM_PATH
9272
9273 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9274
9275         * doc/TODO:
9276         * doc/busconfig.dtd:
9277         Add busconfig DTD.
9278         
9279 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9280
9281         * doc/dbus-specification.sgml:
9282         Add activation reply values.
9283         
9284 2003-08-05  Havoc Pennington  <hp@redhat.com>
9285
9286         * configure.in: 0.12
9287
9288 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9289
9290         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9291         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9292         (add_watch), (remove_watch), (create_source):
9293         Refcount fds, fixes some reentrancy issues.
9294         
9295 2003-07-30  Havoc Pennington  <hp@redhat.com>
9296
9297         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9298         bus address to be abstract if we have abstract sockets
9299
9300         * NEWS: update
9301
9302 2003-07-28  Havoc Pennington  <hp@redhat.com>
9303
9304         * bus/messagebus.in: fix to avoid processname/servicename 
9305         confusion, from Michael Kearey
9306         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9307         
9308 2003-07-23  Havoc Pennington  <hp@pobox.com>
9309
9310         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9311         fix from Andy Hanton to remove broken "+1"
9312
9313 2003-07-16  Havoc Pennington  <hp@pobox.com>
9314
9315         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9316         babysitter process, as suggested by Thomas Leonard, so 
9317         an "eval `dbus-launch --exit-with-session`" will actually 
9318         return
9319
9320 2003-07-16  Havoc Pennington  <hp@pobox.com>
9321
9322         * configure.in: print out EXPANDED_* variables in the summary at
9323         the end; clean up the code that computes EXPANDED_ variables and
9324         get the ones using exec_prefix right. Should make things work
9325         when you build without --prefix
9326
9327 2003-06-29  Havoc Pennington  <hp@pobox.com>
9328
9329         * mono/Test.cs (class Test): fire up a main loop and run it
9330
9331         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9332         done once, the app has to do it
9333
9334 2003-06-26  Havoc Pennington  <hp@pobox.com>
9335
9336         * mono/Connection.cs: set up connection with the glib main loop
9337
9338 2003-07-01  Havoc Pennington  <hp@redhat.com>
9339
9340         * doc/dbus-specification.sgml: clarify the format of a type code,
9341         change suggested by Jim Blandy
9342
9343 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9344
9345         * doc/Makefile.am:
9346         * tools/Makefile.am: Don't assume srcdir == builddir.
9347
9348         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9349         the allocated block.
9350         (_dbus_memory_test): New function.
9351         * dbus/dbus-test.h: Add _dbus_memory_test ().
9352         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9353
9354         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9355         of %c%c%c%c.
9356         (dbus_message_new): Remove obsolete @todo.
9357
9358         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9359         (_dbus_marshal_set_uint64): Fix comment.
9360
9361         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9362         hardcode FIELD_REPLY_SERIAL.
9363
9364         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9365         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9366
9367         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9368         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9369
9370 2003-06-24  Havoc Pennington  <hp@pobox.com>
9371
9372         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9373
9374 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9375
9376         * configure.in:
9377         * gcj/.cvsignore:
9378         * gcj/Hello.java:
9379         * gcj/Makefile.am:
9380         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9381         * gcj/org/.cvsignore:
9382         * gcj/org/Makefile.am:
9383         * gcj/org/freedesktop/.cvsignore:
9384         * gcj/org/freedesktop/Makefile.am:
9385         * gcj/org/freedesktop/dbus/.cvsignore:
9386         * gcj/org/freedesktop/dbus/Makefile.am:
9387         * gcj/org/freedesktop/dbus/Message.java: (Message),
9388         (Message.Message):
9389         * gcj/org/freedesktop/dbus/natMessage.cc:
9390         Fix the build system.
9391
9392 2003-06-22  Havoc Pennington  <hp@pobox.com>
9393
9394         * mono/Connection.cs: add more bindings
9395
9396         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9397         more than once.
9398
9399 2003-06-22  Havoc Pennington  <hp@pobox.com>
9400
9401         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9402         Start wrapping more stuff.
9403
9404 2003-06-22  Havoc Pennington  <hp@pobox.com>
9405
9406         * mono/Message.cs: implement Message.Wrap() that ensures we only
9407         have a single C# wrapper per DBusMessage, assuming it works which
9408         it probably doesn't.
9409
9410         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9411         (dbus_message_free_data_slot): new
9412         (dbus_message_set_data): new
9413         (dbus_message_get_data): new
9414
9415 2003-06-22  Havoc Pennington  <hp@pobox.com>
9416
9417         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9418         (_dbus_data_slot_allocator_alloc): rework these to keep a
9419         reference count on each slot and automatically manage a global
9420         slot ID variable passed in by address
9421
9422         * bus/bus.c: convert to new dataslot API
9423
9424         * dbus/dbus-bus.c: convert to new dataslot API
9425
9426         * dbus/dbus-connection.c: convert to new dataslot API
9427
9428         * dbus/dbus-server.c: convert to new dataslot API
9429
9430         * glib/dbus-gmain.c: ditto
9431
9432         * bus/test.c: ditto
9433
9434         * bus/connection.c: ditto
9435
9436 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9437
9438         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9439         after the gcj checks so that the correct configuration tags
9440         will be added to libtool.
9441
9442         * dbus-glib-1.pc.in: No need to specify any includes since
9443         dbus-1.pc.in has those.
9444
9445 2003-06-22  Havoc Pennington  <hp@pobox.com>
9446
9447         * mono/*, gcj/*, configure.in, Makefile.am:
9448         Check in makefiles and subdirs for mono and gcj bindings.
9449         Neither binding actually exists, just trying to get through
9450         all the build and other boring bits.
9451
9452 2003-06-21  Philip Blundell  <philb@gnu.org>
9453
9454         * tools/dbus-monitor.1: Updated.
9455
9456         * tools/dbus-send.1: Likewise.
9457
9458 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9459
9460         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9461         for hangup and error after checking read so we won't discard
9462         pending data if both hangup and read are set.
9463
9464 2003-06-19  Philip Blundell  <philb@gnu.org>
9465
9466         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9467
9468         * tools/dbus-send.c: Accept both --system and --session.
9469
9470         * tools/dbus-monitor.c: Same here.
9471
9472 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9473
9474         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9475         from C++ (Patch by Miloslav Trmac).
9476
9477 2003-06-15  Joe Shaw  <joe@assbarn.com>
9478
9479         * configure.in: Check for socklen_t.
9480
9481         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9482
9483         * test/test-segfault.c: Add #include <sys/time.h>
9484
9485         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9486         dbus-launch needs it.
9487
9488 2003-06-09  Havoc Pennington  <hp@redhat.com>
9489
9490         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9491         SUN_LEN, it breaks abstract socket usage
9492
9493         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9494         starts of lines.
9495
9496 2003-06-04  Havoc Pennington  <hp@pobox.com>
9497
9498         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9499         using unix:abstract=/foo, and when listening in a tmpdir
9500         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9501
9502         * dbus/dbus-transport.c (_dbus_transport_open): support
9503         unix:abstract=/foo
9504
9505         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9506         support abstract sockets
9507
9508         * dbus/dbus-transport-unix.c
9509         (_dbus_transport_new_for_domain_socket): support abstract sockets
9510
9511         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9512         toggle as an argument, implement abstract namespace support
9513         (_dbus_listen_unix_socket): ditto
9514
9515         * configure.in: add --enable-abstract-sockets and implement
9516         a configure check for autodetection of the right value.
9517
9518 2003-06-01  Havoc Pennington  <hp@pobox.com>
9519
9520         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9521         in /tmp (though on Linux this will end up being useless,
9522         when we add abstract namespace support)
9523
9524         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9525         subst'ing it
9526
9527 2003-05-28  Colin Walters  <walters@verbum.org>
9528
9529         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9530
9531 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9532
9533         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9534
9535 2003-05-17  Colin Walters  <walters@gnu.org>
9536
9537         * tools/dbus-send.c: Don't exit with an error code if --help was
9538         passed.  Default to using the session bus instead of the system
9539         one.
9540
9541         * tools/dbus-launch.c: Ditto.
9542
9543         * tools/dbus-monitor.c: Ditto.
9544
9545         * tools/dbus-send.1: Update with new arguments.
9546
9547         * tools/dbus-launch.c: Emit code to export variables.  New
9548         arguments -s and -c to specify shell syntax, and a bit of code to
9549         autodetect syntax.  Also, allow specifying a program to run.
9550
9551         * tools/dbus-launch.1: Update with new arguments.
9552
9553         * tools/dbus-send.1: Ditto.
9554
9555         * tools/dbus-monitor.1: Ditto.
9556
9557 2003-05-17  Havoc Pennington  <hp@pobox.com>
9558
9559         * bus/config-parser.c (merge_included): merge in policies from
9560         child configuration file.
9561
9562         * bus/policy.c (bus_policy_merge): function to merge two policies
9563         together
9564
9565 2003-05-16  Havoc Pennington  <hp@redhat.com>
9566
9567         * dbus/dbus-connection.c: disable verbose lock spew
9568
9569         * tools/dbus-send.c: add --print-reply command line option
9570
9571         * tools/dbus-print-message.h (print_message): new util function
9572         shared by dbus-send and dbus-monitor
9573
9574         * tools/dbus-monitor.c (handler_func): exit on disconnect
9575
9576         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9577         disconnected, don't try to use the read_watch
9578
9579         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9580         so we can find this bug more easily
9581
9582 2003-05-16  Havoc Pennington  <hp@redhat.com>
9583
9584         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9585         NULL as DBusHashTable is annoyingly likely to do.
9586
9587 2003-05-16  Colin Walters  <walters@verbum.org>
9588
9589         * tools/dbus-monitor.c: Add --session argument and usage()
9590         function.
9591
9592         * tools/dbus-monitor.1: Update with new --session arg.
9593
9594         * bus/Makefile.am (install-data-hook): Create
9595         $(libdir)/dbus-1.0/services so that the session bus is happy.
9596
9597 2003-05-15  Havoc Pennington  <hp@redhat.com>
9598
9599         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9600         on non-x86. ifdef's are evil.
9601
9602 2003-05-15  Havoc Pennington  <hp@redhat.com>
9603
9604         * configure.in: 0.11
9605
9606         * NEWS: update
9607
9608         * bus/Makefile.am (initddir): apparently we are supposed to put
9609         init scripts in /etc/rc.d/init.d not /etc/init.d
9610
9611         * bus/Makefile.am: remove the "you must --enable-tests to make
9612         check" as it broke distcheck
9613
9614         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9615
9616 2003-05-13  James Willcox  <jwillcox@gnome.org>
9617
9618         * configure.in:
9619         * bus/activation.c: (bus_activation_service_created),
9620         (bus_activation_activate_service):
9621         * bus/driver.c: (bus_driver_send_service_deleted),
9622         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9623         (bus_driver_send_service_acquired),
9624         (bus_driver_send_welcome_message),
9625         (bus_driver_handle_list_services):
9626         * bus/session.conf.in:
9627         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9628         (dbus_bus_service_exists), (dbus_bus_activate_service):
9629         * dbus/dbus-bus.h:
9630
9631         Add some convenience API which lets you activate a service, and did a
9632         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9633         and dbus_message_get_args()
9634
9635 2003-05-11  Havoc Pennington  <hp@pobox.com>
9636
9637         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9638         calling _dbus_marshal_validate_arg() for every byte in a byte
9639         array, etc.
9640
9641         * dbus/dbus-message-handler.c: use atomic reference counting to
9642         reduce number of locks slightly; the global lock in here sucks
9643
9644         * dbus/dbus-connection.c
9645         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9646         update_dispatch_status that can be called with lock held; then use
9647         in a couple places to reduce locking/unlocking
9648         (dbus_connection_send): hold the lock over the whole function
9649         instead of acquiring it twice.
9650
9651         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9652
9653         * bus/connection.c (bus_connections_setup_connection): fix access
9654         to already-freed memory.
9655
9656         * dbus/dbus-connection.c: keep a little cache of linked list
9657         nodes, to avoid using the global linked list alloc lock in the
9658         normal send-message case. Instead we just use the connection lock
9659         that we already have to take.
9660
9661         * dbus/dbus-list.c (_dbus_list_find_last): new function
9662
9663         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9664         change to use a struct for the atomic type; fix docs,
9665         they return value before increment, not after increment.
9666
9667         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9668         (_dbus_string_append_8_aligned): new functions to try to
9669         microoptimize this operation.
9670         (reallocate_for_length): break this out of set_length(), to
9671         improve profile info, and also so we can consider inlining the
9672         set_length() part.
9673
9674         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9675         strings with some preallocation, cuts down on our calls to realloc
9676         a fair bit. Though if we can get the "move entire string to empty
9677         string" optimization below to kick in here, it would be better.
9678
9679         * dbus/dbus-string.c (_dbus_string_move): just call
9680         _dbus_string_move_len
9681         (_dbus_string_move_len): add a special case for moving
9682         an entire string into an empty string; we can just
9683         swap the string data instead of doing any reallocs.
9684         (_dbus_string_init_preallocated): new function
9685
9686 2003-05-11  Havoc Pennington  <hp@pobox.com>
9687
9688         Write a "test-profile" that does echo client-server with threads;
9689         profile reveals lock contention, memcpy/realloc of buffers, and
9690         UTF-8 validation as hot spots. 20% of lock contention eliminated
9691         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9692         contention is global mempool locks for GList and DBusList.
9693
9694         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9695         x86 implementation
9696
9697         * dbus/dbus-connection.c (struct DBusConnection): use
9698         dbus_atomic_t for the reference count
9699
9700         * dbus/dbus-message.c (struct DBusMessage): declare
9701         dbus_atomic_t values as volatile
9702
9703         * configure.in: code to detect ability to use atomic integer
9704         operations in assembly, from GLib patch
9705
9706         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9707         time, tired of it being wrong in threads and forked processes
9708
9709         * glib/test-profile.c: a little program to bounce messages back
9710         and forth between threads and eat CPU
9711
9712         * dbus/dbus-connection.c: add debug spew macros for debugging
9713         thread locks; include config.h at top; fix deadlock in
9714         dbus_connection_flush()
9715
9716 2003-05-08  Havoc Pennington  <hp@pobox.com>
9717
9718         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9719         data from getting written, and there wasn't a good reason to
9720         use _exit really.
9721
9722         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9723         dbus_verbose lines in test coverage
9724         (main): add list of functions sorted by # of untested blocks
9725         to the coverage report
9726
9727         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9728
9729         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9730
9731         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9732         extend test coverage
9733
9734         * test/data/auth/cancel.auth-script: test canceling an
9735         authentication
9736
9737         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9738         aren't used. in CVS history if we end up needing them.
9739
9740 2003-05-04  Havoc Pennington  <hp@pobox.com>
9741
9742         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9743         unit test
9744
9745         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9746         function, which assumed length was in # of strings, not bytes
9747
9748         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9749         missing coverage
9750
9751         * dbus/dbus-connection.c
9752         (_dbus_connection_queue_received_message): disable function for
9753         now, we are only using it in test mode
9754
9755         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9756         remove a mistaken FIXME
9757
9758 2003-05-04  Havoc Pennington  <hp@pobox.com>
9759
9760         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9761         unlock mutex on successful return, patch from Anders Gustafsson
9762
9763 2003-05-04  Havoc Pennington  <hp@pobox.com>
9764
9765         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9766         Anders Gustafsson
9767
9768 2003-05-04  Havoc Pennington  <hp@pobox.com>
9769
9770         * tools/dbus-launch.c: implement
9771
9772         * bus/main.c (main), bus/bus.c (bus_context_new):
9773         implement --print-pid and --fork
9774
9775 2003-05-03  Havoc Pennington  <hp@redhat.com>
9776
9777         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9778         the address had no value, and add to test suite. Fix and
9779         regression test from Miloslav Trmac
9780
9781 2003-05-03  Havoc Pennington  <hp@pobox.com>
9782
9783         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9784         watch is invalid when handled
9785
9786         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9787         dbus-launch utility to launch the bus from a shell script.  Didn't
9788         actually implement dbus-launch yet, it's just a placeholder still.
9789
9790 2003-05-03  Havoc Pennington  <hp@pobox.com>
9791
9792         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9793         daemon; also documents daemon config file, so replaces
9794         doc/config-file.txt. Corrected some stuff from config-file.txt in
9795         the process of moving it.
9796
9797 2003-05-03  Havoc Pennington  <hp@pobox.com>
9798
9799         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9800         add some man pages
9801
9802 2003-05-03  Colin Walters  <walters@verbum.org>
9803
9804         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9805         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9806
9807         * Makefile.am: Update to use new .pc versioning scheme.
9808
9809 2003-05-02  Havoc Pennington  <hp@redhat.com>
9810
9811         * bus/system.conf.in: allow send/receive to/from message bus
9812         service
9813
9814 2003-04-30  Havoc Pennington  <hp@redhat.com>
9815
9816         * configure.in: print a note when building with unit tests and
9817         without assertions
9818
9819 2003-04-30  Havoc Pennington  <hp@redhat.com>
9820
9821         * Makefile.am: add a check-local that complains if you didn't
9822         configure with --enable-tests
9823
9824 2003-04-29  Havoc Pennington  <hp@redhat.com>
9825
9826         * glib/dbus-gmain.c: docs cleanups
9827
9828         * dbus/dbus-types.h: add docs on int64 types
9829
9830         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9831         public API docs section
9832
9833 2003-04-29  Havoc Pennington  <hp@redhat.com>
9834
9835         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9836         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9837         parallel install API version, not with the D-BUS package version.
9838
9839         * HACKING: move some of README over here
9840
9841         * README: updates, and document API/ABI policy
9842
9843         * configure.in: reindentation
9844
9845 2003-04-29  Havoc Pennington  <hp@redhat.com>
9846
9847         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9848         to use this library" to be sure people have the right
9849         expectations.
9850
9851 2003-04-28  Havoc Pennington  <hp@redhat.com>
9852
9853         * configure.in: add --enable-docs which by default is auto yes if
9854         doxygen and db2html found, no otherwise; but can be forced on/off
9855
9856         * doc/Makefile.am: conditionalize whether to build docs on
9857         --enable-docs
9858
9859 2003-04-28  Havoc Pennington  <hp@redhat.com>
9860
9861         * configure.in: 0.10
9862
9863         * NEWS: update
9864
9865         * bus/system.conf.in: add <includedir>system.d</includedir>
9866
9867         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9868         username was provided but not uid
9869
9870         * bus/config-parser.c (struct BusConfigParser): keep track of
9871         whether the parser is toplevel or was included; change some
9872         of the error handling if it's included.
9873
9874 2003-04-27  Havoc Pennington  <hp@pobox.com>
9875
9876         Unbreak my code...
9877
9878         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9879         report correct status if we finish processing authentication
9880         inside this function.
9881
9882         * bus/activation.c (try_send_activation_failure): use
9883         bus_transaction_send_error_reply
9884
9885         * bus/connection.c (bus_connection_get_groups): return an error
9886         explaining the problem
9887
9888         * bus/bus.c (bus_context_check_security_policy): implement
9889         restriction here that inactive connections can only send the
9890         hello message. Also, allow bus driver to send anything to
9891         any recipient.
9892
9893         * bus/connection.c (bus_connection_complete): create the
9894         BusClientPolicy here instead of on-demand.
9895         (bus_connection_get_policy): don't return an error
9896
9897         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9898         sender field in message being replied to
9899
9900         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9901         causing it to return FALSE always
9902
9903         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9904         we checked sender rather than destination
9905
9906 2003-04-25  Havoc Pennington  <hp@redhat.com>
9907
9908         test suite is slightly hosed at the moment, will fix soon
9909
9910         * bus/connection.c (bus_connections_expire_incomplete): fix to
9911         properly disable the timeout when required
9912         (bus_connection_set_name): check whether we can remove incomplete
9913         connections timeout after we complete each connection.
9914
9915         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9916         probably still broken.
9917
9918         * bus/services.c (bus_registry_acquire_service): implement max
9919         number of services owned, and honor allow/deny rules on which
9920         services a connection can own.
9921
9922         * bus/connection.c (bus_connection_get_policy): report errors here
9923
9924         * bus/activation.c: implement limit on number of pending
9925         activations
9926
9927 2003-04-25  Havoc Pennington  <hp@redhat.com>
9928
9929         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9930         where we used >= 0 instead of != DBUS_UID_UNSET.
9931
9932 2003-04-25  Havoc Pennington  <hp@redhat.com>
9933
9934         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9935         were toggled without add/remove, fix from Anders Gustafsson
9936
9937 2003-04-24  Havoc Pennington  <hp@redhat.com>
9938
9939         * test/data/valid-config-files/basic.conf: add <limit> tags to
9940         this test
9941
9942         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9943         <limit> tag in configuration file.
9944
9945 2003-04-24  Havoc Pennington  <hp@redhat.com>
9946
9947         * bus/dispatch.c: somehow missed some name_is
9948
9949         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9950         (_dbus_timeout_set_interval): new
9951
9952         * bus/connection.c (bus_connections_setup_connection): record time
9953         when each connection is first set up, and expire them after the
9954         auth timeout passes.
9955
9956 2003-04-24  Havoc Pennington  <hp@redhat.com>
9957
9958         * dbus/dbus-message.c (dbus_message_name_is): rename
9959         (dbus_message_service_is): rename
9960         (dbus_message_sender_is): rename
9961         (dbus_message_get_service): rename
9962
9963 2003-04-24  Havoc Pennington  <hp@redhat.com>
9964
9965         * configure.in: add --enable-checks
9966
9967         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9968
9969         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9970         to use thread locks.
9971         (_dbus_connection_handler_destroyed_locked): move some private
9972         functions into proper docs group
9973
9974         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9975         _dbus_return_val_if_fail
9976
9977         Throughout: use dbus_return_if_fail
9978
9979 2003-04-23  James Willcox  <jwillcox@gnome.org>
9980
9981         * glib/dbus-glib.h:
9982         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9983         (dbus_connection_setup_with_g_main),
9984         (dbus_server_setup_with_g_main):
9985         * glib/test-dbus-glib.c: (main):
9986         * glib/test-thread-client.c: (main):
9987         * glib/test-thread-server.c: (new_connection_callback), (main):
9988         * tools/dbus-monitor.c: (main):
9989
9990         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9991         and dbus_server_setup_with_g_main().
9992
9993 2003-04-20  Havoc Pennington  <hp@pobox.com>
9994
9995         * doc/dbus-specification.sgml: document the restrictions on
9996         message and service names
9997
9998 2003-04-22  Havoc Pennington  <hp@redhat.com>
9999
10000         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10001         support, and do some code cleanups to share more code and
10002         speed up array marshal/demarshal.
10003
10004         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10005
10006         * configure.in: generate dbus-arch-deps.h
10007
10008         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10009         64-bit typecodes
10010
10011 2003-04-22  Havoc Pennington  <hp@redhat.com>
10012
10013         * test/data/valid-messages/opposite-endian.message: fix test
10014         to use proper type for rply field
10015
10016         * test/data/invalid-messages: add tests for below validation
10017
10018         * dbus/dbus-message.c (decode_header_data): validate field types,
10019         and validate that named fields are valid names
10020         (decode_name_field): consider messages in the
10021         org.freedesktop.Local. namespace to be invalid.
10022
10023         * dbus/dbus-string.c (_dbus_string_validate_name): new
10024
10025 2003-04-19  Havoc Pennington  <hp@pobox.com>
10026
10027         * bus/driver.c (bus_driver_handle_hello): check limits and
10028         return an error if they are exceeded.
10029
10030         * bus/connection.c: maintain separate lists of active and inactive
10031         connections, and a count of each. Maintain count of completed
10032         connections per user. Implement code to check connection limits.
10033
10034         * dbus/dbus-list.c (_dbus_list_unlink): export
10035
10036         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10037         number of bytes in the message queue for a connection
10038
10039 2003-04-18  Havoc Pennington  <hp@pobox.com>
10040
10041         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10042
10043         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10044         memleaks
10045
10046         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10047         on realloc be sure to update the pointer in the keyring
10048
10049         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10050         offset to avoid writing to unallocated memory
10051
10052         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10053         try the next mechanism, so we properly handle OOM
10054
10055         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10056         on OOM.
10057         (_dbus_keyring_new): fix OOM bug
10058         (_dbus_keyring_new_homedir): always set error; impose a maximum
10059         number of keys we'll load from the file, mostly to speed up the
10060         test suite and make its OOM checks more useful, but also for
10061         general sanity.
10062
10063         * dbus/dbus-auth.c (process_error_server): reject authentication
10064         if we get an error from the client
10065         (process_cancel): on cancel, send REJECTED, per the spec
10066         (process_error_client): send CANCEL if we get an error from the
10067         server.
10068
10069 2003-04-18  Havoc Pennington  <hp@pobox.com>
10070
10071         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10072         debug spew
10073
10074         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10075         handling problem
10076
10077         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10078         about DBUS_TEST_HOMEDIR once
10079
10080         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10081         the environment
10082
10083         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10084         config file so we test the right thing
10085
10086         Throughout: assorted docs improvements
10087
10088 2003-04-18  Havoc Pennington  <hp@pobox.com>
10089
10090         * glib/dbus-gmain.c: adapt to watch changes
10091
10092         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10093
10094         * dbus/dbus-server.h: remove dbus_server_handle_watch
10095
10096         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10097
10098         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10099         like DBusTimeout, so we don't need dbus_connection_handle_watch
10100         etc.
10101
10102 2003-04-17  Havoc Pennington  <hp@redhat.com>
10103
10104         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10105         database usage so it all goes via the DBusUserDatabase cache.
10106
10107 2003-04-17  Havoc Pennington  <hp@redhat.com>
10108
10109         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10110         there was an OOM watch we skipped, we always return TRUE so we
10111         iterate again to have a look at it again. Fixes test suite hang.
10112         Code rearrangement also lets us lose some memset and only iterate
10113         over callbacks once.
10114
10115         * bus/driver.c (bus_driver_handle_message): sense of test for
10116         reply was backward
10117
10118 2003-04-16  Havoc Pennington  <hp@pobox.com>
10119
10120         * doc/dbus-specification.sgml: make spec say serials are unsigned
10121
10122         * dbus/dbus-message.h: change message serials to unsigned
10123
10124         * dbus/dbus-connection.c: adapt to message serials being unsigned
10125
10126 2003-04-15  Havoc Pennington  <hp@pobox.com>
10127
10128         * bus/bus.c: create and keep around a shared DBusUserDatabase
10129         object.
10130
10131         * bus/connection.c (bus_connection_get_groups): don't cache
10132         groups for user in the connection object, since user database
10133         object now does that.
10134
10135 2003-04-16  Havoc Pennington  <hp@redhat.com>
10136
10137         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10138         list of size counters
10139         (_dbus_message_loader_putback_message_link): put back a popped link
10140
10141         * dbus/dbus-connection.c
10142         (dbus_connection_set_max_live_messages_size): rename
10143         max_received_size
10144         (dbus_connection_get_outgoing_size): get size of outgoing
10145         queue
10146         (_dbus_connection_set_connection_counter): remove this cruft
10147
10148 2003-04-14  Havoc Pennington  <hp@redhat.com>
10149
10150         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10151         caching, but at some point we might want to be able to use a
10152         different database.
10153
10154         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10155         SHA1 conf file to test the sha1 auth mechanism, since the regular
10156         test always uses EXTERNAL when available.
10157
10158         * configure.in,
10159         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10160         add conf file that requires use of sha1 auth
10161
10162 2003-04-13  Havoc Pennington  <hp@pobox.com>
10163
10164         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10165         from Philip Blundell to send messages and monitor them.
10166
10167 2003-04-13  Havoc Pennington  <hp@pobox.com>
10168
10169         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10170         callbacks
10171
10172         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10173         users
10174
10175         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10176         fix to only recover unused bytes if we're already authenticated
10177         (_dbus_transport_get_is_authenticated): fix to still mark us
10178         authenticated if there are unused bytes.
10179
10180         * bus/dispatch.c: implement security policy checking
10181
10182         * bus/connection.c (bus_transaction_send_from_driver): new
10183
10184         * bus/bus.c (bus_context_check_security_policy): new
10185
10186         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10187         now we just set the DBusError and it gets converted to an error
10188         reply.
10189
10190         * bus/connection.c (allow_user_function): enable code using actual
10191         data from the config file
10192
10193         * bus/policy.c (list_allows_user): handle wildcard rules for
10194         user/group connection perms
10195
10196 2003-04-13  Havoc Pennington  <hp@pobox.com>
10197
10198         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10199
10200         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10201
10202         * bus/policy.c (bus_policy_append_mandatory_rule)
10203         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10204         (bus_policy_append_group_rule): new functions
10205
10206 2003-04-12  Havoc Pennington  <hp@pobox.com>
10207
10208         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10209
10210         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10211         the pid/gid/uid, just for paranoia.
10212
10213         * test/break-loader.c (randomly_do_n_things): find a byte
10214         containing a type code, and randomly change it to a different
10215         type code.
10216
10217 2003-04-12  Havoc Pennington  <hp@pobox.com>
10218
10219         * bus/policy.h: change BusPolicy to be the thing from the config
10220         file, and rename old BusPolicy to BusClientPolicy
10221
10222         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10223         match change in how policy works
10224
10225         * dbus/dbus-internals.h: mark assert_not_reached as
10226         __attribute((noreturn))__
10227
10228 2003-04-11  Havoc Pennington  <hp@redhat.com>
10229
10230         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10231         the broadcast service. Use boolean return for ServiceExists.
10232
10233 2003-04-11  Havoc Pennington  <hp@redhat.com>
10234
10235         * configure.in: add another directory to look for qt in.
10236
10237 2003-04-11  Havoc Pennington  <hp@redhat.com>
10238
10239         * AUTHORS: add Colin Walters
10240
10241 2003-04-11  Havoc Pennington  <hp@redhat.com>
10242
10243         * NEWS: update
10244
10245         * configure.in: 0.9
10246
10247 2003-04-11  Havoc Pennington  <hp@redhat.com>
10248
10249         * bus/messagebus.in: remove pid file when stopping the
10250         message bus, since the bus won't have privileges to remove it
10251         itself.
10252
10253 2003-04-11  Havoc Pennington  <hp@redhat.com>
10254
10255         * bus/bus.c (bus_context_new): move credentials change after
10256         creating pidfile
10257
10258 2003-04-11  Havoc Pennington  <hp@pobox.com>
10259
10260         * test/decode-gcov.c: add "below average functions" to the
10261         coverage report, and change how some of the code works.
10262
10263         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10264         not in the coverage stats.
10265
10266         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10267         couple places so running the test suite doesn't result in megaspam.
10268
10269 2003-04-11  Havoc Pennington  <hp@pobox.com>
10270
10271         * bus/dispatch.c (check_existent_service_activation): accept a no
10272         memory error in a place we didn't before
10273
10274         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10275         in case the first one failed," since the test suite is less
10276         broken now.
10277
10278 2003-04-10  Havoc Pennington  <hp@pobox.com>
10279
10280         * bus/dispatch.c (check_segfault_service_activation): add test
10281         for launching an executable that just crashes.
10282
10283         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10284         don't leave a million cores. We'll see how portable this is.
10285
10286 2003-04-10  Havoc Pennington  <hp@pobox.com>
10287
10288         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10289         the possible parent failures before we fork, so that we don't
10290         fail to create a babysitter after creating the child.
10291
10292         * bus/activation.c (bus_activation_activate_service): kill child
10293         if we don't successfully complete the activation.
10294
10295 2003-04-10  Havoc Pennington  <hp@redhat.com>
10296
10297         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10298         the connection if it's disconnected
10299
10300         * bus/activation.c (bus_activation_service_created): use new
10301         transaction features to roll back removal of pending activation if
10302         we don't successfully create the service after all. Don't remove
10303         pending activation if the function fails.
10304
10305         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10306         (_dbus_list_insert_after_link): new code to facilitate
10307         services.c fixes
10308
10309         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10310         new functionality, so we can preallocate the ability to insert
10311         into a hash table.
10312
10313         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10314         allowing us to put custom hooks in a transaction to be used for
10315         cancelling said transaction
10316
10317         * doc/dbus-specification.sgml: add some discussion of secondary
10318         service owners, and disallow zero-length service names
10319
10320         * bus/services.c (bus_registry_acquire_service): new function,
10321         splits out part of bus_driver_handle_acquire_service() and fixes
10322         a bug where we didn't remove the service doing the acquiring
10323         from the secondary queue if we failed to remove the current owner
10324         from the front of the queue.
10325
10326 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10327
10328         * doc/dbus-specification.sgml:
10329         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10330
10331 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10332
10333         * bus/.cvsignore:
10334         * glib/.cvsignore:
10335         * test/.cvsignore:
10336         Added files to cvsignore
10337
10338         * dbus/dbus-message.h:
10339         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10340         Make get_named() take two out argument and return a boolean.
10341         (dbus_message_iter_get_args_valist):
10342         Update usage of get_named().
10343         (dbus_message_iter_append_byte):
10344         Fix typo
10345         (dbus_message_iter_append_named)
10346         Fix typo
10347         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10348         More tests.
10349
10350 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10351
10352         * dbus/dbus-marshal.[ch]:
10353         Add array_type_pos argument to _dbus_marshal_validate_arg.
10354         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10355
10356         * dbus/dbus-message.[ch]:
10357         Multi-dimensional arrays have full type specification in the
10358         outermost array. Iter code re-arranged to handle this.
10359         Added some more iter tests.
10360
10361         * doc/dbus-specification.sgml:
10362         Add me to authors.
10363         Remove old FIXME.
10364         Update new array encoding description.
10365         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10366
10367         * test/data/invalid-messages/array-with-mixed-types.message:
10368         * test/data/valid-messages/array-of-array-of-uint32.message:
10369         Change to the new array format.
10370
10371         * test/data/invalid-messages/too-short-dict.message:
10372         Fix bug in test.
10373
10374         * test/data/valid-messages/recursive-types.message:
10375         Fix up and extend test.
10376
10377 2003-04-10  Havoc Pennington  <hp@pobox.com>
10378
10379         * bus/dispatch.c: lots of fixes
10380
10381         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10382         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10383         that was crack, broke the test service.
10384
10385         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10386         handling to avoid piling up errors if we get a failure on the
10387         first address.
10388
10389         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10390         pid in assertion failures.
10391
10392         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10393         to some fixed size of file descriptor array. Don't return TRUE
10394         anytime a timeout exists, that led to lots of busy loop silliness
10395         in the tests.
10396
10397 2003-04-09  Havoc Pennington  <hp@redhat.com>
10398
10399         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10400         I'd checked this in earlier but hadn't.
10401
10402 2003-04-09  Havoc Pennington  <hp@redhat.com>
10403
10404         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10405         the activation test (man this is getting old!)
10406
10407 2003-04-09  Havoc Pennington  <hp@redhat.com>
10408
10409         * test/test-utils.c: use dispatch status function to fix this up
10410
10411         * bus/connection.c (connection_watch_callback): don't dispatch
10412         from here
10413         (connection_timeout_callback): don't dispatch from here
10414         (bus_connections_setup_connection): set the dispatch status function
10415         (bus_connection_disconnected): unset it
10416
10417         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10418         used to add a connection to be dispatched
10419         (_dbus_loop_iterate): do the dispatching at the end of each
10420         iteration
10421
10422         * dbus/dbus-connection.c
10423         (dbus_connection_set_dispatch_status_function): new function
10424         allowing us to fix up main loop usage
10425         (_dbus_connection_last_unref): free all the various function
10426         user data
10427         (dbus_connection_dispatch): call the DispatchStatusFunction
10428         whenever this function returns
10429         (dbus_connection_handle_watch): call DispatchStatusFunction
10430         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10431         (reply_handler_timeout): call DispatchStatusFunction
10432         (dbus_connection_flush): call DispatchStatusFunction
10433
10434 2003-04-09  Havoc Pennington  <hp@redhat.com>
10435
10436         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10437         a memory leak
10438
10439         * bus/dispatch.c (check_service_activated): fix bug in test
10440
10441         * dbus/dbus-mainloop.c (check_timeout): fix this up
10442
10443         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10444         verbose output so we can sort out output from different processes,
10445         e.g. in the activation case.
10446
10447 2003-04-08  Colin Walters  <walters@gnu.org>
10448
10449         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10450         the pid file.
10451         (bus_context_new): Set it.
10452         (bus_context_unref): Use it to delete the pid file.
10453
10454 2003-04-08  Havoc Pennington  <hp@redhat.com>
10455
10456         * test/data/invalid-messages/array-with-mixed-types.message:
10457         regression test that fails for the moment
10458
10459         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10460         tests for convenience
10461
10462         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10463         array of nil, it broke things.
10464
10465         * test/data/invalid-messages/array-of-nil.message: regression test
10466
10467         * test/data/valid-messages/array-of-array-of-uint32.message:
10468         happened to write this so added it to suite
10469
10470 2003-04-08  Havoc Pennington  <hp@redhat.com>
10471
10472         * bus/driver.c (bus_driver_handle_acquire_service): init
10473         retval/reply before checking name
10474
10475         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10476         recursion depth argument
10477
10478         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10479         in the public struct for future extension
10480
10481         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10482         typo
10483
10484         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10485         message
10486
10487         * doc/dbus-specification.sgml: fix typo
10488
10489 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10490
10491         Implemented recursive types, named types and new-style iters
10492
10493         * bus/driver.c:
10494         * glib/test-thread-client.c: (thread_func):
10495         * glib/test-thread-server.c: (handle_test_message):
10496         * test/test-service.c: (handle_echo):
10497         Update to new api
10498
10499         * dbus/Makefile.am:
10500         * dbus/dbus-dict.c:
10501         * dbus/dbus-dict.h:
10502         * dbus/dbus.h
10503         Remove DBusDict
10504
10505         * dbus/dbus-internals.c: (_dbus_type_to_string):
10506         Update for new types.
10507
10508         * dbus/dbus-marshal.[ch]:
10509         Implement recursive types and the new marshalling format.
10510         Remove hardcoded dict marshalling.
10511         Marshal named types.
10512
10513         * dbus/dbus-message-builder.c:
10514         Add BYTE_ARRAY.
10515         Remove references to old types
10516
10517         * dbus/dbus-message.[ch]:
10518         New non-refcounted iter API that supports recursive iters.
10519         Use iters for appending, including support for recursive
10520         iters.
10521         Add byte and named type support.
10522         Update everything to new marshalling formats.
10523         Add tests for new API.
10524
10525         * dbus/dbus-protocol.h:
10526         Remove old array types.
10527         Add types: BYTE, ARRAY, DICT, NAMED
10528
10529         * dbus/dbus-string.c:
10530         * dbus/dbus-sysdeps.c:
10531         Make parse_double locale safe.
10532
10533         * dbus/dbus-test-main.c:
10534         Call setlocale.
10535
10536         * dbus/dbus-test.c:
10537         Kill dict test
10538
10539         * doc/dbus-specification.sgml:
10540         Update spec
10541
10542         * test/data/incomplete-messages/missing-body.message:
10543         * test/data/invalid-messages/bad-boolean.message:
10544         * test/data/invalid-messages/bad-boolean-array.message:
10545         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10546         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10547         * test/data/invalid-messages/too-short-dict.message:
10548         * test/data/valid-messages/dict-simple.message:
10549         * test/data/valid-messages/dict.message:
10550         * test/data/valid-messages/emptiness.message:
10551         * test/data/valid-messages/lots-of-arguments.message:
10552         * test/data/valid-messages/no-padding.message:
10553         * test/data/valid-messages/recursive-types.message:
10554         Add missing NAME fields
10555         Fix up dicts & arrays
10556
10557         * test/data/invalid-messages/dict-with-nil-value.message:
10558         Removed, this is not invalid anymore.
10559
10560         * test/data/valid-messages/recursive-types.message:
10561         Add new test for deeply recursive types.
10562
10563 2003-04-07  Havoc Pennington  <hp@pobox.com>
10564
10565         * bus/driver.c (bus_driver_handle_acquire_service): return an
10566         error if you try to acquire a service that starts with ':'
10567
10568 2003-04-07  Havoc Pennington  <hp@redhat.com>
10569
10570         * doc/dbus-specification.sgml: require that base service names
10571         start with ':' and that the base service is created/deleted
10572         as first and last things a connection does on the bus
10573
10574         * bus/dispatch.c (check_existent_service_activation): lots more
10575         work on the activation test; it doesn't fully pass yet...
10576
10577         * test/test-service.c (main): fix so we don't memleak the
10578         connection to the message bus
10579         (filter_func): accept a message asking us to exit
10580
10581 2003-04-06  Havoc Pennington  <hp@pobox.com>
10582
10583         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10584         from Colin Walters
10585
10586         * configure.in: fixes to Qt detection from Colin Walters
10587
10588         * doc/Makefile.am: Only remove generated docbook dirs if they
10589         exist, from Colin Walters
10590
10591         * dbus/dbus-bus.c: change how we set well-known connections to
10592         NULL, so that it works if a single connection is stored in
10593         two well-known array slots.
10594
10595         * test/Makefile.am: remove a lot of stuff that isn't immediately
10596         useful, it's in CVS history if we want it.
10597
10598         * test/test-service.c: use dbus-mainloop instead of that
10599         watch.[hc] crack
10600
10601 2003-04-06  Havoc Pennington  <hp@pobox.com>
10602
10603         * dbus/Makefile.am: split lists of sources into stuff that goes in
10604         the library, util functions that go in the lib and are also used
10605         elsewhere, and util functions that are used in tests/daemon but
10606         don't go in the lib.
10607
10608         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10609         here so it can be used in test binaries also
10610
10611 2003-04-06  Havoc Pennington  <hp@pobox.com>
10612
10613         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10614         here in the parent process, so we can return an error if it
10615         fails. Also, move some of the code into the child so the parent
10616         is less hosed if we fail midway through.
10617
10618         * bus/bus.c (bus_context_new): move pidfile detection further up
10619         in the function, before we start overwriting sockets and such.
10620
10621         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10622
10623         * configure.in: add --with-system-pid-file and --with-system-socket
10624
10625 2003-04-06  Colin Walters  <walters@verbum.org>
10626
10627         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10628
10629         * bus/system.conf.in: Declare a pidfile.
10630
10631         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10632         create one (if appropriate).
10633
10634         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10635         (struct BusConfigParser) [pidfile]: New.
10636         (element_type_to_name, merge_included, start_busconfig_child)
10637         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10638         (bus_config_parser_unref): Free it.
10639         (bus_config_parser_get_pidfile): New function.
10640
10641         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10642
10643         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10644
10645         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10646
10647         * dbus/dbus-sysdeps.h: Prototype it.
10648
10649 2003-04-06  Havoc Pennington  <hp@pobox.com>
10650
10651         * bus/bus.c (bus_context_new): print the address in here, rather
10652         than in main(), because we need to do it before forking the daemon
10653
10654         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10655         on the service nonexistent error
10656
10657         * bus/driver.c (bus_driver_handle_acquire_service): set the
10658         sender on the AcquireService reply
10659
10660         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10661         server also listen on a UNIX socket so services can connect to it.
10662
10663 2003-04-06  Havoc Pennington  <hp@pobox.com>
10664
10665         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10666         so it detects deadlocks and also we actually init threads when
10667         debugging.
10668
10669 2003-04-06  Havoc Pennington  <hp@pobox.com>
10670
10671         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10672         save the domain socket name, and unlink it when we disconnect the
10673         server. Means that at least when we exit normally, we won't leave
10674         a bunch of junk in /tmp
10675
10676         * dbus/dbus-transport-unix.c
10677         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10678         memory management). (I was making a real change here but then
10679         didn't)
10680
10681 2003-04-06  Havoc Pennington  <hp@pobox.com>
10682
10683         * bus/bus.c (bus_context_new): fix wrong handling of
10684         server_data_slot_unref() in the error case.
10685
10686         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10687         "(condition) != 0" to _dbus_real_assert so that
10688         "_dbus_assert (pointer)" doesn't cause a warning
10689
10690         * bus/main.c (main): accept --print-address option to print out
10691         the message bus address
10692
10693         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10694
10695         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10696         "tmpdir" option to unix: address on client side
10697
10698         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10699         to unix: address
10700
10701         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10702         we can use to create sockets in the test suite.
10703
10704         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10705         cleanly. To be used for testing.
10706
10707         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10708
10709         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10710
10711         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10712         handle trying to call this when there's no servers active
10713
10714 2003-04-05  Havoc Pennington  <hp@pobox.com>
10715
10716         * NEWS: update
10717
10718         * configure.in: 0.8
10719
10720 2003-04-05  Havoc Pennington  <hp@pobox.com>
10721
10722         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10723         crash on startup. Need to get "try starting the daemon"
10724         in the test suite I guess. ;-)
10725
10726         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10727         tracked the number of open connections; it's better done in
10728         application-specific code as you want it to span all servers etc.
10729
10730 2003-04-05  Havoc Pennington  <hp@pobox.com>
10731
10732         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10733         patch from Colin Walters
10734
10735 2003-04-05  Havoc Pennington  <hp@pobox.com>
10736
10737         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10738         reality; in fact multiple mechanisms are allowed.
10739
10740         * dbus/dbus-internals.c (_dbus_real_assert)
10741         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10742         _dbus_assert_not_reached() into functions, so that they don't show
10743         up in basic block counts for test coverage, and don't use up as
10744         much disk space. Does mean slower execution speed though, so
10745         assumes --disable-asserts is the normal production case.
10746
10747 2003-04-05  Havoc Pennington  <hp@pobox.com>
10748
10749         * test/Makefile.am (dist-hook): also dist *.in files
10750
10751         * NEWS: update
10752
10753         * configure.in: 0.7
10754
10755 2003-04-05  Havoc Pennington  <hp@pobox.com>
10756
10757         * dbus/dbus-string.c: docs warning
10758
10759         * dbus/dbus-spawn.c: missing docs
10760
10761         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10762
10763 2003-04-05  Havoc Pennington  <hp@pobox.com>
10764
10765         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10766         magic from GLib
10767
10768         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10769         to -1 once we've reaped the babysitter
10770         (_dbus_babysitter_handle_watch): do as much work as we can, not
10771         just one go of it
10772
10773         * bus/activation.c: add code using DBusBabysitter so that we
10774         handle it when a service fails to start up properly.
10775         (bus_activation_service_created): don't remove the activation
10776         entries as we go, just let them get removed when we free the pending
10777         activation. Unref reply messages after sending them.
10778
10779 2003-04-05  Havoc Pennington  <hp@pobox.com>
10780
10781         * test/decode-gcov.c (main): print per-directory stats in the report
10782
10783         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10784
10785 2003-04-05  Havoc Pennington  <hp@pobox.com>
10786
10787         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10788
10789         * test/decode-gcov.c: hack up a little program to suck data
10790         out of gcov files. Yes this is sort of silly.
10791
10792         * configure.in: define something in config.h and do an
10793         AM_CONDITIONAL when gcov is enabled
10794
10795 2003-04-04  Havoc Pennington  <hp@redhat.com>
10796
10797         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10798         return a "babysitter" object that is used to monitor the status of
10799         the spawned process and reap it when required.
10800
10801         * test/test-segfault.c, test/test-exit.c,
10802         test/test-sleep-forever.c: binaries that do various lame things,
10803         used in the test suite.
10804
10805         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10806
10807 2003-04-03  Havoc Pennington  <hp@pobox.com>
10808
10809         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10810         in preparation for modifying it, dbus-sysdeps is getting
10811         a bit unmanageable.
10812
10813 2003-04-03  Havoc Pennington  <hp@redhat.com>
10814
10815         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10816         have multiple ones
10817
10818         * bus/*.[hc]: adapt to mainloop change
10819
10820 2003-04-03  Havoc Pennington  <hp@redhat.com>
10821
10822         * bus/activation.c (load_directory): fix up memleaks
10823         (bus_activation_entry_free): free the entry
10824
10825         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10826         we get one from the message bus; fix memleaks.
10827
10828         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10829
10830 2003-04-03  Havoc Pennington  <hp@pobox.com>
10831
10832         * bus/config-parser.c (bus_config_parser_unref): free
10833         list of mechanisms, bug discovered by test suite enhancements
10834         (putting system.conf and session.conf into suite)
10835
10836         * test/Makefile.am, test/test-service.c: add placeholder for a
10837         test service that we'll activate as part of test suite. Doesn't
10838         do anything yet.
10839
10840         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10841         setting NULL value, and use system malloc not dbus_malloc()
10842         when we have unavoidable memleakage.
10843
10844         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10845         didn't work, and support DBUS_BUS_ACTIVATION.
10846
10847         * bus/activation.c (child_setup): pass our well-known bus type to
10848         the child
10849
10850         * bus/config-parser.c: support <type> to specify well-known type
10851
10852         * doc/dbus-specification.sgml: document the env variables to
10853         locate well-known buses and find service activator
10854
10855 2003-04-02  Havoc Pennington  <hp@redhat.com>
10856
10857         * test/Makefile.am (all-local): add a rule to copy tests to
10858         builddir, so we can have generated tests. Use this to remove the
10859         silly hack for testing system.conf and session.conf. Will use this
10860         shortly to generate .service files pointing to test binaries.
10861
10862 2003-04-02  Havoc Pennington  <hp@redhat.com>
10863
10864         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10865         current alloc and needed new length, not max of the doubled
10866         allocation and needed new length. Also, when building tests,
10867         don't do the double-allocation stuff, just realloc every time.
10868
10869 2003-04-02  Havoc Pennington  <hp@redhat.com>
10870
10871         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10872         in error messages
10873         (_dbus_string_get_dirname): new
10874         (_dbus_sysdeps_test): new
10875         (_dbus_directory_open): include dirnames in error messages
10876
10877         * bus/config-parser.c: interpret <include> and <includedir> and
10878         <servicedir> relative to config file location if the given
10879         filename is not absolute.
10880
10881         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10882
10883 2003-04-02  Havoc Pennington  <hp@redhat.com>
10884
10885         * bus/connection.c (bus_transaction_send_error_reply): set sender
10886         service for the error, and unref the reply on success
10887
10888         * bus/activation.c: convert to use BusTransaction so OOM can be
10889         handled correctly
10890         (bus_activation_service_created): set sender of the message
10891
10892 2003-04-01  Havoc Pennington  <hp@redhat.com>
10893
10894         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10895         <includedir> (at least mostly)
10896
10897         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10898         first, then the user ID
10899
10900 2003-04-01  Havoc Pennington  <hp@pobox.com>
10901
10902         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10903         function
10904
10905         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10906
10907         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10908
10909         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10910         socket 0777, and unlink any existing socket.
10911
10912         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10913         the configuration file so specifies; set up auth mechanism
10914         restrictions
10915
10916         * bus/config-parser.c (bus_config_parser_content): add support
10917         for <fork> option and fill in code for <auth>
10918
10919         * bus/system.conf.in: add <fork/> to default configuration,
10920         and limit auth mechanisms to EXTERNAL
10921
10922         * doc/config-file.txt (Elements): add <fork>
10923
10924         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10925         (_dbus_change_identity): new function
10926
10927 2003-03-31  Havoc Pennington  <hp@redhat.com>
10928
10929         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10930         (_dbus_listen_unix_socket): fix off-by-one error in null
10931         termination spotted by Nalin
10932
10933 2003-03-31  Havoc Pennington  <hp@redhat.com>
10934
10935         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10936         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10937         having a real home directory available.
10938
10939 2003-03-31  Havoc Pennington  <hp@redhat.com>
10940
10941         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10942
10943         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10944
10945         * configure.in: add support for specifying a style of init script
10946         to install
10947
10948 2003-03-31  Havoc Pennington  <hp@redhat.com>
10949
10950         Fix some annoying DBusString API and fix all affected code.
10951
10952         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10953         max_length argument
10954         (_dbus_string_get_data): change to return string instead of using
10955         an out param
10956         (_dbus_string_get_const_data): ditto
10957         (_dbus_string_get_data_len): ditto
10958         (_dbus_string_get_const_data_len): ditto
10959
10960 2003-03-31  Havoc Pennington  <hp@redhat.com>
10961
10962         * bus/main.c (main): fix up the command line arguments to be nicer
10963
10964 2003-03-31  Havoc Pennington  <hp@redhat.com>
10965
10966         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10967         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10968         final location that lands in the config file
10969
10970         * bus/config-loader-expat.c (bus_config_load): fix type of
10971         XML_Parser variable
10972
10973         * doc/TODO: remove TODO item for dbus_bus_get()
10974
10975         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10976
10977 2003-03-31  Havoc Pennington  <hp@pobox.com>
10978
10979         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10980         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10981         argument since they are always client side
10982
10983         * dbus/dbus-server.c (dbus_server_get_address): new function
10984
10985         * bus/main.c (main): take the configuration file as an argument.
10986
10987         * test/data/valid-config-files/debug-allow-all.conf: new file to
10988         use with dispatch.c tests for example
10989
10990         * bus/test-main.c (main): require test data dir
10991
10992         * bus/bus.c (bus_context_new): change this to take a
10993         configuration file name as argument
10994
10995         * doc/config-file.txt (Elements): add <servicedir>
10996
10997         * bus/system.conf, bus/session.conf: new files
10998
10999         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11000         well-known socket if none set
11001
11002         * configure.in: create system.conf and session.conf
11003
11004 2003-03-30  Havoc Pennington  <hp@pobox.com>
11005
11006         * bus/config-parser.c: hacking
11007
11008         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11009         to shut down, since it could cause weirdness with the DBusList
11010         lock
11011
11012         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11013         link-oriented stack routines
11014         (alloc_link): free the mempool if the first alloc from it fails
11015
11016         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11017
11018         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11019         from GLib
11020         (_dbus_string_skip_white): new
11021
11022         * doc/config-file.txt (Elements): add <includedir>
11023
11024 2003-03-28  Havoc Pennington  <hp@pobox.com>
11025
11026         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11027         (_dbus_string_copy_data): new functions
11028
11029 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11030
11031         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11032         * dbus/dbus-bus.h:
11033         Add dbus_bus_get.
11034
11035         * dbus/dbus-memory.c:
11036         Fix a doc comment.
11037
11038 2003-03-28  Havoc Pennington  <hp@pobox.com>
11039
11040         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11041         I think it may have just been superstition. Not sure.
11042
11043         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11044         failures that were not being handled.
11045
11046         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11047
11048         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11049         row that will fail on out-of-memory.
11050
11051         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11052         function for testing out-of-memory handling.
11053
11054         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11055         allocation functions, they do map exactly to the expat ones.
11056
11057 2003-03-27  Havoc Pennington  <hp@redhat.com>
11058
11059         * bus/config-loader-libxml.c (bus_config_load): add another error
11060         check
11061
11062 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11063
11064         * doc/TODO:
11065         Add note about automatic service activation.
11066
11067         * doc/dbus-specification.sgml:
11068         Rename the specification and clarify a few things.
11069
11070 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11071
11072         * Doxyfile.in:
11073         * dbus/dbus-address.c:
11074         * dbus/dbus-dict.c:
11075         * dbus/dbus-marshal.c:
11076         * dbus/dbus-server-debug-pipe.c:
11077         * dbus/dbus-transport-unix.c:
11078         Fix documentation warnings.
11079
11080 2003-03-26  Havoc Pennington  <hp@pobox.com>
11081
11082         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11083         after every test so it's quick and easy to see which leaked, and
11084         so we test multiple dbus_shutdown() calls
11085
11086         * configure.in: change configure.in XML stuff to also support
11087         expat
11088
11089         * config-loader-libxml.c: some hacking
11090
11091         * config-loader-expat.c: some hacking
11092
11093         * config-parser.c: some hacking, plus tests
11094
11095 2003-03-25  Havoc Pennington  <hp@redhat.com>
11096
11097         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11098
11099         * configure.in: add --with-xml option to specify XML library,
11100         right now only libxml is supported.
11101
11102         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11103         nonworking code between home and work, still just stubs
11104
11105 2003-03-24  Havoc Pennington  <hp@redhat.com>
11106
11107         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11108         file
11109
11110         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11111         NULL argument for "message" if the error is a well-known one,
11112         fill in a generic message in this case.
11113
11114         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11115         favor of DBusError
11116
11117         * bus/test.c (bus_test_flush_bus): add
11118
11119         * bus/policy.c (bus_policy_test): test code stub
11120
11121 2003-03-24  Havoc Pennington  <hp@pobox.com>
11122
11123         * bus/connection.c (bus_connections_setup_connection): set up
11124         the "can this user connect" function, but it always returns
11125         TRUE until we have a config file parser so we can have a config
11126         file that allows connections.
11127
11128 2003-03-23  Havoc Pennington  <hp@pobox.com>
11129
11130         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11131         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11132         the mutex, so we can check for proper memory management
11133         and OOM handling.
11134
11135         * dbus/dbus-dataslot.c: remove the mutex from
11136         DBusDataSlotAllocator and lock it manually when using it,
11137         to simplify fitting it into the global slots framework.
11138
11139         * dbus/dbus-threads.c (init_static_locks): rework how we're
11140         handling global locks so they are easily shut down.
11141
11142         * bus/policy.c (bus_policy_append_rule): fix
11143
11144         * bus/test-main.c (main): check for memleaks
11145
11146         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11147         test suite check for memleaks
11148
11149         * dbus/dbus-memory.c: add support in test mode for tracking
11150         number of outstanding blocks
11151
11152 2003-03-23  Havoc Pennington  <hp@pobox.com>
11153
11154         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11155         policies code
11156
11157         * dbus/dbus-hash.h: add ULONG hash keys
11158
11159         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11160         (_dbus_get_group_id): new function
11161
11162 2003-03-20  Havoc Pennington  <hp@redhat.com>
11163
11164         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11165         new function
11166         (dbus_connection_get_unix_user): new function
11167
11168 2003-03-20  Havoc Pennington  <hp@pobox.com>
11169
11170         * bus/connection.c (bus_connection_send_oom_error): assert that
11171         message has a sender
11172         (connection_execute_transaction): ditto
11173         (bus_connection_preallocate_oom_error): fix to set the sender, and
11174         set recipient to the destination service, not the bus driver
11175
11176         * bus/policy.c: hacking
11177
11178         * dbus/dbus-message.c (dbus_message_service_is): new function
11179         (dbus_message_sender_is): new
11180
11181 2003-03-19  Havoc Pennington  <hp@redhat.com>
11182
11183         * bus/policy.c: start sketching code for policy restrictions on
11184         what connections can do.
11185
11186 2003-03-18  Havoc Pennington  <hp@redhat.com>
11187
11188         * doc/TODO: some notes on high-level todo items. Little nitpick
11189         stuff is all in @todo, so no need to add it here.
11190
11191         * doc/config-file.txt: some notes on how config file might look
11192
11193 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11194
11195         * configure.in: 0.6
11196
11197         * NEWS: Update.
11198
11199 2003-03-17  Havoc Pennington  <hp@redhat.com>
11200
11201         * dbus/dbus-internals.h: add gcc attributes so that
11202         our printf-style functions warn on bad arguments to
11203         format
11204
11205         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11206         format bug
11207
11208         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11209         printf format bug
11210
11211 2003-03-17  Havoc Pennington  <hp@redhat.com>
11212
11213         * bus/test-main.c (main): make it print something as it runs
11214         so make check doesn't look stuck
11215
11216         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11217         from CVS, now obsolete
11218
11219 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11220
11221         * bus/dispatch.c: (bus_dispatch):
11222         Refetch the service name since it may have been reallocated
11223         when dbus_message_set_sender was called.
11224
11225         * dbus/dbus-sysdeps.c: (_dbus_accept):
11226         Add address and address length variables and use them to stop
11227         valgrind from complaining.
11228
11229 2003-03-17  Havoc Pennington  <hp@pobox.com>
11230
11231         All tests pass, no memleaks, no valgrind complaints.
11232
11233         * bus/test.c: refcount handler_slot
11234
11235         * bus/connection.c (bus_connections_new): refcount
11236         connection_data_slot
11237
11238         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11239         bytes so that auth scripts pass.
11240
11241         * bus/dispatch.c: init message_handler_slot so it gets allocated
11242         properly
11243
11244         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11245
11246         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11247         dealloc server_pipe_hash when no longer used for benefit of
11248         leak checking
11249
11250         * dbus/dbus-auth.c (process_command): memleak fix
11251
11252         * bus/dispatch.c (check_hello_message): memleak fix
11253
11254 2003-03-16  Havoc Pennington  <hp@pobox.com>
11255
11256         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11257
11258 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11259
11260         * bus/activation.c (bus_activation_activate_service): Append
11261         the pending activation entry to the list of pending activations.
11262
11263 2003-03-16  Havoc Pennington  <hp@pobox.com>
11264
11265         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11266         connections
11267
11268         * dbus/dbus-address.c (create_entry): fix OOM handling when
11269         failing to alloc entry->method
11270
11271 2003-03-16  Havoc Pennington  <hp@pobox.com>
11272
11273         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11274         the watch
11275
11276         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11277         add some missing dbus_set_result
11278
11279         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11280         alloc the DBusMessageHandler
11281
11282         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11283         the transport here, since we call this from the finalizer; it
11284         resulted in a double-finalize.
11285
11286         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11287         where we tried to use transport->connection that was NULL,
11288         happened when transport was disconnected early on due to OOM
11289
11290         * bus/*.c: adapt to handle OOM for watches/timeouts
11291
11292         * dbus/dbus-transport-unix.c: port to handle OOM during
11293         watch handling
11294
11295         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11296         reference to unused bytes instead of a copy
11297
11298         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11299         out of memory
11300
11301         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11302         FALSE on OOM
11303
11304         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11305         of memory
11306
11307 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11308
11309         * doc/dbus-specification.sgml:
11310         Document reply message for ActivateService.
11311
11312 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11313
11314         * bus/activation.c: (bus_pending_activation_entry_free),
11315         (bus_pending_activation_free), (bus_activation_new),
11316         (bus_activation_unref), (bus_activation_service_created),
11317         (bus_activation_activate_service):
11318         * bus/activation.h:
11319         * bus/bus.c: (bus_context_new):
11320         * bus/desktop-file.c: (new_section):
11321         * bus/driver.c: (bus_driver_send_service_deleted),
11322         (bus_driver_handle_activate_service):
11323         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11324         * bus/services.h:
11325         * dbus/dbus-connection.c:
11326         (dbus_connection_send_with_reply_and_block):
11327         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11328         * dbus/dbus-protocol.h:
11329         Make activation work better. Now pending activations will be queued
11330         and the daemon won't try to activate services that are already registered.
11331
11332 2003-03-16  Havoc Pennington  <hp@pobox.com>
11333
11334         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11335         connection data
11336
11337         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11338         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11339
11340 2003-03-16  Havoc Pennington  <hp@pobox.com>
11341
11342         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11343         this. always run the test suite before commit...
11344
11345         * bus/*: adapt to DBusConnection API changes
11346
11347         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11348         requires renaming stuff to avoid dbus_connection_dispatch name
11349         conflict.
11350
11351         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11352         function
11353
11354         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11355         separate from _dbus_message_loader_return_buffer()
11356
11357         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11358         this, because it's now always broken to use; the number of
11359         messages in queue vs. the number still buffered by the message
11360         loader is undefined/meaningless. Should use
11361         dbus_connection_get_dispatch_state().
11362         (dbus_connection_dispatch): rename from
11363         dbus_connection_dispatch_message
11364
11365 2003-03-16  Havoc Pennington  <hp@pobox.com>
11366
11367         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11368         implementation
11369
11370 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11371
11372         * dbus/dbus-connection.c:
11373         (dbus_connection_send_with_reply_and_block):
11374         Decrease connection->n_incoming when removing an entry
11375         from the list.
11376         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11377         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11378         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11379         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11380         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11381         (dbus_dict_get_byte_array):
11382         Handle NULL arrays and strings. Also add support for byte arrays.
11383
11384         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11385         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11386         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11387         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11388         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11389         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11390         * dbus/dbus-marshal.h:
11391         Add support for marshalling and demarshalling empty arrays and strings.
11392
11393         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11394         (dbus_message_append_string_array),
11395         (dbus_message_iter_get_boolean),
11396         (dbus_message_iter_get_boolean_array),
11397         (dbus_message_iter_get_int32_array),
11398         (dbus_message_iter_get_uint32_array),
11399         (dbus_message_iter_get_double_array),
11400         (dbus_message_iter_get_byte_array),
11401         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11402         (check_message_handling):
11403         Add support for getting empty arrays and dicts.
11404
11405         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11406         Don't do any validation at all for now, that's better than just checking
11407         for ASCII.
11408
11409         * test/data/valid-messages/emptiness.message:
11410         New test message with lots of empty arrays.
11411
11412 2003-03-16  Havoc Pennington  <hp@pobox.com>
11413
11414         * dbus/dbus-connection.c
11415         (_dbus_connection_queue_received_message_link): new function that
11416         can't fail due to OOM
11417
11418         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11419         new function pops a message together with a list link
11420         containing it.
11421
11422         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11423         message queuing functions to avoid needing to alloc memory
11424
11425 2003-03-16  Havoc Pennington  <hp@pobox.com>
11426
11427         Oops - test code was only testing failure of around 30 of the
11428         mallocs in the test path, but it turns out there are 500+
11429         mallocs. I believe this was due to misguided linking setup such
11430         that there was one copy of dbus_malloc etc. in the daemon and one
11431         in the shared lib, and only daemon mallocs were tested. In any
11432         case, the test case now tests all 500+ mallocs, and doesn't pass
11433         yet, though there are lots of fixes in this patch.
11434
11435         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11436         this so that it doesn't need to allocate memory, since it
11437         has no way of indicating failure due to OOM (and would be
11438         annoying if it did).
11439
11440         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11441
11442         * bus/Makefile.am: rearrange to create two self-contained
11443         libraries, to avoid having libraries with overlapping symbols.
11444         that was resulting in weirdness, e.g. I'm pretty sure there
11445         were two copies of global static variables.
11446
11447         * dbus/dbus-internals.c: move the malloc debug stuff to
11448         dbus-memory.c
11449
11450         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11451         empty.
11452
11453         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11454
11455         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11456         on failure.
11457
11458         * bus/dispatch.c (bus_dispatch_add_connection): free
11459         message_handler_slot when no longer using it, so
11460         memory leak checkers are happy for the test suite.
11461
11462         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11463
11464         * bus/bus.c (new_connection_callback): disconnect in here if
11465         bus_connections_setup_connection fails.
11466
11467         * bus/connection.c (bus_connections_unref): fix to free the
11468         connections
11469         (bus_connections_setup_connection): if this fails, don't
11470         disconnect the connection, just be sure there are no side
11471         effects.
11472
11473         * dbus/dbus-string.c (undo_alignment): unbreak this
11474
11475         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11476         leaking
11477         (_dbus_auth_new): fix the order in which we free strings
11478         on OOM failure
11479
11480         * bus/connection.c (bus_connection_disconnected): fix to
11481         not send ServiceDeleted multiple times in case of memory
11482         allocation failure
11483
11484         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11485         get the base service name
11486         (dbus_bus_register_client): don't return base service name,
11487         instead store it on the DBusConnection and have an accessor
11488         function for it.
11489         (dbus_bus_register_client): rename dbus_bus_register()
11490
11491         * bus/dispatch.c (check_hello_message): verify that other
11492         connections on the bus also got the correct results, not
11493         just the one sending hello
11494
11495 2003-03-15  Havoc Pennington  <hp@pobox.com>
11496
11497         Make it pass the Hello handling test including all OOM codepaths.
11498         Now to do other messages...
11499
11500         * bus/services.c (bus_service_remove_owner): fix crash when
11501         removing owner from an empty list of owners
11502         (bus_registry_ensure): don't leave service in the list of
11503         a connection's owned services if we fail to put the service
11504         in the hash table.
11505
11506         * bus/connection.c (bus_connection_preallocate_oom_error): set
11507         error flag on the OOM error.
11508
11509         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11510         handle _dbus_transport_set_connection failure
11511
11512         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11513         to create watches up front and simply enable/disable them as
11514         needed.
11515         (unix_connection_set): this can now fail on OOM
11516
11517         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11518         of enabling/disabling a watch or timeout.
11519
11520         * bus/loop.c (bus_loop_iterate): don't touch disabled
11521         watches/timeouts
11522
11523         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11524
11525 2003-03-15  Havoc Pennington  <hp@pobox.com>
11526
11527         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11528         write useful test code, after all that futzing around ;-)
11529
11530         Test does not yet pass because we can't handle OOM in
11531         _dbus_transport_messages_pending (basically,
11532         dbus_connection_preallocate_send() does not prealloc the write
11533         watch). To fix this, I think we need to add new stuff to
11534         set_watch_functions, namely a SetEnabled function so we can alloc
11535         the watch earlier, then enable it later.
11536
11537         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11538         dbus-memory.c to the convenience lib
11539
11540         * bus/test.c: rename some static functions to keep them clearly
11541         distinct from stuff in connection.c. Handle client disconnection.
11542
11543 2003-03-14  Havoc Pennington  <hp@pobox.com>
11544
11545         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11546         transport, tests more of the real codepath. Set up clients
11547         with bus_setup_debug_client.
11548
11549         * bus/test.c (bus_setup_debug_client): function to set up debug
11550         "clients" on the main loop
11551
11552         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11553         support
11554
11555         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11556         server type
11557
11558         * dbus/dbus-server-debug.c: support a debug server based on pipes
11559
11560         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11561         (_dbus_close): new function
11562
11563         * configure.in: check for socketpair
11564
11565 2003-03-14  Havoc Pennington  <hp@redhat.com>
11566
11567         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11568         cheesy hack
11569
11570         * dbus/dbus-transport-debug.c: rework this a good bit to be
11571         less complicated. hopefully still works.
11572
11573         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11574         manually
11575
11576         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11577         after running it
11578
11579         * dbus/dbus-message.c (dbus_message_copy): rename from
11580         dbus_message_new_from_message, fix it up to copy
11581         all the message fields, add test case
11582
11583         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11584         not quite passing yet
11585
11586 2003-03-14  Havoc Pennington  <hp@pobox.com>
11587
11588         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11589         until no work remains" in test code. (the large diff here
11590         is just code movement, no actual changes)
11591
11592         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11593         1, no point waiting around for test code.
11594         (_dbus_server_debug_accept_transport): unref the timeout
11595         after adding it (right?)
11596
11597         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11598
11599 2003-03-13  Havoc Pennington  <hp@redhat.com>
11600
11601         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11602         out of memory
11603
11604         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11605         of memory
11606
11607         * dbus/dbus-connection.h: Make AddWatchFunction and
11608         AddTimeoutFunction return a bool so they can fail on out-of-memory
11609
11610         * bus/bus.c (bus_context_new): set up timeout handlers
11611
11612         * bus/connection.c (bus_connections_setup_connection): set up
11613         timeout handlers
11614
11615         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11616         can fail
11617
11618         * bus/bus.c (bus_context_new): adapt to changes
11619
11620         * bus/connection.c: adapt to changes
11621
11622         * test/watch.c: adapt to DBusWatch changes
11623
11624         * bus/dispatch.c (bus_dispatch_test): started adding this but
11625         didn't finish
11626
11627 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11628
11629         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11630
11631 2003-03-13  Havoc Pennington  <hp@pobox.com>
11632
11633         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11634         set up a test framework as for the library
11635
11636 2003-03-12  Havoc Pennington  <hp@pobox.com>
11637
11638         Throughout: purge global variables, introduce BusActivation,
11639         BusConnections, BusRegistry, etc. objects instead.
11640
11641         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11642         message bus object
11643
11644         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11645         going to redo this a bit differently I think
11646
11647 2003-03-12  Havoc Pennington  <hp@redhat.com>
11648
11649         Mega-patch that gets the message bus daemon initially handling
11650         out-of-memory. Work still needed. Also lots of random
11651         moving stuff to DBusError instead of ResultCode.
11652
11653         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11654
11655         * dbus/dbus-connection.c
11656         (dbus_connection_send_with_reply_and_block): use DBusError
11657
11658         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11659         DBusResultCode
11660
11661         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11662         code here, as the only failure possible is OOM.
11663
11664         * bus/connection.c (bus_connection_disconnect):
11665         rename bus_connection_disconnected as it's a notification only
11666
11667         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11668         "name" on get_args failure, should be done by get_args;
11669         don't disconnect client for bad args, just return an error.
11670         (bus_driver_handle_service_exists): ditto
11671
11672         * bus/services.c (bus_services_list): NULL-terminate returned array
11673
11674         * bus/driver.c (bus_driver_send_service_lost)
11675         (bus_driver_send_service_acquired): send messages from driver to a
11676         specific client to the client's unique name, not to the broadcast
11677         service.
11678
11679         * dbus/dbus-message.c (decode_header_data): reject messages that
11680         contain no name field
11681         (_dbus_message_get_client_serial): rename to
11682         dbus_message_get_serial and make public
11683         (_dbus_message_set_serial): rename from set_client_serial
11684         (_dbus_message_set_reply_serial): make public
11685         (_dbus_message_get_reply_serial): make public
11686
11687         * bus/connection.c (bus_connection_foreach): allow stopping
11688         iteration by returning FALSE from foreach function.
11689
11690         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11691         (dbus_connection_free_preallocated_send)
11692         (dbus_connection_preallocate_send): new API for sending a message
11693         without possibility of malloc failure.
11694         (dbus_connection_send_message): rename to just
11695         dbus_connection_send (and same for whole function family)
11696
11697         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11698
11699         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11700
11701         * bus/activation.c: handle/return errors
11702
11703         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11704
11705         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11706         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11707         (_dbus_result_from_errno): move to this file
11708
11709 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11710
11711         * dbus/dbus-marshal.c:
11712         (_dbus_marshal_set_string):
11713         Take a length argument so we can marshal the correct string
11714         length.
11715
11716         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11717         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11718         (_dbus_marshal_test):
11719         * dbus/dbus-marshal.h:
11720         Add support for marshalling and demarshalling dicts.
11721
11722         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11723         Add support for TYPE DICT.
11724
11725         * dbus/dbus-message.c: (set_string_field):
11726         Adjust header padding.
11727
11728         (dbus_message_append_args_valist), (dbus_message_append_dict),
11729         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11730         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11731         (check_message_handling), (check_have_valid_message):
11732         * dbus/dbus-message.h:
11733         Add functions for setting and getting dicts.
11734
11735         * dbus/dbus-protocol.h:
11736         Add DBUS_TYPE_DICT.
11737
11738         * dbus/dbus.h:
11739         Add dbus-dict.h
11740
11741         * doc/dbus-specification.sgml:
11742         Add information about how dicts are marshalled.
11743
11744         * test/data/invalid-messages/dict-with-nil-value.message:
11745         * test/data/invalid-messages/too-short-dict.message:
11746         * test/data/valid-messages/dict-simple.message:
11747         * test/data/valid-messages/dict.message:
11748         Add sample messages containing dicts.
11749
11750 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11751
11752         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11753
11754 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11755
11756         * dbus/Makefile.am:
11757         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11758         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11759         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11760         (dbus_dict_set_double), (dbus_dict_set_string),
11761         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11762         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11763         (dbus_dict_set_string_array), (_dbus_dict_test):
11764         * dbus/dbus-dict.h:
11765         Fix according to comments from Havoc.
11766
11767 2003-03-06  Michael Meeks  <michael@server.home>
11768
11769         * configure.in: if we don't have kde-config, disable have_qt.
11770
11771 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11772
11773         * dbus/Makefile.am:
11774         Add dbus-dict.[ch]
11775
11776         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11777         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11778         (dbus_dict_remove), (dbus_dict_get_value_type),
11779         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11780         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11781         (dbus_dict_put_double), (dbus_dict_put_string),
11782         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11783         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11784         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11785         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11786         (dbus_dict_get_double), (dbus_dict_get_string),
11787         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11788         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11789         (dbus_dict_get_string_array), (_dbus_dict_test):
11790         * dbus/dbus-dict.h:
11791         Add DBusDict implementation
11792
11793         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11794         * dbus/dbus-test.h:
11795         Add _dbus_dict_test
11796
11797 2003-03-04  Havoc Pennington  <hp@pobox.com>
11798
11799         * test/data/auth/*: adapt to changes
11800
11801         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11802         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11803         userid
11804
11805         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11806         more stuff from being in a context name, to make the protocol
11807         simpler to deal with
11808
11809         * dbus/dbus-errors.c (dbus_error_has_name): new function
11810         (dbus_error_is_set): new function
11811
11812         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11813         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11814
11815         * dbus/dbus-connection.c (dbus_connection_flush): also read
11816         messages during a flush operation
11817
11818         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11819
11820 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11821
11822         * configure.in: Check for gethostbyname on Solaris.
11823
11824         * dbus/dbus-transport.c: (_dbus_transport_open):
11825         Remove duplicate "tcp" entry.
11826
11827         * doc/dbus-specification.sgml:
11828         Clarify some things.
11829
11830 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11831
11832         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11833         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11834         (_dbus_keyring_test):
11835         * dbus/dbus-md5.c: (_dbus_md5_compute):
11836         * dbus/dbus-sha.c: (_dbus_sha_compute):
11837         Plug memory leaks.
11838
11839 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11840
11841         * README: Add some things.
11842
11843 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11844
11845         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11846         after case DBUS_TYPE_BOOELAN.
11847
11848 2003-03-02  Havoc Pennington  <hp@pobox.com>
11849
11850         * test/break-loader.c (randomly_set_extreme_ints): add test that
11851         sets really huge and small integers
11852
11853         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11854         that length of boolean array fits in the string, and that
11855         string has room for boolean value in single-bool case.
11856
11857         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11858         optional value to "ALIGN" command which is what to fill the
11859         alignment with.
11860
11861         * test/data/valid-messages/no-padding.message: add regression
11862         test for the message padding problem
11863
11864 2003-03-02  Havoc Pennington  <hp@pobox.com>
11865
11866         * dbus/dbus-message.c (decode_header_data): fix to always init
11867         message_padding, from Benjamin Dauvergne
11868
11869 2003-03-02  Havoc Pennington  <hp@pobox.com>
11870
11871         * configure.in: 0.5
11872
11873         * NEWS: Update.
11874
11875 2003-03-01  Joe Shaw  <joe@assbarn.com>
11876
11877         * configure.in: Check for "struct cmsgcred" and try to access its
11878         members for BSD-like unices.
11879
11880         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11881         _dbus_read_credentials_unix_socket().
11882         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11883         read() for reading the credential byte off the unix socket.  Use
11884         struct cmsgcred on systems that support it.
11885
11886 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11887
11888         * glib/Makefile.am:
11889         * configure.in:
11890         Make gthreads-2.0 dependency optional. Don't build thread test if
11891         its not found.
11892
11893 2003-02-27  Havoc Pennington  <hp@pobox.com>
11894
11895         * dbus/dbus-connection.c
11896         (dbus_connection_send_message_with_reply_and_block): fix doh!
11897         doh! doh! bug that resulted in never removing a reply from the
11898         queue, no wonder we called get_reply_serial so much ;-)
11899
11900         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11901         and client serial instead of demarshaling them every time
11902
11903 2003-02-27  Havoc Pennington  <hp@pobox.com>
11904
11905         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11906         more inlined, using dbus-string-private.h, speeds things up
11907         substantially
11908
11909         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11910         when freeing the string
11911         (_dbus_string_steal_data): fix for align offset
11912         (undo_alignment): new function
11913
11914 2003-02-26  Havoc Pennington  <hp@redhat.com>
11915
11916         All kinds of audit fixes from Owen, plus initial attempt to
11917         handle unaligned memory returned from malloc.
11918
11919         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11920         leave room for align_offset and nul byte
11921         (fixup_alignment): function to track an align_offset and
11922         ensure real->str is aligned
11923         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11924         to allow a nul byte plus align offset
11925         (_dbus_string_lock): fix overflow issue
11926         (_dbus_string_init_const_len): add assertions on sanity of len,
11927         assign allocated to be ALLOCATION_PADDING larger than len
11928         (set_length): fixup the overflow handling
11929         (_dbus_string_get_data_len): fix overflow in assertion
11930         (open_gap): detect overflow in size of gap to be opened
11931         (_dbus_string_lengthen): add overflow check
11932         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11933         (_dbus_string_append): add overflow check
11934         (_dbus_string_append_unichar): overflow
11935         (_dbus_string_delete): fix overflow in assertion
11936         (_dbus_string_copy_len): overflow in assertion
11937         (_dbus_string_replace_len): overflows in assertions
11938         (_dbus_string_find): change to implement in terms of
11939         _dbus_string_find_to
11940         (_dbus_string_find_to): assorted fixage
11941         (_dbus_string_equal_c_str): assert c_str != NULL,
11942         fix logic so the function works
11943         (_dbus_string_ends_with_c_str): fix overflow thingy
11944         (_dbus_string_base64_encode): overflow fix
11945         (_dbus_string_validate_ascii): overflow
11946         (_dbus_string_validate_nul): overflow
11947
11948 2003-02-26  Havoc Pennington  <hp@redhat.com>
11949
11950         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11951
11952 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11953
11954         * configure.in:
11955         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11956
11957         * dbus/dbus-connection.c:
11958         * dbus/dbus-connection.h:
11959         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11960         Add dbus_connection_set_wakeup_main_function and use it when queueing
11961         incoming and outgoing messages.
11962
11963
11964         * dbus/dbus-dataslot.c:
11965         Threadsafe usage of DBusDataSlotAllocator
11966
11967         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11968         dbus_new can fail.
11969
11970         * dbus/dbus-server-unix.c:
11971         Add todo comment
11972
11973         * glib/dbus-gmain.c:
11974         Implement the new wakeup functions for glib.
11975
11976         * glib/Makefile.am:
11977         * glib/test-thread-client.c:
11978         * glib/test-thread-server.c:
11979         * glib/test-thread.h:
11980         Initial cut at some thread test code. Not really done yet.
11981
11982 2003-02-26  Havoc Pennington  <hp@pobox.com>
11983
11984         * dbus/dbus-connection.c
11985         (dbus_connection_send_message_with_reply_and_block): fix crash
11986         where we ref'd the outgoing message instead of the returned reply
11987
11988         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11989         at the end of this function, so if we didn't need to read for
11990         authentication, we reinstall it for receiving messages
11991
11992         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11993         a NULL sender for peer-to-peer case
11994
11995         * dbus/dbus-transport-unix.c (check_read_watch): handle
11996         !authenticated case correctly
11997
11998         * glib/dbus-gmain.c: add support for DBusServer
11999
12000         * dbus/dbus-server.c: add data slot support
12001
12002         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12003         return values and handle errors
12004
12005         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12006         DBusConnection
12007
12008         * Doxyfile.in (INPUT): add glib subdir
12009
12010         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12011         setup_with_g_main instead of hookup_with_g_main; write docs
12012
12013 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12016         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12017         * dbus/dbus-message.c: (dbus_message_append_boolean),
12018         (dbus_message_append_boolean_array),
12019         (dbus_message_get_args_valist), (_dbus_message_test):
12020         * dbus/dbus-message.h:
12021         * doc/dbus-specification.sgml:
12022         Various fixes as pointed out by Havoc.
12023
12024         * test/data/invalid-messages/bad-boolean-array.message:
12025         * test/data/invalid-messages/bad-boolean.message:
12026         Add invalid boolean value test cases.
12027
12028 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12029
12030         * dbus/dbus-internals.c: (_dbus_type_to_string):
12031         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12032         (_dbus_marshal_validate_arg):
12033         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12034         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12035         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12036         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12037         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12038         (dbus_message_iter_get_double),
12039         (dbus_message_iter_get_boolean_array), (message_iter_test):
12040         * dbus/dbus-message.h:
12041         * dbus/dbus-protocol.h:
12042         * doc/dbus-specification.sgml:
12043         * test/data/valid-messages/lots-of-arguments.message:
12044         Add support for boolean and boolean array types.
12045
12046 2003-02-23  Havoc Pennington  <hp@pobox.com>
12047
12048         * dbus/dbus-keyring.c: finish most of this implementation and
12049         simple unit test
12050
12051         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12052         these barf if the error isn't cleared to NULL
12053
12054         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12055         (_dbus_create_directory): new function
12056
12057         * dbus/dbus-errors.c (dbus_set_error): fix warning
12058
12059         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12060         (_dbus_string_hex_decode): new function
12061         (test_hex_roundtrip): test code
12062
12063         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12064
12065         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12066
12067         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12068         the save-to-temp/rename trick to atomically write the new file
12069         (_dbus_string_parse_uint): new function
12070
12071 2003-02-22  Havoc Pennington  <hp@pobox.com>
12072
12073         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12074
12075 2003-02-22  Havoc Pennington  <hp@pobox.com>
12076
12077         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12078         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12079
12080         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12081
12082         * dbus/test/data/sha-1: add US government test suite for SHA-1
12083
12084 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12085
12086         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12087         Make string arrays NULL-terminated.
12088
12089         * dbus/dbus-memory.c: (dbus_free_string_array):
12090         * dbus/dbus-memory.h:
12091         New function for freeing NULL-terminated string arrays.
12092
12093         * dbus/dbus-message-builder.c: (append_quoted_string),
12094         (_dbus_message_data_load):
12095         Add support for array types.
12096
12097         * dbus/dbus-message.c: (check_message_handling):
12098         Add more types as test cases.
12099
12100         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12101         (_dbus_string_parse_double):
12102         Add the start offset to the end offset.
12103
12104         * test/data/valid-messages/lots-of-arguments.message:
12105         New test message with lots of arguments.
12106
12107 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12108
12109         * dbus/dbus-message.c: (dbus_message_append_nil),
12110         (dbus_message_append_int32), (dbus_message_append_uint32),
12111         (dbus_message_append_double), (dbus_message_append_string),
12112         (dbus_message_append_int32_array),
12113         (dbus_message_append_uint32_array),
12114         (dbus_message_append_double_array),
12115         (dbus_message_append_byte_array),
12116         (dbus_message_append_string_array):
12117         Fix all out-of-memory handling in these functions.
12118
12119 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12120
12121         * dbus/dbus-message.c: (dbus_message_append_nil):
12122         Fix a silly.
12123
12124 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12127         (dbus_message_append_nil), (dbus_message_append_int32_array),
12128         (dbus_message_append_uint32_array),
12129         (dbus_message_append_double_array),
12130         (dbus_message_append_byte_array),
12131         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12132         (dbus_message_iter_get_int32_array),
12133         (dbus_message_iter_get_uint32_array),
12134         (dbus_message_iter_get_double_array),
12135         (dbus_message_iter_get_byte_array),
12136         (dbus_message_iter_get_string_array):
12137
12138         * dbus/dbus-message.h:
12139         Add functions for appending and getting arrays.
12140
12141 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12142
12143         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12144         element size at least 8 bytes, fixes mempool tests on
12145         64-bit machines.
12146
12147 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12148
12149         * dbus/dbus-transport-unix.c (unix_do_iteration):
12150         Unlock the connection mutex during a blocking select call.
12151         Add todo about how we need a way to wake up the select.
12152
12153         * dbus/dbus-connection-internal.h:
12154         * dbus/dbus-connection.c:
12155         Add _dbus_connection_lock and _dbus_connection_unlock.
12156
12157 2003-02-19  Havoc Pennington  <hp@pobox.com>
12158
12159         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12160         Doxyfile.in, not Doxyfile
12161
12162         * dbus/dbus-keyring.c: do some hacking on this
12163
12164         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12165
12166         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12167         dbus_error_init
12168         (dbus_set_error): remove dbus_error_init, check for message ==
12169         NULL *before* we sprintf into it, and add @todo about including
12170         system headers in this file
12171
12172         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12173
12174         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12175
12176         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12177         get various bits of user information based on either username
12178         or user ID
12179         (_dbus_homedir_from_username): new function
12180
12181 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12182
12183         * configure.in:
12184         Add check for nonposix getpwnam_r
12185
12186         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12187         Align the pool element size to a sizeof (void *) boundary.
12188
12189         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12190         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12191         General Solaris fixes.
12192
12193         * test/data/valid-messages/simplest-manual.message:
12194         Explicitly state that we want little-endian packing.
12195
12196 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12197
12198         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12199
12200         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12201         Added to create a transport connecting using a tcp/ip socket.
12202
12203         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12204         to a tcp socket at given host and port.
12205         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12206         hostname and port.
12207
12208         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12209
12210         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12211         Added to create a server listening on a TCP/IP socket.
12212
12213 2003-02-19  Havoc Pennington  <hp@pobox.com>
12214
12215         Throughout: mop up all the Doxygen warnings and undocumented
12216         stuff.
12217
12218         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12219         to search any paths.
12220
12221         * dbus/dbus-threads.c: move global mutex initializers to
12222         dbus-internals.h, multiple prototypes was confusing doxygen
12223         besides being kind of ugly
12224
12225         * Doxyfile (PREDEFINED): have Doxygen define
12226         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12227         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12228         (do not abuse the feature! it's for stuff like the autogenerated
12229         macros in dbus-md5.c, not just for things you don't feel like
12230         documenting...)
12231
12232 2003-02-18  Havoc Pennington  <hp@pobox.com>
12233
12234         * dbus/dbus-string.c (_dbus_string_zero): new function
12235
12236         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12237         wrap it in some dbus-friendly API
12238
12239         * dbus/dbus-types.h: add 16-bit types
12240
12241 2003-02-18  Joe Shaw  <joe@assbarn.com>
12242
12243         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12244         credentials from our currently running process.
12245         (get_word): Fix a buglet where we were copying the entire length
12246         instead of relative to our position.
12247
12248         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12249         keys on the stack... it's 640k of data.
12250
12251         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12252         read the credentials byte off the socket, even if we don't have
12253         SO_PEERCRED.
12254         (_dbus_poll): Implement poll() using select() for systems which
12255         don't have it.
12256
12257         * glib/test-dbus-glib.c (main): Print out an error if no
12258         parameters are given.
12259
12260         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12261         can fallback to a secondary auth mechanism if the first fails.
12262
12263 2003-02-18  Havoc Pennington  <hp@pobox.com>
12264
12265         * AUTHORS: add Alex
12266
12267 2003-02-17  Havoc Pennington  <hp@pobox.com>
12268
12269         * doc/dbus-specification.sgml: lots of cosmetic
12270         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12271         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12272         s/server/bus/ (except in authentication section). Add a section
12273         "Message Bus Message Routing"
12274
12275 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12276
12277         Release 0.4
12278
12279         * NEWS: Update
12280
12281 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12282
12283         * doc/dbus-specification.sgml:
12284         Specification updates.
12285
12286 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12287
12288         * bus/activation.c: (bus_activation_init), (child_setup),
12289         (bus_activation_activate_service):
12290         * bus/activation.h:
12291         * bus/main.c: (main):
12292         Set DBUS_ADDRESS environment variable.
12293
12294         * dbus/dbus-errors.c: (dbus_set_error):
12295         Don't use va_copy since that's a C99 feature.
12296
12297         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12298         (_dbus_spawn_async):
12299         * dbus/dbus-sysdeps.h:
12300         Add child_setup_func to _dbus_spawn_async.
12301
12302         * doc/dbus-specification.sgml:
12303         Update specification.
12304
12305         * test/spawn-test.c: (setup_func), (main):
12306         Fix test.
12307
12308 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12309
12310         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12311         Added todo.
12312
12313 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12314
12315         * doc/.cvsignore:
12316         * doc/Makefile.am:
12317         * doc/dbus-test-plan.sgml:
12318         Add test plan document.
12319
12320         * test/Makefile.am:
12321         Fix distcheck.
12322
12323 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12324
12325         * dbus/dbus-message.c: (decode_header_data),
12326         (_dbus_message_loader_return_buffer):
12327         Set the header padding amount when loading a message.
12328
12329 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12330
12331         * bus/dispatch.c: (send_one_message):
12332         Only send broadcast messages to registered connections.
12333
12334         * dbus/dbus-message.c: (dbus_message_name_is):
12335         * dbus/dbus-message.h:
12336         New convenience function.
12337
12338         * dbus/dbus-transport-debug.c: (do_reading):
12339         Only dispatch one message per run.
12340
12341         * test/Makefile.am:
12342         * test/bus-test.c: (new_connection_callback), (die),
12343         (test_hello_client1_handler), (test_hello_client2_handler),
12344         (test_hello_replies), (main):
12345
12346         * test/bus-test-loop.[ch]:
12347         Add these.
12348
12349 2003-02-16  Havoc Pennington  <hp@pobox.com>
12350
12351         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12352         backward conditional
12353
12354 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12355
12356         * dbus/dbus-connection.c:
12357         Implement sent_message_with_reply. (with_reply_and block is still
12358         busted).
12359         Made dispatch_message not lose message if OOM.
12360
12361         * dbus/dbus-errors.h:
12362         Add NoReply error (for reply timeouts).
12363
12364 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12365
12366         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12367         Actually free keys and values when destroying hashtable.
12368
12369 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12370
12371         * dbus/dbus-auth.c: (client_try_next_mechanism):
12372         Plug a leak.
12373
12374         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12375         Return TRUE if there's no thread implementation around.
12376
12377         * glib/dbus-gmain.c: (free_source),
12378         (dbus_connection_hookup_with_g_main):
12379         Make sure to remove the GSource when the connection is finalized.
12380
12381 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12382
12383         * bus/dispatch.c: (bus_dispatch_message_handler):
12384         * dbus/dbus-errors.h:
12385         Return an error if someone tries to send a message to a service
12386         that doesn't exist.
12387
12388 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12389
12390         * bus/activation.c: (load_directory), (bus_activation_init),
12391         (bus_activation_activate_service):
12392         * bus/activation.h:
12393         * bus/driver.c:
12394         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12395         More work on the activation handling.
12396
12397         * dbus/dbus-errors.h:
12398         Add some error messages
12399
12400         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12401         * dbus/dbus-message.h:
12402         New function that creates an error message.
12403
12404         * dbus/dbus-protocol.h:
12405         Add ACTIVATE_SERVER message.
12406
12407         * dbus/dbus-server-unix.c: (unix_handle_watch),
12408         (_dbus_server_new_for_domain_socket):
12409         Call _dbus_fd_set_close_on_exec.
12410
12411         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12412         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12413         (_dbus_fd_set_close_on_exec):
12414         * dbus/dbus-sysdeps.h:
12415         Add _dbus_fd_set_close_on exec function. Also add function that checks
12416         that all open fds are set to close-on-exec and warns otherwise.
12417
12418         * dbus/dbus-transport-unix.c:
12419         (_dbus_transport_new_for_domain_socket):
12420         Call _dbus_fd_set_close_on_exec.
12421
12422 2003-02-16  Havoc Pennington  <hp@pobox.com>
12423
12424         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12425         allow people to avoid setting SIGPIPE to SIG_IGN
12426         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12427         we've been asked not to
12428
12429 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12430
12431         * dbus/dbus-list.c: (_dbus_list_append_link),
12432         (_dbus_list_prepend_link):
12433         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12434         (dbus_realloc):
12435         Warning fixes.
12436
12437 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12438
12439         * bus/Makefile.am:
12440         * bus/activation.c: (bus_activation_entry_free),
12441         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12442         * bus/activation.h:
12443         * bus/main.c: (main):
12444         Add simple activation support, doesn't work yet though.
12445
12446 2003-02-15   Zack Rusin  <zack@kde.org>
12447
12448         * qt/dbus-qthread.cpp:  small casting fix
12449
12450 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12451
12452         * dbus/dbus-errors.c: (dbus_set_error):
12453         * dbus/dbus-errors.h:
12454         Add a few errors and make dbus_set_error void.
12455
12456         * dbus/dbus-sysdeps.c:
12457         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12458         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12459         * dbus/dbus-sysdeps.h:
12460         Add _dbus_spawn_async.
12461
12462         * test/spawn-test.c: (main):
12463         Test for _dbus_spawn_async.
12464
12465 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * dbus/dbus-internals.h:
12468         Fix build without tests.
12469
12470         * dbus/dbus-list.c: (alloc_link):
12471         Fix a segfault when a malloc fails.
12472
12473         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12474         (dbus_malloc0), (dbus_realloc):
12475         Add support for malloc debugging.
12476
12477 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12478
12479         * dbus/dbus-threads.c:
12480         * dbus/dbus-threads.h:
12481         Add condvars. Remove static mutext from API.
12482         Implement static mutexes by initializing them from threads_init.
12483
12484         * glib/dbus-gthread.c:
12485         * qt/dbus-qthread.cpp:
12486         Update with the thread api changes.
12487
12488
12489         * dbus/dbus-list.c:
12490         * dbus/dbus-list.h:
12491         Turn StaticMutex into normal mutex + init function.
12492         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12493         _dbus_list_append_link, _dbus_list_prepend_link
12494
12495
12496         * dbus/dbus-sysdeps.c:
12497         * dbus/dbus-sysdeps.h:
12498         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12499         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12500
12501         * dbus/dbus-protocol.h:
12502         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12503
12504         * dbus/dbus-message.c:
12505         Make ref/unref atomic.
12506         Fix some docs.
12507
12508         * dbus/dbus-connection-internal.h:
12509         * dbus/dbus-connection.c:
12510         * dbus/dbus-connection.h:
12511         Make threadsafe.
12512         Change _peek to _borrow,_return & _steal_borrowed.
12513         Change disconnect callback to event.
12514         Make dbus_connection_dispatch_messages reentrant.
12515
12516         * dbus/dbus-transport.c:
12517         Don't ref the connection on calls to the transport
12518         implementation.
12519
12520         * dbus/dbus-message-handler.c:
12521         Make threadsafe.
12522
12523         * glib/dbus-gmain.c:
12524         Don't use peek_message anymore
12525
12526         * test/Makefile.am:
12527         * test/debug-thread.c:
12528         * test/debug-thread.h:
12529         Simple thread implementation that asserts() on deadlocks in
12530         single-threaded code.
12531
12532         * test/bus-test.c:
12533         (main) Call debug_threads_init.
12534
12535         * test/watch.c:
12536         Use disconnect message instead of disconnect callback.
12537
12538         * bus/connection.c:
12539         * bus/connection.h:
12540         Don't call dbus_connection_set_disconnect_function. Instead export
12541         bus_connection_disconnect.
12542
12543         * bus/dispatch.c:
12544         Call bus_connection_disconnect when we get a disconnected message.
12545
12546 2003-02-15  Havoc Pennington  <hp@pobox.com>
12547
12548         * dbus/dbus-message.c (dbus_message_new): fool around with the
12549         docs
12550
12551 2003-02-14  Havoc Pennington  <hp@pobox.com>
12552
12553         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12554
12555         * dbus/dbus-memory.c: fail if the debug functions indicate we
12556         should
12557
12558         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12559         (_dbus_decrement_fail_alloc_counter): debug functions to
12560         simulate memory allocation failures
12561
12562 2003-02-14  Havoc Pennington  <hp@pobox.com>
12563
12564         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12565         to DBusError
12566
12567 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12568
12569         * bus/driver.c: (bus_driver_handle_hello):
12570         * bus/driver.h:
12571         * bus/services.c: (bus_service_lookup):
12572         Reorder message sending so we get a more sane order.
12573
12574         * test/bus-test.c: (message_handler):
12575         Fix tyop.
12576
12577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12578
12579         * bus/driver.c: (bus_driver_send_service_deleted),
12580         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12581         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12582         (bus_driver_send_welcome_message),
12583         (bus_driver_handle_list_services),
12584         (bus_driver_handle_acquire_service),
12585         (bus_driver_handle_service_exists):
12586         * dbus/dbus-bus.c: (dbus_bus_register_client),
12587         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12588         * dbus/dbus-errors.c: (dbus_result_to_string):
12589         * dbus/dbus-errors.h:
12590         * dbus/dbus-message.c: (dbus_message_append_args),
12591         (dbus_message_append_args_valist), (dbus_message_get_args),
12592         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12593         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12594         (dbus_message_iter_get_byte_array),
12595         (dbus_message_iter_get_string_array), (message_iter_test),
12596         (check_message_handling), (_dbus_message_test):
12597         * dbus/dbus-message.h:
12598         * test/bus-test.c: (main):
12599         Change fields to arguments in messages, so that they won't be
12600         confused with header fields.
12601
12602         * glib/test-dbus-glib.c: (main):
12603         Remove append_fields from hello message.
12604
12605 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12606
12607         * dbus/dbus-errors.c:
12608         * dbus/dbus-message.c:
12609         * dbus/dbus-string.c:
12610         Documentation fixes.
12611
12612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12613
12614         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12615         (remove_timeout):
12616         Implement support for timeouts in dbus-glib.
12617
12618 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12621         * dbus/dbus-message.c: (process_test_subdir):
12622         * test/break-loader.c: (find_breaks_based_on):
12623         Plug some memory leaks.
12624
12625 2003-02-13  Richard Hult  <rhult@codefactory.se>
12626
12627         * bus/main.c: Fix build.
12628
12629         * dbus/dbus-errors.h:
12630         * dbus/dbus-errors.c: Fix copyright for Anders.
12631
12632 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12633
12634         * bus/Makefile.am:
12635         Add utils.[ch]
12636
12637         * bus/connection.c: (bus_connection_foreach):
12638         Fix a warning.
12639
12640         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12641         (unescape_string), (new_section), (parse_section_start),
12642         (parse_key_value), (report_error), (bus_desktop_file_load),
12643         (bus_desktop_file_get_string):
12644         * bus/desktop-file.h:
12645         Use DBusError for error reporting.
12646
12647         * bus/dispatch.c: (send_one_message),
12648         (bus_dispatch_message_handler):
12649         * bus/driver.c: (bus_driver_send_service_deleted),
12650         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12651         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12652         (bus_driver_send_welcome_message),
12653         (bus_driver_handle_list_services),
12654         (bus_driver_handle_acquire_service),
12655         (bus_driver_handle_service_exists):
12656         * bus/loop.c: (bus_loop_run):
12657         * bus/main.c:
12658         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12659
12660         * bus/utils.c: (bus_wait_for_memory):
12661         * bus/utils.h:
12662         New files with general utility functions.
12663
12664         * dbus/dbus-internals.h:
12665         Remove _DBUS_HANDLE_OOM.
12666
12667 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12668
12669         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12670         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12671         * dbus/dbus-errors.h:
12672         Add DBusError structure.
12673
12674 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * test/data/valid-messages/standard-acquire-service.message:
12677         * test/data/valid-messages/standard-hello.message:
12678         * test/data/valid-messages/standard-list-services.message:
12679         * test/data/valid-messages/standard-service-exists.message:
12680         Add some standard messages.
12681
12682 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12683
12684         * bus/driver.c: (bus_driver_send_welcome_message),
12685         (bus_driver_handle_list_services),
12686         (bus_driver_handle_acquire_service),
12687         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12688         Update for API changes in libdbus.
12689
12690         * dbus/dbus-message.c: (dbus_message_new_reply):
12691         * dbus/dbus-message.h:
12692         Remove the name argument. The spec states that replies shouldn't
12693         have a name.
12694
12695 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12696
12697         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12698         (report_error), (bus_desktop_file_load), (lookup_section),
12699         (lookup_line), (bus_desktop_file_get_raw),
12700         (bus_desktop_file_get_string):
12701         * bus/desktop-file.h:
12702         Some fixes, and new functions for getting a key value from a section.
12703
12704 2003-02-13  Havoc Pennington  <hp@pobox.com>
12705
12706         * test/data/auth/fail-after-n-attempts.auth-script: new test
12707
12708         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12709         reject the client.
12710
12711 2003-02-13  Havoc Pennington  <hp@pobox.com>
12712
12713         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12714         dbus_credentials_match were backward
12715
12716         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12717         NO_CREDENTIALS and ROOT_CREDENTIALS
12718
12719         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12720         into here. Never process more commands after we've reached an
12721         end state; store further data as unused bytes.
12722
12723         * test/data/auth/*: add more auth tests
12724
12725         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12726         command to match exact string and EXPECT_UNUSED to match unused
12727         bytes
12728
12729         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12730
12731 2003-02-12  Havoc Pennington  <hp@pobox.com>
12732
12733         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12734         \r off of popped lines
12735
12736         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12737         scripts
12738
12739         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12740         SEND, append \r\n
12741
12742 2003-02-12  Havoc Pennington  <hp@pobox.com>
12743
12744         * dbus/Makefile.am: remove break-loader from the build, since it
12745         moved.
12746
12747         * configure.in: add --enable-gcov to turn on coverage profiling
12748         flags and disable optimization
12749
12750 2003-02-10  Havoc Pennington  <hp@pobox.com>
12751
12752         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12753         initial cut at test framework for DBusAuth from laptop.
12754         Doesn't quite work yet but it compiles and I need to get
12755         it off the 266mhz laptop. ;-)
12756
12757         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12758         fix a memleak in error case
12759
12760 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * bus/Makefile.am:
12763         * bus/desktop-file.c:
12764         * bus/desktop-file.h:
12765         Add a desktop file parser.
12766
12767 2003-02-11  Zack Rusin  <zack@kde.org>
12768
12769         * qt/message.[h|cpp]: sample implementation
12770         of the KDE wrapper for DBusMessage
12771
12772 2003-02-09  Zack Rusin  <zack@kde.org>
12773
12774         * test/bus-test.c: make_it_compile
12775         * doc/dbus-specification.sgml: minimal semantic fix
12776
12777 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12778
12779         Release 0.3
12780
12781         * NEWS: Update
12782
12783 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12784
12785         * dbus/Makefile.am:
12786         * dbus/dbus-break-loader.c:
12787         * test/Makefile.am:
12788         * test/break-loader.c:
12789         Move dbus-break-loader to test/ and rename it to break-loader.
12790
12791 2003-02-02  Havoc Pennington  <hp@pobox.com>
12792
12793         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12794         for code to manage cookies in your home directory
12795
12796         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12797
12798         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12799         to authenticate, then disconnect the client.
12800
12801 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12802
12803         * dbus/dbus-message.c (dbus_message_append_fields):
12804         Correct docs.
12805
12806 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12807
12808         * doc/dbus-specification.sgml:
12809         Update address format section.
12810
12811 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12812
12813         * test/Makefile.am:
12814         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12815         (message_handler), (new_connection_callback), (loop_quit),
12816         (loop_run), (main):
12817         Add bus test.
12818
12819 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12820
12821         * bus/driver.c: (bus_driver_handle_service_exists):
12822         Simplify the code a bit.
12823
12824         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12825         Fix a silly.
12826
12827 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12828
12829         * bus/Makefile.am:
12830         Add libdbus-daemon.la and link to it.
12831
12832 2003-02-01  James Willcox  <jwillcox@gnome.org>
12833
12834         * bus/driver.c: (bus_driver_handle_own_service):
12835         Actually include the service reply code in the message.
12836
12837 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12838
12839         * bus/driver.c: (bus_driver_handle_service_exists):
12840         Don't unref the incoming message.
12841
12842 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12843
12844         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12845
12846 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12847
12848         * dbus/dbus-server.c: (dbus_server_listen):
12849         * dbus/dbus-transport.c: (_dbus_transport_open):
12850         ifdef out the calls to the debug transport and server.
12851
12852 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12853
12854         * dbus/dbus-watch.c (dbus_watch_get_flags):
12855         Add note in the docs that ERROR or HANGUP won't be returned
12856         and are assumed always on.
12857
12858         * glib/dbus-gmain.c (add_watch):
12859         Always add IO_ERR | IO_HUP
12860
12861         * dbus/dbus-message.h:
12862         Add semicolon after dbus_message_iter_get_string_array().
12863         Makes qt code build again
12864
12865 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12866
12867         * bus/driver.c: (create_unique_client_name),
12868         (bus_driver_handle_hello):
12869         Don't take a name, just use a numeric id to identify
12870         each client.
12871
12872         * dbus/Makefile.am:
12873         * dbus/dbus-bus.c: (dbus_bus_register_client),
12874         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12875         * dbus/dbus-bus.h:
12876         Add new convenience functions for communicating with the bus.
12877
12878         * dbus/dbus-message.h:
12879
12880         * dbus/dbus-protocol.h:
12881         Fix a typo.
12882
12883 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12884
12885         * dbus/dbus-message.c (dbus_message_append_fields):
12886         Add some more doc comments.
12887
12888 2003-02-01  Havoc Pennington  <hp@pobox.com>
12889
12890         * dbus/dbus-break-loader.c (randomly_modify_length): change
12891         a 4-byte value in the message as if it were a length
12892
12893         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12894         execute bit on saved files
12895
12896 2003-02-01  Havoc Pennington  <hp@pobox.com>
12897
12898         * dbus/dbus-break-loader.c (main): new program to find messages
12899         that break the loader.
12900
12901         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12902         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12903
12904         * dbus/dbus-string.c (_dbus_string_set_byte): new
12905
12906 2003-01-31  Havoc Pennington  <hp@pobox.com>
12907
12908         * dbus/dbus-message.c: refactor the test code to be more general,
12909         in preparation for writing a "randomly permute test cases to
12910         try to break the loader" program.
12911
12912 2003-01-31  Havoc Pennington  <hp@pobox.com>
12913
12914         * doc/dbus-specification.sgml: work on the specification
12915
12916         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12917         the protocol version of the message.
12918
12919         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12920         no longer specifies that.
12921         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12922         1/2/3/4)
12923
12924         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12925         "break" for DBUS_TYPE_NIL, remove @todo
12926
12927 2003-01-31  Havoc Pennington  <hp@pobox.com>
12928
12929         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12930         just set_is_error/get_is_error as this is a commonly-used
12931         function, and write docs.
12932
12933 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12934
12935         * dbus/dbus-address.c: (dbus_address_entry_free):
12936         Free key and value lists.
12937
12938         * dbus/dbus-internals.c: (_dbus_type_to_string):
12939         Add the types we didn't have.
12940
12941         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12942         (_dbus_marshal_validate_arg):
12943         Add NIL types.
12944
12945         * dbus/dbus-message.c: (dbus_message_set_sender):
12946         Remove todo about being able to set sender to NULL.
12947
12948         (dbus_message_set_is_error_reply),
12949         (dbus_message_get_is_error_reply):
12950         * dbus/dbus-message.h:
12951         New functions.
12952
12953         * dbus/dbus-protocol.h:
12954         Add error reply flag.
12955
12956         * test/data/valid-messages/opposite-endian.message:
12957         Add NIL type to test.
12958
12959 2003-01-31  Havoc Pennington  <hp@pobox.com>
12960
12961         * doc/dbus-specification.sgml: fully specify the header.  Add
12962         flags and major protocol version, and change header/body len to
12963         unsigned.
12964
12965         * dbus/dbus-message-builder.c (append_saved_length): append length
12966         as uint32
12967
12968         * dbus/dbus-message.c (dbus_message_create_header): change header
12969         length and body length to unsigned. Add the new fields from the
12970         spec
12971         (_dbus_message_loader_return_buffer): unsigned header/body len
12972
12973 2003-01-30  Havoc Pennington  <hp@pobox.com>
12974
12975         * dbus/dbus-auth.c: rework to use only REJECTED, no
12976         MECHANISMS
12977
12978         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12979         use REJECTED, suggested by Mark McLoughlin
12980
12981 2003-01-30  Havoc Pennington  <hp@pobox.com>
12982
12983         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12984         a better way to report errors here. e.g.  "unix address lacks
12985         path" or something. also "no such file" when the path doesn't
12986         exist, etc.
12987
12988         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12989         leaking list nodes
12990         (dbus_parse_address): add @todo about documenting address format,
12991         and allowing , and ; to be escaped
12992
12993 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12994
12995         * dbus/Makefile.am:
12996         Add dbus-address.[ch]
12997
12998         * dbus/dbus-address.c: (dbus_address_entry_free),
12999         (dbus_address_entries_free), (create_entry),
13000         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13001         (dbus_parse_address), (_dbus_address_test):
13002         * dbus/dbus-address.h:
13003         New files for dealing with address parsing.
13004
13005         * dbus/dbus-connection.c:
13006         Document timeout functions.
13007
13008         * dbus/dbus-message.c:
13009         Document dbus_message_new_from_message.
13010
13011         * dbus/dbus-server-debug.c:
13012         Document.
13013
13014         * dbus/dbus-server.c: (dbus_server_listen):
13015         Parse address and use correct server implementation.
13016
13017         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13018         * dbus/dbus-string.h:
13019         New function with test.
13020
13021         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13022         * dbus/dbus-test.h:
13023         Add address tests.
13024
13025         * dbus/dbus-transport-debug.c:
13026         Document.
13027
13028         * dbus/dbus-transport.c: (_dbus_transport_open):
13029         Parse address and use correct transport implementation.
13030
13031 2003-01-30  Havoc Pennington  <hp@pobox.com>
13032
13033         * dbus/dbus-message.c: use message->byte_order instead of
13034         DBUS_COMPILER_BYTE_ORDER throughout.
13035         (dbus_message_create_header): pad header to align the
13036         start of the body of the message to 8-byte boundary
13037
13038         * dbus/dbus-marshal.h: make all the demarshalers take const
13039         DBusString arguments.
13040
13041         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13042         validate message args here, so we don't have to do slow validation
13043         later, and so we catch bad messages as they are incoming. Also add
13044         better checks on header_len and body_len. Also fill in
13045         message->byte_order
13046
13047         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13048         implemented properly)
13049         (_dbus_string_validate_nul): new function to check all-nul
13050
13051         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13052         get_arg_end_pos and remove all validation
13053         (_dbus_marshal_validate_arg): actually do validation here.
13054
13055 2003-01-29  Havoc Pennington  <hp@pobox.com>
13056
13057         * dbus/dbus-message.c (check_message_handling): fix assertion
13058         failure on set_client_serial
13059
13060 2003-01-28  Havoc Pennington  <hp@pobox.com>
13061
13062         * dbus/dbus-server-debug.c: Add doc section comments
13063
13064         * dbus/dbus-transport-debug.c: add doc section comments
13065
13066 2003-01-28  Havoc Pennington  <hp@redhat.com>
13067
13068         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13069         the reverse order from how I had it
13070         (_dbus_string_base64_encode): reverse encoding order. I was
13071         basically byteswapping everything during encoding.
13072
13073 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13074
13075         * dbus/dbus-connection-internal.h:
13076         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13077         (_dbus_connection_remove_timeout):
13078         Add functions for adding and removing timeouts.
13079
13080         * dbus/dbus-message.c: (dbus_message_new_from_message):
13081         Add new function that takes a message and creates an exact
13082         copy of it, but with the refcount set to 1.
13083         (check_message_handling):
13084         Fix build error.
13085
13086         * dbus/dbus-server-protected.h:
13087         * dbus/dbus-server.c: (_dbus_server_init_base),
13088         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13089         (dbus_server_set_timeout_functions):
13090         (_dbus_server_remove_timeout):
13091         New functions so that a server can add and remove timeouts.
13092
13093         (dbus_server_listen):
13094         Add commented out call to dbus_server_debug_new.
13095
13096         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13097         Actually set the handler, doh.
13098
13099         * dbus/dbus-transport.c: (_dbus_transport_open):
13100         Add commented out call to dbus_transport_debug_client_new.
13101
13102         * dbus/Makefile.am:
13103         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13104
13105 2003-01-28  Havoc Pennington  <hp@pobox.com>
13106
13107         * dbus/dbus-message.c (check_message_handling): function to check
13108         on the loaded message, iterates over it etc.
13109
13110 2003-01-28  Havoc Pennington  <hp@pobox.com>
13111
13112         * test/Makefile.am (dist-hook): fix make distdir
13113
13114         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13115
13116 2003-01-27  Havoc Pennington  <hp@pobox.com>
13117
13118         * dbus/dbus-mempool.c (time_for_size): replace printf with
13119         _dbus_verbose
13120
13121         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13122         empty lines; fix the SAVE_LENGTH stuff to be
13123         START_LENGTH/END_LENGTH so it actually works; couple other
13124         bugfixes
13125
13126         * test/Makefile.am (dist-hook): add dist-hook for .message files
13127
13128         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13129         can be constant or locked.
13130         (_dbus_string_free): allow freeing a const string as
13131         documented/intended
13132
13133         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13134
13135         * dbus/dbus-test-main.c (main): take an argument which is the
13136         directory containing test data
13137
13138         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13139         argument to this and load all the messages in test/data/
13140         checking that they can be loaded or not loaded as appropriate.
13141
13142 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13143
13144         * bus/dispatch.c: (bus_dispatch_message_handler):
13145         Dispatch messages sent to services.
13146
13147         * bus/driver.c: (bus_driver_send_service_deleted),
13148         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13149         (bus_driver_send_service_acquired):
13150         Add helper functions for sending service related messages.
13151
13152         (bus_driver_send_welcome_message):
13153         Send HELLO_REPLY instead of WELCOME.
13154
13155         (bus_driver_handle_list_services):
13156         Send LIST_SERVICES_REPLY instead of SERVICES.
13157
13158         (bus_driver_handle_own_service),
13159         (bus_driver_handle_service_exists):
13160         New message handlers.
13161
13162         (bus_driver_handle_message):
13163         Invoke new message handlers.
13164
13165         (bus_driver_remove_connection):
13166         Don't remove any services here since that's done automatically
13167         by bus_service_remove_owner now.
13168
13169         * bus/driver.h:
13170         New function signatures.
13171
13172         * bus/services.c: (bus_service_add_owner):
13173         Send ServiceAcquired message if we're the only primary owner.
13174
13175         (bus_service_remove_owner):
13176         Send ServiceAcquired/ServiceLost messages.
13177
13178         (bus_service_set_prohibit_replacement),
13179         (bus_service_get_prohibit_replacement):
13180         Functions for setting prohibit replacement.
13181
13182         (bus_service_has_owner):
13183         New function that checks if a connection is in the owner queue of
13184         a certain service.
13185
13186         * bus/services.h:
13187         Add new function signatures.
13188
13189         * dbus/dbus-list.c: (_dbus_list_test):
13190         Add tests for _dbus_list_remove_last and traversing the list backwards.
13191
13192         * dbus/dbus-list.h:
13193         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13194         go any further, so return NULL then.
13195
13196         * dbus/dbus-protocol.h:
13197         Add new messages, service flags and service replies.
13198
13199 2003-01-26  Havoc Pennington  <hp@pobox.com>
13200
13201         * dbus/dbus-message-builder.c: implement, completely untested.
13202
13203         * test/data/*: add data to be used in testing.
13204         ".message" files are our simple loadable text format.
13205         ".message-raw" will be binary dumps of messages.
13206
13207         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13208
13209 2003-01-26  Havoc Pennington  <hp@pobox.com>
13210
13211         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13212
13213         * dbus/dbus-errors.c (dbus_result_to_string): add
13214         file errors
13215
13216         * dbus/dbus-message-builder.c: new file, will contain code to load
13217         up messages from files. Not implemented yet.
13218
13219 2003-01-26  Havoc Pennington  <hp@pobox.com>
13220
13221         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13222         the sender by setting to NULL
13223
13224 2003-01-26  Havoc Pennington  <hp@pobox.com>
13225
13226         The unit tests pass, but otherwise untested.  If it breaks, the
13227         tests should have been better. ;-)
13228
13229         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13230         the connection.
13231
13232         * dbus/dbus-message.c: redo everything so we maintain
13233         message->header as the only copy of the various fields.
13234         This avoids the possibility of out-of-memory in some cases,
13235         for example dbus_message_lock() can't run out of memory anymore,
13236         and avoids extra copying. Figured I may as well go ahead and do
13237         this since it was busted for dbus_message_lock to not return
13238         failure on OOM, and dbus_message_write_header was totally
13239         unchecked for OOM. Also fixed some random other bugs.
13240
13241         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13242         that strings are nul-terminated. Also, end_pos can be equal
13243         to string length just not greater than, I think.
13244         (_dbus_marshal_set_int32): new function
13245         (_dbus_marshal_set_uint32): new function
13246         (_dbus_marshal_set_string): new function
13247
13248         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13249         a warning, init timeout_list to NULL
13250         (dbus_connection_send_message): don't use uninitialized variable
13251         "serial"
13252
13253         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13254
13255 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * bus/driver.c: (bus_driver_handle_hello),
13258         (bus_driver_send_welcome_message):
13259         Plug leaks
13260
13261 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13262
13263         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13264         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13265         (dbus_connection_unref):
13266         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13267         * dbus/dbus-message.c: (dbus_message_unref),
13268         Plug memory leaks.
13269
13270         (dbus_message_get_fields):
13271         Remove debugging printout.
13272
13273         (_dbus_message_loader_return_buffer):
13274         Don't store the header string.
13275
13276         (_dbus_message_test):
13277         Plug leaks.
13278
13279 2003-01-26  Richard Hult  <rhult@codefactory.se>
13280
13281         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13282         the file descriptor list, since it can change under us.
13283
13284 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13285
13286         * glib/dbus-gmain.c: (dbus_connection_prepare),
13287         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13288         (remove_watch), (dbus_connection_hookup_with_g_main):
13289         Rewrite the glib handling to use its own GSource instead of a
13290         GIOChannel so we can catch messages put in the queue while waiting
13291         for a reply.
13292
13293 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13294
13295         * bus/Makefile.am:
13296         * bus/connection.c: (connection_disconnect_handler),
13297         (connection_watch_callback), (bus_connection_setup):
13298         * bus/dispatch.c: (send_one_message),
13299         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13300         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13301         * bus/dispatch.h:
13302         * bus/driver.c: (bus_driver_send_service_deleted),
13303         (bus_driver_send_service_created), (bus_driver_handle_hello),
13304         (bus_driver_send_welcome_message),
13305         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13306         (bus_driver_handle_message):
13307         * bus/driver.h:
13308         Refactor code, put the message dispatching in its own file. Use
13309         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13310         is disconnected.
13311
13312 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13313
13314         * dbus/dbus-internals.h:
13315         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13316
13317         * dbus/dbus-message.c: (dbus_message_get_sender):
13318         * dbus/dbus-message.h:
13319         Implement dbus_message_get_sender.
13320
13321         * dbus/dbus-protocol.h:
13322         Add message and service defines.
13323
13324 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13325
13326         * dbus/dbus-connection.c: (dbus_connection_send_message):
13327         * dbus/dbus-message-internal.h:
13328         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13329         (dbus_message_write_header):
13330         Remove _dbus_messag_unlock and don't set the client serial on a
13331         message if one already exists.
13332
13333 2003-01-24  Havoc Pennington  <hp@pobox.com>
13334
13335         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13336         list_pool
13337
13338         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13339         on OOM
13340
13341 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13342
13343         * dbus/dbus-list.c: (alloc_link), (free_link):
13344         Use a memory pool for the links.
13345
13346 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13347
13348         * bus/connection.c: (bus_connection_foreach):
13349         * bus/connection.h:
13350         Add new bus_connection_foreach function.
13351
13352         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13353         Add function that broadcasts a message to all clients.
13354
13355         (bus_driver_send_service_created), (bus_driver_handle_hello),
13356         (bus_driver_send_welcome_message),
13357         (bus_driver_handle_list_services), (bus_driver_message_handler):
13358         Implement functions that take care of listing services, and notifying
13359         clients when new services are created.
13360
13361         * bus/services.c: (bus_services_list):
13362         * bus/services.h:
13363         Add new function that returns an array of strings with the currently
13364         registered services.
13365
13366         * glib/dbus-glib.h:
13367         * glib/dbus-gmain.c:
13368         Update copyright year.
13369
13370 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * dbus/dbus-connection.c: (dbus_connection_send_message):
13373         Unlock the message in case it was sent earlier.
13374
13375         (dbus_connection_send_message_with_reply_and_block):
13376         Remove the reply message from the list.
13377
13378         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13379         Set array_len and new_pos correctly.
13380
13381         (_dbus_marshal_test):
13382         Remove debug output.
13383
13384         * dbus/dbus-message-internal.h:
13385         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13386         New function that returns the reply serial.
13387
13388         (_dbus_message_unlock):
13389         New function that unlocks a message and resets its header.
13390
13391         (dbus_message_append_string_array),
13392         (dbus_message_get_fields_valist),
13393         (dbus_message_iter_get_field_type),
13394         (dbus_message_iter_get_string_array),
13395         (dbus_message_get_fields),
13396         (dbus_message_append_fields_valist):
13397         Handle string arrays.
13398
13399         (dbus_message_set_sender):
13400         Make this function public since the bus daemon needs it.
13401
13402         (decode_header_data):
13403         Set the reply serial to -1 initially.
13404
13405         * dbus/dbus-message.h:
13406         Add dbus_message_set_sender.
13407
13408 2003-01-24  Havoc Pennington  <hp@pobox.com>
13409
13410         * doc/dbus-specification.sgml: add some stuff
13411
13412 2003-01-22  Havoc Pennington  <hp@pobox.com>
13413
13414         * doc/dbus-specification.sgml: Start to document the protocol.
13415
13416 2003-01-22  Havoc Pennington  <hp@pobox.com>
13417
13418         * dbus/dbus-connection.c
13419         (dbus_connection_send_message_with_reply_and_block): add some @todo
13420
13421         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13422
13423 2003-01-21  Havoc Pennington  <hp@pobox.com>
13424
13425         (patch untested because can't compile)
13426
13427         * bus/driver.c (create_unique_client_name): make this function
13428         never recycle client names. Also, caller should initialize
13429         the DBusString.
13430
13431         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13432
13433 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13434
13435         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13436         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13437         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13438         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13439         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13440         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13441         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13442         * dbus/dbus-marshal.h:
13443         * dbus/dbus-protocol.h:
13444         Add support for marshalling and demarshalling integer, double
13445         and string arrays.
13446
13447 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13448
13449         * bus/Makefile.am:
13450         Add driver.[ch]
13451
13452         * bus/connection.c: (connection_disconnect_handler):
13453         Remove the connection from the bus driver's list.
13454
13455         (connection_watch_callback): Dispatch messages.
13456
13457         (free_connection_data): Free connection name.
13458
13459         (bus_connection_setup): Add connection to the bus driver's list.
13460         (bus_connection_remove_owned_service):
13461         (bus_connection_set_name), (bus_connection_get_name):
13462         Add functions for setting and getting the connection's name.
13463
13464         * bus/connection.h:
13465         Add function headers.
13466
13467         * bus/driver.c: (create_unique_client_name),
13468         (bus_driver_handle_hello_message),
13469         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13470         (bus_driver_add_connection), (bus_driver_remove_connection):
13471         * bus/driver.h:
13472         * bus/main.c:
13473         * bus/services.c: (bus_service_free):
13474         * bus/services.h:
13475         New file that handles communication and registreation with the bus
13476         itself.
13477
13478 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13479
13480         * dbus/dbus-connection.c: (dbus_connection_send_message):
13481         Add a new client_serial parameter.
13482
13483         (dbus_connection_send_message_with_reply):
13484         Remove a @todo since we've implemented the blocking function.
13485
13486         (dbus_connection_send_message_with_reply_and_block):
13487         New function that sends a message and waits for a reply and
13488         then returns the reply.
13489
13490         * dbus/dbus-connection.h:
13491         Add new functions.
13492
13493         * dbus/dbus-errors.c: (dbus_result_to_string):
13494         * dbus/dbus-errors.h:
13495         Add new DBUS_RESULT.
13496
13497         * dbus/dbus-message-internal.h:
13498         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13499         (_dbus_message_set_sender), (dbus_message_write_header),
13500         (dbus_message_new_reply), (decode_header_data),
13501         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13502         * dbus/dbus-message.h:
13503         Add new functions that set the reply serial and sender.
13504         Also marshal and demarshal them correctly and add test.
13505
13506         * dbus/dbus-protocol.h:
13507         Add new DBUS_MESSAGE_TYPE_SENDER.
13508
13509         * glib/dbus-glib.h:
13510         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13511         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13512         (dbus_connection_hookup_with_g_main):
13513         * glib/test-dbus-glib.c: (main):
13514         Rewrite to use GIOChannel and remove the GSource crack.
13515
13516         * test/echo-client.c: (main):
13517         * test/watch.c: (check_messages):
13518         Update for changed APIs
13519
13520 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13521
13522         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13523
13524         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13525         Create a DBusTimeoutList.
13526         (dbus_connection_set_timeout_functions): Add new function to
13527         set timeout callbacks
13528
13529         * dbus/dbus-connection.h: Add public DBusTimeout API.
13530
13531         * dbus/dbus-message.c: (dbus_message_get_service):
13532         * dbus/dbus-message.h:  New function.
13533
13534         * dbus/dbus-server.c: Fix small doc typo.
13535
13536         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13537
13538 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13539
13540         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13541         of the string, just as long as specified.
13542
13543 2003-01-19  Havoc Pennington  <hp@pobox.com>
13544
13545         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13546         new function
13547
13548         * dbus/dbus-server.c (dbus_server_set_max_connections)
13549         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13550         keep track of current number of connections, and add API for
13551         setting a max (but haven't implemented enforcing the max yet)
13552
13553 2003-01-18  Havoc Pennington  <hp@pobox.com>
13554
13555         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13556         reading/writing if read_watch != NULL or write_watch != NULL.
13557
13558         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13559         the message loader code to actually load message->header and
13560         message->body into the newly-created message.
13561
13562         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13563         in OOM case
13564
13565         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13566         (dbus_connection_get_max_message_size)
13567         (dbus_connection_set_max_live_messages_size)
13568         (dbus_connection_get_max_live_messages_size): implement some
13569         resource limitation functions
13570
13571         * dbus/dbus-resources.c: new file implementing some of the
13572         resource limits stuff
13573
13574         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13575         missing docs, add @todo to handle OOM etc.
13576
13577         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13578         docs
13579
13580 2003-01-18  Havoc Pennington  <hp@pobox.com>
13581
13582         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13583         connection if it hasn't been already.
13584
13585         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13586         replace with DisconnectFunction.
13587
13588 2003-01-18  Havoc Pennington  <hp@pobox.com>
13589
13590         Building --disable-verbose-mode --disable-asserts --disable-tests
13591         cuts the library from 112K to 45K or so
13592
13593         * configure.in: check for varargs macro support,
13594         add --enable-verbose-mode, --enable-asserts.
13595
13596         * dbus/dbus-internals.h (_dbus_assert): support
13597         DBUS_DISABLE_ASSERT
13598         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13599
13600 2003-01-18  Havoc Pennington  <hp@pobox.com>
13601
13602         * dbus/dbus-test.c: include config.h so that tests actually run
13603
13604         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13605         so the failure mode when that assumption fails will be plenty
13606         obvious.
13607
13608 2003-01-18  Havoc Pennington  <hp@pobox.com>
13609
13610         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13611
13612         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13613         the distribution
13614
13615         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13616         since we don't want to use those in make check
13617
13618 2003-01-15  Havoc Pennington  <hp@redhat.com>
13619
13620         Release 0.2
13621
13622         * NEWS: update
13623
13624 2003-01-15  Havoc Pennington  <hp@redhat.com>
13625
13626         * test/Makefile.am: fix so that test source code ends up in the
13627         distribution on make distcheck
13628
13629 2003-01-15  Havoc Pennington  <hp@redhat.com>
13630
13631         Release 0.1.
13632
13633         * NEWS: update
13634
13635 2003-01-15  Havoc Pennington  <hp@redhat.com>
13636
13637         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13638         fix build when --disable-tests
13639
13640         * Makefile.am (EXTRA_DIST): put HACKING in here
13641
13642         * HACKING: document procedure for making a tarball release.
13643
13644 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13645
13646         * bus/connection.c: (connection_error_handler),
13647         (bus_connection_setup):
13648         * bus/main.c: (main):
13649         Make sure that the DBusConnectionData struct is NULLed
13650         out to prevent a segfault.
13651
13652         * dbus/dbus-errors.c: (dbus_result_to_string):
13653         * dbus/dbus-errors.h:
13654         * dbus/dbus-message.c: (dbus_message_get_fields),
13655         (dbus_message_get_fields_valist), (_dbus_message_test):
13656         * dbus/dbus-message.h:
13657         Make dbus_message_get_fields return a result code so we can
13658         track invalid fields as well as oom.
13659
13660 2003-01-11  Havoc Pennington  <hp@pobox.com>
13661
13662         * configure.in: change --enable-test/--enable-ansi action-if-given
13663         to enable_foo=$enableval instead of enable_foo=yes
13664
13665 2003-01-08  Havoc Pennington  <hp@pobox.com>
13666
13667         * dbus/dbus-string.c (_dbus_string_align_length): new function
13668
13669         * dbus/dbus-test-main.c: move main() for test app here
13670         * dbus/dbus-test.c
13671         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13672         symbol to run tests, because dbus-test isn't in the main
13673         library
13674
13675         Code review nitpicks.
13676
13677         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13678         for people with narrow emacs ;-). Assert client_serial was filled
13679         in. Assert message->name != NULL.
13680         (dbus_message_append_fields): have "first_field_type" arg separate
13681         from va list, needed for C++ binding that also uses varargs IIRC
13682         and helps with type safety
13683         (dbus_message_new): add @todo about using DBusString to store
13684         service/name internally
13685         (dbus_message_new): don't leak ->service and ->name on OOM later
13686         in the function
13687         (dbus_message_unref): free the service name
13688         (dbus_message_get_fields): same change to varargs
13689         i.e. first_field_type
13690         (_dbus_message_loader_return_buffer): assert that the message data
13691         is aligned (if not it's a bug in our code). Put in verbose griping
13692         about why we set corrupted = TRUE.
13693         (decode_header_data): add FIXME that char* is evil.  Was going to
13694         add FIXME about evil locale-specific string.h strncmp, but just
13695         switched to wacky string-as-uint32 optimization. Move check for
13696         "no room for field name" above get_const_data_len() to avoid
13697         assertion failure in get_const_data_len if we have trailing 2
13698         bytes or the like. Check for service and name fields being
13699         provided twice. Don't leak service/name on error. Require field
13700         names to be aligned to 4 bytes.
13701
13702         * dbus/dbus-marshal.c: move byte swap stuff to header
13703         (_dbus_pack_int32): uscore-prefix
13704         (_dbus_unpack_int32): uscore-prefix
13705         (_dbus_unpack_uint32): export
13706         (_dbus_demarshal_string): add @todo complaining about use of
13707         memcpy()
13708         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13709         handling allowing corrupt data to go unchecked
13710
13711 2003-01-08  Havoc Pennington  <hp@redhat.com>
13712
13713         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13714         to the select() as needed for authentication. (should be using
13715         _dbus_poll() not select, but for another day)
13716
13717         * dbus/dbus.h: include dbus/dbus-protocol.h
13718
13719 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13720
13721         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13722         dbus-connection.h
13723
13724 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13725
13726         * dbus/dbus-internals.c: (_dbus_type_to_string):
13727         New function that returns a string describing a type.
13728
13729         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13730         * dbus/dbus-marshal.h:
13731         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13732         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13733         (dbus_message_iter_get_byte_array):
13734         * dbus/dbus-message.h:
13735         Add new convenience functions for appending and getting message fields.
13736         Also add demarshalling routines for byte arrays.
13737
13738 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13739
13740         * dbus/dbus-connection-internal.h:
13741         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13742         (_dbus_connection_get_next_client_serial),
13743         (dbus_connection_send_message):
13744         * dbus/dbus-internals.h:
13745         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13746         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13747         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13748         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13749         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13750         (_dbus_verbose_bytes), (_dbus_marshal_test):
13751         * dbus/dbus-marshal.h:
13752         * dbus/dbus-message-internal.h:
13753         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13754         (dbus_message_write_header), (_dbus_message_lock),
13755         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13756         (dbus_message_get_name), (dbus_message_append_int32),
13757         (dbus_message_append_uint32), (dbus_message_append_double),
13758         (dbus_message_append_string), (dbus_message_append_byte_array),
13759         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13760         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13761         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13762         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13763         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13764         (decode_header_data), (_dbus_message_loader_return_buffer),
13765         (message_iter_test), (_dbus_message_test):
13766         * dbus/dbus-message.h:
13767         * dbus/dbus-protocol.h:
13768         * dbus/dbus-test.c: (main):
13769         * dbus/dbus-test.h:
13770         * glib/test-dbus-glib.c: (message_handler), (main):
13771         * test/echo-client.c: (main):
13772         * test/watch.c: (check_messages):
13773         Make messages sendable and receivable for real.
13774
13775 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13776
13777         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13778         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13779         * dbus/dbus-message.c: (dbus_message_append_int32),
13780         (dbus_message_append_uint32), (dbus_message_append_double),
13781         (dbus_message_append_string), (dbus_message_append_byte_array):
13782         Handle OOM restoration.
13783
13784 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13785
13786         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13787         (_dbus_demarshal_string), (_dbus_marshal_test):
13788         * dbus/dbus-marshal.h:
13789         * dbus/dbus-message.c: (dbus_message_get_name),
13790         Document these functions.
13791
13792         (dbus_message_append_int32), (dbus_message_append_uint32),
13793         (dbus_message_append_double), (dbus_message_append_string),
13794         (dbus_message_append_byte_array):
13795         * dbus/dbus-message.h:
13796         Add functions for adding message fields of different types.
13797
13798         * dbus/dbus-protocol.h:
13799         Add the different types.
13800
13801 2003-01-05  Havoc Pennington  <hp@pobox.com>
13802
13803         * bus/connection.c: implement routines for handling connections,
13804         first thing is keeping a list of owned services on each connection
13805         and setting up watches etc.
13806
13807         * bus/services.c: implement a mapping from service names to lists
13808         of connections
13809
13810         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13811
13812         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13813         to use static mutexes for global data
13814
13815         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13816         collection of functions to set/get application-specific data
13817         on the DBusConnection.
13818
13819 2003-01-04  Havoc Pennington  <hp@pobox.com>
13820
13821         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13822         (_dbus_poll): new function
13823
13824         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13825         copied from GLib
13826
13827         * bus/loop.c: initial code for the daemon main loop
13828
13829 2003-01-04  Havoc Pennington  <hp@pobox.com>
13830
13831         * test/watch.c (error_handler): make it safe if the error handler
13832         is called multiple times (if we s/error handler/disconnect
13833         handler/ we should just guarantee it's called only once)
13834
13835         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13836         error handler on disconnect (it's quite possible we should
13837         just change the error handler to a "disconnect handler," I'm
13838         not sure we have any other meaningful errors)
13839
13840         * configure.in: check for getpwnam_r
13841
13842         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13843         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13844         mechanism as in SASL spec, using socket credentials
13845
13846         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13847         (_dbus_send_credentials_unix_socket): new function
13848
13849         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13850         dbus_accept()
13851         (_dbus_write): only check errno if <0 returned
13852         (_dbus_write_two): ditto
13853
13854 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13855
13856         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13857         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13858         (_dbus_marshal_test):
13859         * dbus/dbus-marshal.h:
13860         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13861         to _dbus_marshal_utf8_string. Also fix some tests.
13862
13863 2002-12-28  Harri Porten  <porten@kde.org>
13864
13865         * configure.in: added check for C++ compiler and a very cheesy
13866         check for the Qt integration
13867
13868         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13869
13870         * qt/Makefile.am: added
13871
13872         * qt/.cvsignore: added
13873
13874         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13875         latter, added #ifdef QT_THREAD_SUPPORT guard.
13876
13877         * dbus/Makefile.am: added missing headers for make dist
13878
13879 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13880
13881         * dbus/Makefile.am: fixup export-symbols-regex.
13882
13883 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13884
13885         * acinclude.m4: Add this file and put the
13886         PKG_CHECK_MODULE macro in it.
13887
13888 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13889
13890         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13891         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13892         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13893         (_dbus_marshal_test):
13894         Make the demarshalling routines align the pos argument.
13895         Add string marshalling tests and fix the obvious bugs
13896         discovered.
13897
13898 2002-12-26  Havoc Pennington  <hp@pobox.com>
13899
13900         * dbus/dbus-auth.c: fixes fixes fixes
13901
13902         * dbus/dbus-transport-unix.c: wire up support for
13903         encoding/decoding data on the wire
13904
13905         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13906         (_dbus_auth_decode_data): append to target string
13907         instead of nuking it.
13908
13909 2002-12-26  Havoc Pennington  <hp@pobox.com>
13910
13911         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13912         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13913         doh
13914
13915         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13916         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13917         now). Main point is because I wanted unpack_uint32 to implement
13918         _dbus_verbose_bytes
13919         (_dbus_verbose_bytes): new function
13920
13921         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13922
13923         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13924         mechanism to handle a corrupt message stream
13925         (_dbus_message_loader_new): fix preallocation to only prealloc,
13926         not prelengthen
13927
13928         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13929         (_dbus_string_test): enhance tests for copy/move and fix the
13930         functions
13931
13932         * dbus/dbus-transport-unix.c: Hold references in more places to
13933         avoid reentrancy problems
13934
13935         * dbus/dbus-transport.c: ditto
13936
13937         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13938         leak reference count in no-message case
13939
13940         * test/watch.c (do_mainloop): handle adding/removing watches
13941         during iteration over the watches. Also, ref the connection/server
13942         stored on a watch, so we don't try to mangle a destroyed one.
13943
13944         * dbus/dbus-transport-unix.c (do_authentication): perform
13945         authentication
13946
13947         * dbus/dbus-auth.c (get_state): add a state
13948         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13949         (_dbus_auth_get_unused_bytes): append the unused bytes
13950         to the passed in string, rather than prepend
13951
13952         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13953         the auth conversation DBusAuth
13954
13955         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13956         (_dbus_transport_new_for_domain_socket): when creating a
13957         transport, pass in whether it's a client-side or server-side
13958         transport so we know which DBusAuth to create
13959
13960 2002-12-03  Havoc Pennington  <hp@pobox.com>
13961
13962         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13963         _after_ finalizing the derived members
13964         (unix_connection_set): unref watch if we fail to add it
13965
13966         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13967         transport first, so that the connection owned by the
13968         transport will be valid as the transport finalizes.
13969
13970         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13971         if necessary, and remove watches from the connection.
13972
13973         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13974
13975 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13976
13977         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13978         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13979         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13980         (_dbus_marshal_test):
13981         * dbus/dbus-marshal.h:
13982         Add string marshal functions and have the demarshal functions
13983         return the new position.
13984
13985 2002-12-25  Havoc Pennington  <hp@pobox.com>
13986
13987         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13988         it is a simple protocol that just maps directly to SASL.
13989
13990         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13991         initial implementation, not actually used yet.
13992
13993         * dbus/dbus-string.c (_dbus_string_find): new function
13994         (_dbus_string_equal): new function
13995         (_dbus_string_base64_encode): new function
13996         (_dbus_string_base64_decode): new function
13997
13998 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13999
14000         * dbus/Makefile.am:
14001         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14002         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14003         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14004         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14005         * dbus/dbus-marshal.h:
14006         * dbus/dbus-protocol.h:
14007         * dbus/dbus-test.c: (main):
14008         * dbus/dbus-test.h:
14009         Add un-optimized marshalling/demarshalling routines.
14010
14011 2002-12-25  Harri Porten  <porten@kde.org>
14012
14013         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14014
14015 2002-12-24  Zack Rusin  <zack@kde.org>
14016
14017         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14018         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14019         main loop stuff
14020
14021 2002-12-24  Havoc Pennington  <hp@pobox.com>
14022
14023         * glib/dbus-gthread.c: fix include
14024
14025         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14026         I think glib API needs to change, though, as you don't
14027         want to use DBusMessageFunction, you want to use the
14028         DBusMessageHandler object. Probably
14029         dbus_connection_open_with_g_main_loop()
14030         and dbus_connection_setup_g_main_loop() or something like that
14031         (but think of better names...) that just create a connection
14032         that has watch/timeout functions etc. already set up.
14033
14034         * dbus/dbus-connection.c
14035         (dbus_connection_send_message_with_reply): new function just to
14036         show how the message handler helps us deal with replies.
14037
14038         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14039
14040         * dbus/dbus-string.c (_dbus_string_test): free a string that
14041         wasn't
14042
14043         * dbus/dbus-hash.c: use memory pools for the hash entries
14044         (rebuild_table): be more paranoid about overflow, and
14045         shrink table when we can
14046         (_dbus_hash_test): reduce number of sprintfs and write
14047         valid C89. Add tests for case where we grow and then
14048         shrink the hash table.
14049
14050         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14051
14052         * dbus/dbus-connection.c (dbus_connection_register_handler)
14053         (dbus_connection_unregister_handler): new functions
14054
14055         * dbus/dbus-message.c (dbus_message_get_name): new
14056
14057         * dbus/dbus-list.c: fix docs typo
14058
14059         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14060         an object representing a handler for messages.
14061
14062 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14063
14064         * glib/dbus-glib.h:
14065         * glib/dbus-gthread.c: (dbus_gthread_init):
14066         Don't use the gdbus prefix for public functions.
14067
14068 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14069
14070         * Makefile.am:
14071         * configure.in:
14072         Add GLib checks and fixup .pc files
14073
14074         * glib/Makefile.am:
14075         * glib/dbus-glib.h:
14076         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14077         (gdbus_connection_check), (gdbus_connection_dispatch),
14078         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14079         (dbus_connection_gsource_new):
14080         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14081         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14082         * glib/test-dbus-glib.c: (message_handler), (main):
14083         Add GLib support.
14084
14085 2002-12-15  Harri Porten  <porten@kde.org>
14086
14087         * autogen.sh: check for libtoolize before attempting to use it
14088
14089         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14090         struct.
14091
14092         * .cvsignore: ignore more stamp files
14093
14094         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14095
14096         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14097         without make install.
14098
14099 2002-12-15  Havoc Pennington  <hp@pobox.com>
14100
14101         * dbus/dbus-threads.c: add thread stubs that a higher library
14102         layer can fill in. e.g. the GLib wrapper might fill them in with
14103         GThread stuff. We still need to use this thread API to
14104         thread-safe-ize the library.
14105
14106 2002-12-12  Havoc Pennington  <hp@pobox.com>
14107
14108         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14109         below new interfaces and include fewer system headers.
14110
14111         * dbus/dbus-sysdeps.c (_dbus_read): new function
14112         (_dbus_write): new function
14113         (_dbus_write_two): new function
14114         (_dbus_connect_unix_socket): new function
14115         (_dbus_listen_unix_socket): new function
14116
14117         * dbus/dbus-message-internal.h: change interfaces to use
14118         DBusString
14119
14120 2002-12-11  Havoc Pennington  <hp@pobox.com>
14121
14122         * dbus/dbus-types.h: add dbus_unichar
14123
14124         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14125
14126         * dbus/dbus-connection.c (dbus_connection_send_message): return
14127         TRUE on success
14128
14129         * dbus/dbus-transport.c: include dbus-watch.h
14130
14131         * dbus/dbus-connection.c: include dbus-message-internal.h
14132
14133         * HACKING: add file with coding guidelines stuff.
14134
14135         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14136         handling here, for security purposes (as in vsftpd). Not actually
14137         using this class yet.
14138
14139         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14140         system/libc usage here, as in vsftpd, for ease of auditing (and
14141         should also simplify portability). Haven't actually moved all the
14142         system/libc usage into here yet.
14143
14144 2002-11-25  Havoc Pennington  <hp@pobox.com>
14145
14146         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14147         always print the first verbose message.
14148
14149 2002-11-24  Havoc Pennington  <hp@pobox.com>
14150
14151         * test/echo-client.c, test/echo-server.c: cheesy test
14152         clients.
14153
14154         * configure.in (AC_CHECK_FUNCS): check for writev
14155
14156         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14157         function
14158
14159         * dbus/dbus-list.c (_dbus_list_foreach): new function
14160
14161         * dbus/dbus-internals.c (_dbus_verbose): new function
14162
14163         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14164         representing a server that listens for connections.
14165
14166         * dbus/.cvsignore: create
14167
14168         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14169         public API for reporting errors
14170
14171         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14172         public object representing a connection that
14173         sends/receives messages. (Same object used for
14174         both client and server.)
14175
14176         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14177         Basic abstraction for different kinds of stream
14178         that we might read/write messages from.
14179
14180 2002-11-23  Havoc Pennington  <hp@pobox.com>
14181
14182         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14183         _DBUS_INT_MAX
14184
14185         * dbus/dbus-test.c (main): add list test, and include
14186         dbus-test.h as intended
14187
14188         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14189         (_dbus_hash_table_remove_int): return value indicates
14190         whether the entry existed to remove
14191
14192         * dbus/dbus-list.c: add linked list utility class,
14193         with docs and tests
14194
14195         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14196         array sometimes.
14197
14198 2002-11-23  Havoc Pennington  <hp@pobox.com>
14199
14200         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14201         DBUS_END_DECLS to nothing, that should fix this once and for all
14202
14203         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14204
14205         * dbus/dbus-message.c, dbus/dbus-hash.c:
14206         add some missing @brief
14207
14208 2002-11-23  Havoc Pennington  <hp@pobox.com>
14209
14210         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14211         to avoid confusing Doxygen
14212
14213         * dbus/dbus-hash.c: @} not }@
14214
14215         * dbus/dbus-message.c (struct DBusMessage): split out
14216         internals docs
14217
14218 2002-11-23  Havoc Pennington  <hp@pobox.com>
14219
14220         * configure.in: pile on more warning flags if using gcc
14221
14222         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14223         to document static functions
14224
14225         * configure.in: add summary to end of configure so it
14226         looks nice and attractive
14227
14228         * dbus/dbus-hash.c: finish implementation and write unit
14229         tests and docs
14230
14231         * configure.in: add --enable-tests to enable unit tests
14232
14233         * dbus/dbus-test.c: test program to run unit tests
14234         for all files in dbus/*, initially runs a test for
14235         dbus-hash.c
14236
14237         * dbus/dbus-internals.h: file to hold some internal utility stuff
14238
14239 2002-11-22  Havoc Pennington  <hp@redhat.com>
14240
14241         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14242         "ported" away from Tcl
14243
14244         * dbus/dbus-types.h: header for types such as dbus_bool_t
14245
14246 2002-11-22  Havoc Pennington  <hp@redhat.com>
14247
14248         * dbus/dbus.h: fixups for doc warnings
14249
14250         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14251         macros
14252         (QUIET): make it quiet so we can see warnings
14253
14254         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14255
14256 2002-11-22  Havoc Pennington  <hp@redhat.com>
14257
14258         * Makefile.am: include "Doxyfile" target in all-local
14259
14260         * configure.in: generate the Doxyfile
14261
14262         * Doxyfile.in: move Doxyfile here, so we can use
14263         configure to generate a Doxyfile with the right
14264         version number etc.
14265
14266 2002-11-22  Havoc Pennington  <hp@redhat.com>
14267
14268         * dbus/dbus-message.c: move inline docs into .c file
14269
14270         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14271         so all docs are under doc/
14272         (MAN_EXTENSION): generate man pages. Use extension
14273         ".3dbus" which matches ".3qt" on my system,
14274         I guess this is OK, I don't know really.
14275         (FILE_PATTERNS): look for .c files not .h, makes sense
14276         for plain C I think
14277
14278 2002-11-22  Havoc Pennington  <hp@pobox.com>
14279
14280         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14281         because any app can be a server, and any app can be a client,
14282         the bus is a special kind of server.
14283
14284 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14285
14286         * Doxyfile : adding. Still needs Makefile rules to be generated
14287         automatically (just run "doxygen" in the toplevel dir for now to
14288         generate docs)
14289
14290         * dbus/dbus-message.h : Adding sample docs (javadoc since
14291         resembles gtk-doc a little more)
14292
14293         * dbus/dbus.h : Adding sample docs
14294
14295 2002-11-21  Havoc Pennington  <hp@redhat.com>
14296
14297         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14298         so we can allow ourselves to include files directly,
14299         instead of having to use dbus.h
14300
14301         * dbus/dbus.h: fill in
14302
14303         * dbus/dbus-message.h: sketch out a sample header file.
14304         Include griping if you include it directly instead of
14305         via dbus.h
14306
14307         * dbus/dbus-macros.h: new file with macros for extern "C",
14308         TRUE/FALSE, NULL, etc.
14309
14310         * doc/file-boilerplate.c: put include guards in here
14311
14312 2002-11-21  Havoc Pennington  <hp@redhat.com>
14313
14314         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14315
14316         * COPYING: include the GPL as well, and license code
14317         under both AFL and GPL.
14318
14319 2002-11-21  Havoc Pennington  <hp@redhat.com>
14320
14321         * acconfig.h: get rid of this
14322
14323         * autogen.sh (run_configure): add --no-configure option
14324
14325         * configure.in: remove AC_ARG_PROGRAM to make
14326         autoconf complain less. add AC_PREREQ.
14327         add AC_DEFINE third arg.
14328
14329 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * doc/Makefile.am:
14332         Fix references so we can distcheck.
14333
14334 2002-11-21  Havoc Pennington  <hp@redhat.com>
14335
14336         * Initial module creation
14337