* doc/TODO: Removed dtd publishing item.
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
2
3         * doc/TODO: Removed dtd publishing item.  
4         It seems the dtd has already been added at
5         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
6
7 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
8
9         * doc/TODO, various source files: Audited todo's and FIXME's and
10         prepended the ones we should be looking at with 1.0.  Those
11         prepended with 1.0? need clerification or might not be needed
12         for 1.0
13
14 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
15
16         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
17         NULL in the public API (Patch from Kimmo Hämäläinen 
18         <kimmo dot hamalainen at nokia dot com>)
19
20 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
21
22         * configure.in: Fix for OS-X compile time endian issues (patch from
23         Benjamin Reed <ranger at befunk dot com>)
24
25 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
26
27         * configure.in: Check for no-common compiler flag (OS-X fix from
28         Benjamin Reed <ranger at befunk dot com>)
29
30 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
31
32         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
33         <fcrozat at mandriva dot com>)
34
35 2006-08-29  Havoc Pennington  <hp@redhat.com>
36
37         * test/test-service.c (path_message_func): fix lack of return value
38
39         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
40         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
41         any more sense than on anything else in this file.
42         (_dbus_get_tmpdir): add const to return value, and keep the
43         results of the various getenv around in a static variable.
44
45 2006-08-29  Havoc Pennington  <hp@redhat.com>
46
47         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
48         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
49
50 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
51
52         * test/Makefile.am: change find to use syntax that works with non
53         gnu versions of find
54
55 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
56
57         * dbus/dbus-transport.c: fix invalid deref when checking if
58         a vtable method exists (Patch from Christian Ehrlicher 
59         <ch dot ehrlicher at gmx dot de>)
60
61 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
62
63         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
64         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
65         to build with builddir != srcdir (Taken from a patch by Bernard Leak
66         <bernard at brenda-arkle dot demon dot co dot uk>)
67
68 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
69
70         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
71         default case
72
73 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
74
75         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
76         it works on any system providing this interface, not only FreeBSD.
77         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
78
79 2006-08-20  Havoc Pennington  <hp@redhat.com>
80
81         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
82         the docs
83
84 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
85
86         * Released 0.92 
87
88 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
89
90         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
91         to reflect the init late change
92
93         * bus/bus.c (bus_context_new): Check user before we fork so we can
94         print out an error message a user will be able to see
95
96 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
97
98         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
99
100         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
101         Add two more global locks for use on windows platforms.  These are
102         unused on non-windows platforms but are not ifdefed out to avoid
103         potential bugs (i.e. the few bytes lost does not warrent the extra
104         maintanence and complexity that having seperate sets of locks would
105         cause)
106
107 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
108
109         * bus/services.c (bus_registry_acquire_service): Return an error
110         when an application tries to register the org.freedesktop.DBus Bus Name
111
112         * bus/services.c (bus_registry_release_service): Return an error
113         when an application tries to release the org.freedesktop.DBus Bus Name
114
115 2006-08-17  Alp Toker  <alp@atoker.com>
116
117         * doc/dbus-specification.xml: Fix some minor typos.
118
119 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
120
121         * configure.in: use $with_init_scripts instead of $operating_system
122         to determine where to store the pid since the init scripts manipulate 
123         the pid file (patch from Marcelo Ricardo Leitner 
124         <marcelo dot leitner at terra dot com dot br>.  
125
126 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
127
128         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
129         static DBusList *uninitialized_condvar_list to support new late 
130         initialization threading model.  In this model threads can be initialized
131         even after the D-Bus API has been used but still needs to be initialized 
132         before the second thread has been started.  Mutexes and condvar addresses
133         are stored in the two static lists and are replaced with actuall locks
134         when threads are initalized.
135         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
136         the location into the static list
137         (_dbus_mutex_free_at_location): New method for removing a mutex location 
138         from the static list and freeing the mutex
139         (_dbus_condvar_new_at_location): New method for creating a conditional 
140         variable and placing the location into the static list
141         (_dbus_condvar_free_at_location): New method for removing a conditional
142         variable location from the static list and freeing the conditional variable 
143         (init_uninitialized_locks): Atomic method which goes through the static 
144         lists of mutex and condvar location and updates them with actuall locks
145         (init_global_locks): changed to init_locks
146         
147         * dbus/dbus-connection.c:
148         (_dbus_connection_test_get_locks): New method for tests to check connections
149         (_dbus_connection_new_for_transport): Use the new at_location mutex and
150         condvar API
151         (dbus_connection_allocate_data_slot): Pass in the global lock address
152         to _dbus_data_slot_allocator_alloc
153
154         * dbus/dbus-dataslot.c:
155         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
156         instead of the mutex itself
157
158         * dbus/dbus-message.c:
159         (dbus_message_allocate_data_slot): Pass in the global lock address
160         to _dbus_data_slot_allocator_alloc
161
162         * dbus/dbus-pending-call.c:
163         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
164         to _dbus_data_slot_allocator_alloc
165
166         * dbus/dbus-server.c:
167         (_dbus_server_init_base): Use the new at_location mutex API
168         (dbus_server_allocate_data_slot): Pass in the global lock address
169         to _dbus_data_slot_allocator_alloc
170
171         * test/name-test/test-threads-init.c: New test case for late thread
172         initialization
173
174 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
175
176         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
177         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
178         causes compile problems when asserts are turned off
179         Keeping _dbus_warn for printing out the message so even if
180         asserts are turned off the user gets the messages that something is 
181         wrong 
182
183 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
184
185         Patches by Kjartan Maraas <kmaraas at gnome dot org>
186
187         * bus/services.c (bus_service_list_queued_owners):
188         Add a pointer cast to fix compiler warning
189
190         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
191         return a NULL instead of FALSE since the return type
192         is not expecting a boolean
193
194         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
195         Remove unused variable
196
197         * dbus/dbus-marshal-recursive-util.c (node_new):
198         return a NULL instead of FALSE since the return type
199         is not expecting a boolean
200
201         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
202         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
203         because we are expecting a pointer not a boolean
204
205         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
206         add void as the parameter so some compilers
207         don't complain
208
209         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
210           _dbus_transport_new_for_tcp_socket):
211         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
212         because we are expecting a pointer not a boolean
213
214         * test/shell-test.c (test_command_line):
215         cast the second argument to _dbus_list_append to avoid compiler
216         warnings
217
218         * test/test-names.c (main): remove unused variable
219
220         * test/test-service.c (check_hello_from_self_reply):
221         Initialize echo_message and echo_reply to NULL
222         
223         * test/test-shell-service.c (handle_echo):
224         Remove unused variable and cast the third parameter passed to
225         dbus_connection_get_object_path_data to avoid compiler warrnings
226
227         * test/name-test/test-names.c (clear_message_queue):
228         Remove unused function
229
230         * test/name-test/test-pending-call-dispatch.c:
231         Fix format string in printf
232
233
234 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
235
236         * dbus/dbus-bus.c:
237         * test/name-test/test-names.c:
238         Remove test method dbus_bus_connection_get_unique_name because 
239         we already have public method dbus_bus_get_unique_name that 
240         does the exact same thing
241
242 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
243
244         * dbus/dbus-signature.c:
245         fix typos in Julio's previous patch which cause make check to fail
246
247 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
248
249         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
250         In any case it was wrong since this is a test checking to see if
251         address parsing is correct.  There was no need to get the true
252         tmp directory.  
253
254 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
255
256         * dbus/dbus-macros.h: Revert the addition of stddef.h
257         as we should not be adding it to library headers 
258
259 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
260
261         * dbus/dbus-signature.c:
262         Fix the unit tests so that they work if assertions are not enabled.
263         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
264
265 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
266
267         * tools/run-with-tmp-session-bus.sh:
268         * test/name-test/run-test.sh:
269         Remove bashisms (patch from Julio M. Merino Vidal
270         <jmmv at NetBSD dot org>)
271
272 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
273
274         * configure.in: add a version (>= 2.6.0) check for libxml2
275
276 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
277
278         * configure.in: make sure the compiler supports -Wfloat-equal
279         
280         * bus/dir-watch-dnotify.c: move functional code after 
281         variable declerations (C99 fix)  (patches from Jens Granseuer
282         <jensgr at gmx dot net>
283
284 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
285
286         * dbus/dbus-macros.h:
287         add #include <stddef.h> so that Sun compilers don't complain about
288         the defining NULL
289
290 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
291
292         * dbus/dbus-sysdeps.c:
293         * dbus/dbus-address.c:
294         * bus/activation.c:
295         * test/shell-test.c:
296         don't hardcode tmp directory (patch from Dave Meikle 
297         <dmk at davemeikle dot co dot uk>)
298
299 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
300
301         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
302         Change an assert to a detailed warning and abort.  
303         When allocator->lock != mutex it indicates that the user has failed
304         to initalize threads before using the D-Bus library.  This warning
305         helps the user identify the issue and fix their app.
306
307 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
308
309         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
310         with cleanups of bugs found from Coverity reports:
311
312         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
313         close the file on error to avoid a leak
314
315         * bus/expirelist.c (bus_expire_list_test):
316         Check for NULL on dbus_new0
317
318         * bus/activation.c (update_directory):
319         remove dead code
320
321         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
322         Fix some leaks
323
324         * bus/bus.c (process_config_every_time):
325         Fixed a leak
326
327         * bus/desktop-file.c (parse_key_value):
328         Fixed leak
329
330         * bus/selinux.c (bus_selinux_id_table_insert):
331         Fixed leak
332
333 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
334
335         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
336         remove dead code
337
338 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
339
340         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
341         #!/bin/bash
342
343 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
344
345         * Doxyfile.in: fix the INPUT line so we can generate docs 
346         when sourcedir != builddir (patch from Cygwin Ports maintainer
347         <yselkowitz at users dot sourceforge dot net>
348
349 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
350
351         * dbus/dbus-sysdeps.h:
352         * dbus/dbus-sysdeps.c: 
353         * dbus/dbus-string.c: 
354         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
355         GLib's function which does the same thing
356
357         * configure.in:
358         * bus/Makefile.am:
359         * bus/dir-watch-default.c:
360         * bus/dir-watch-dnotify.c:
361         * bus/dir-watch-kqueue.c:
362         Add kqueue directory watching for freebsd and split the directory
363         watching code into seperate files per method/arch
364         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
365
366 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
367
368         * configure.in:
369         * tools/Makefile.am:
370         * tools/dbus-launch.c:
371         * bus/Makefile.am:
372         allow --with-dbus-daemondir switch to be used to make the
373         daemon install to a seperate bindir like /usr/libexec
374         (patch from Brian Cameron <brian dot cameron at sun dot com)
375
376 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
377
378         * bus/Makefile.am (install-data-hook): removed the slash after 
379         $(DESTDIR) so we don't get the double slash which does not work
380         in windows (patch from Andras Porjesz 
381         <andras dot porjesz at siemens dot com>)
382
383 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
384
385         * dbus/dbus-sysdeps.h:
386         * dbus/dbus-sysdeps.c: 
387           add _dbus_printf_length (patch from Peter Kümmel 
388           <syntheticpp at gmx dot net>)
389
390 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
391
392         * dbus/dbus-internals.c: unistd.h is not used 
393         (_dbus_verbose_real): only enable verbose printing 
394         if DBUS_VERBOSE environment var is set to '1'
395         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
396
397 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
398
399         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
400         so we still compile on older gcc (patch from Frederic Peters 
401         <fpeters at 0d dot be>
402
403 2006-08-04  Havoc Pennington  <hp@redhat.com>
404
405         * configure.in: add -Wdeclaration-after-statement
406
407         * dbus/dbus-connection.c: change all the pending call stuff to
408         reflect the fact that pending call operations use the connection
409         lock
410
411         * dbus/dbus-pending-call.c: add locking here
412
413         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
414         field const consistent with how message field is done
415
416 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
417
418         * s/D-BUS/D-Bus/g
419
420 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
421
422         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
423         <in7y118 at public.uni-hamburg dot de> - fix invalid
424         read/write reported by valgrind
425
426 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
427
428         * Released 0.91
429
430 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
431
432         * dbus/dbus-connection.c:
433         (_dbus_connection_attach_pending_call_unlocked):
434         (connection_timeout_and_complete_all_pending_calls_unlocked):
435         Make sure we set timeout_added on pending calls to FALSE when
436         we remove the timeout from the connection
437
438 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
439
440         * Removed some extra bindings stuff lingering around (thanks timo)
441         * dbus-pendingcall.c (_dbus_pending_call_new): 
442         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
443         when we tried to take a lock on an already locked connection
444
445 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
446
447         * Released 0.90
448
449 2006-07-17  Havoc Pennington  <hp@redhat.com>
450
451         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
452         ints, reported by Owen Taylor
453
454 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
455
456         * doc/TODO:
457         * dbus/dbus-bus.c:
458         * dbus-errors.c:
459         * dbus/dbus-marshal-validate.c:
460           Removed TODO items which were fixed or are no longer relevent
461
462 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
463
464         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
465         Remove stray files from the stripped bindings
466
467 2006-07-16  Havoc Pennington  <hp@redhat.com>
468
469         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
470         Improve the error message on reply timeout
471
472 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
473
474         * Remove all bindings
475
476 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
477
478         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
479         and set pending_reply out arg to NULL is connection is disconnected
480         (connection_timeout_and_complete_all_pending_calls_unlocked): New
481         static method for cleaning up pending calls on disconnect
482         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
483         calls queued timeouts on disconnect 
484
485          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
486         Remove 
487
488 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
489
490         * bus/activation.[ch] (bus_activation_list_services): new function to 
491         get the list of services that can be activated
492
493         * bus/dispatch.c: test coverage for the new bus method
494         ListActivatableNames
495
496         * bus/driver.c: new bus method ListActivatableNames to get the list of
497         services that can be activated
498
499         * doc/dbus-specification.xml: ListActivatableNames method documentation
500
501 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
502         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
503         source files
504
505 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
506         * dbus/dbus-message-factory.c:
507         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
508
509 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
510         * dbus/dbus-connection-internal.h:
511         * dbus/dbus-connection.c:
512         * file dbus/dbus-pending-call.c:
513         * dbus/dbus-pending-call.h:
514         Make DBusPendingCall an opaque type even to D-Bus internals
515
516 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
517
518         * dbus/dbus-connection.h: remove connection_disconnect and replace with
519         connection_close
520
521         * dbus/dbus-connection.c: include dbus-bus.h
522         (_dbus_connection_read_write_dispatch): make static
523
524 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
525
526         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
527         function
528         (dbus_connection_dispatch): On disconnect unref any shared connections
529
530         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
531         for cleaning up shared connections on disconnect
532         (internal_bus_get): get a hard refrence to shared connections when
533         they are created
534         
535         * doc/TODO: Remove items which are no longer relevent or have been fixed
536         Split 1.0 todo items with a 0.90 freeze todo list
537  
538 2006-06-14  Ross Burton  <ross@openedhand.com>
539
540         * glib/dbus-gobject.c:
541         Free a leaking GArray (surely not!) in dbus_g_method_return.
542
543 2006-06-14  Ross Burton  <ross@openedhand.com>
544
545         * tools/Makefile.am:
546         * tools/dbus-monitor.c:
547         Don't use the GLib bindings in dbus-monitor (patch from Ralf
548         Habacker).
549         
550 2006-06-14  Ross Burton  <ross@openedhand.com>
551
552         * tools/dbus-print-message.c:
553         Also print the object path when outputting signals or method calls.
554
555 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
556
557         * qt/src/Makefile.am: install the qdbus.h header.
558         This allows people to actually use the installed code.
559
560 2006-06-12  Ross Burton  <ross@openedhand.com>
561
562         * glib/dbus-gproxy.c:
563         Don't leak a GArray when firing signals (thank Rob Taylor for review).
564
565 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
566
567         * Released 0.62
568
569 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
570
571         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
572         break pedantic builds. Closes bug 6043 (patch approved by
573         Havoc back in February).
574
575 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
576
577         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
578         that took a QDBusMessage parameter.
579         * qt/src/qdbusbus.h: Add a default flag for RequestName.
580         * qt/tools/dbus.cpp: Don't use automatic call because we might
581         be calling an async method: request a reply.
582
583 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
584
585         * test/qt/*: Update the testcases, including testing the new
586         functionality of sending null QByteArray and QString over the
587         bus. Add new headertest test and restore the old
588         qdbusxmlparser test.
589
590 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
591
592         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
593         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
594
595         * qt/examples/Makefile.am:
596         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
597         form.
598
599         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
600         QByteArray() (nulls) over the bus.
601         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
602         the one that has the signature suffix stripped.
603         * qt/src/qdbusreply.h: Make some methods const.
604
605 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
606
607         Patch from Timo Hoenig <thoenig@suse.de>.
608
609         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
610         required during build to EXTRA_DIST.
611         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
612         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
613         * configure.in: Fix "make dist", take care that the Makefile for
614         qt/dbus is being generated.
615
616 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
617
618         * bus/bus.c: Fix eavesdropping on method calls
619
620 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
621
622         * configure.in:
623         * dbus/dbus-userdb-util.c:
624         Add Solaris console owner patch from Artem Kachitchkine
625
626 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
627
628         * qt/Makfile.am:
629         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
630         reorganisation. Thanks to Timo Hoenig for pointing this out.
631
632 2006-06-06  Robert McQueen  <robot101@debian.org>
633
634         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
635           call to dbus_g_type_get_struct.
636
637 2006-06-06  Robert McQueen  <robot101@debian.org>
638
639         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
640           pointers were put into a GPtrArray-based specialised collection, and
641           then freed along with the array. GValues which you add into
642           collections or maps which have the NOCOPY flag set are assumed to not
643           belong to the caller, so rather than the existing pointer-stealing
644           semantics, they are copied instead. Given that the main consumers of
645           this abstraction are the bindings themselves, I don't think this is
646           too bad, but others should watch their choice of take vs set_static.
647
648 2006-06-06  Robert McQueen  <robot101@debian.org>
649
650         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
651           of g_slist_prepend not being used. Fixed copying of slist-based
652           specialised collections, then wrote a test case and found that it was
653           all broken. Went on to fix iterating and appending too. Good thing
654           nobody uses this code yet.
655
656 2006-06-06  Robert McQueen  <robot101@debian.org>
657
658         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
659           the iterators use gvalue_take_ptrarray_value (the GValues themselves
660           are discarded without unsetting, so it makes no difference whether
661           we take or set_static). Remove cases for G_TYPE_POINTER because
662           there really is nothing useful we can do with them in our
663           specialised types - we *need* boxed copy/free functions at the very
664           least.
665
666 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
667
668         * qt/dbus: Add directory. I had forgotten to add this
669         yesterday after the move...
670
671         * qt/examples/Makefile.am:
672         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
673
674         * qt/tools/Makefile.am:
675         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
676         Added feature to get and set properties.
677         Added validation of service, object path and interface names.
678
679         * qt/tools/dbusidl2cpp.cpp: Two new features:
680         1) Allow specifying both the header and the source file names,
681         by separating them with a colon.
682         2) Don't write an interface output if the -p switch wasn't
683         given, but the -a was.
684
685         * qt/src/*: Fix usage of Iterators and ConstIterators.
686         Fix shadowing of variables by other variables (-Wshadow).
687         Fix keyword-cleanliness in headers.
688         Fix ASCII-cast (QLatin1String, QLatin1Char).
689         Fix validation of member names.
690         Add extra checking of introspection data during XML parsing.
691         Various bug fixes.
692
693 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
694
695         * dbus/Makefile.am:
696         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
697         qt/dbus/qdbus.h now.
698
699 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
700
701         * configure.in: Make --disable-qt actually do
702           something. Patch inspired by Zack Rusin.
703
704 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
705
706         * qt/: Update to Subversion r548032.
707         This includes a big reorganisation of the files inside the
708         subdir.
709
710 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
711
712         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
713         clear:  
714         "Failed to connect to socket <host>:<port> <error>" instead of
715         "Failed to connect to socket <host>: <error>:<port>"
716
717         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
718         for a tcp transport. 
719
720 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
721
722         * qt/*: Update the QtDBus bindings up to revision 546310 in
723         Subversion.
724         This adds the dbuscpp2xml tool, that parses a C++ header and
725         outputs a D-BUS Introspection XML.
726
727 2006-05-21  Havoc Pennington  <hp@redhat.com>
728
729         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
730         is not NULL when it shouldn't be. Also a couple of possible fixes
731         for #4637 though I don't understand why the bug happens, to be
732         honest... also the object constructor has an assert name != NULL
733         and the name is only currently NULL for peer-to-peer proxies that 
734         I don't think anyone uses? So it should be asserting.
735         Anyway, for now at least see if we get an earlier assertion failure.
736
737         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
738         apparently broken code to be sure the tests fail and someone 
739         will fix them...
740
741 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
742
743         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
744         and arrays when they had a single element: has_next returns
745         false, even before you read the element. So, instead, check
746         the array length.
747
748 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
749
750         * qt/qdbusmessage.cpp:
751         * qt/qdbustypehelper_p.h:
752         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
753         the list is a const-reference
754
755 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
756
757         * Adding old doc patch that never got applied
758         
759         * dbus/bus.c (dbus_bus_add_match): Add documentation
760
761         * doc/dbus-specification.xml: Add documentation for the match rules
762           and the AddMatch and RemoveMatch methods
763
764 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
765
766         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
767         call (r535506)
768
769         * qt/dbusidl2cpp.cpp:
770         * qt/qdbusabstractadaptor.cpp:
771         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
772         sibling of the QDBusAbstractAdaptor objects instead of the
773         parent. (r535848)
774
775         * qt/dbusidl2cpp.cpp:
776         * qt/qdbusabstractinterface.cpp:
777         * qt/qdbusabstractinterface.h:
778         * qt/qdbusabstractinterface_p.h:
779         * qt/qdbusinterface.cpp: Make properties in interfaces
780         actually work. The code that was generated would not compile,
781         due to moc calls to functions that did not exist. They now
782         shall. (r536571)
783
784 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
785
786         * Makefile.am:
787         * configure.in:
788         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
789         Thanks to Brad Hards for providing the patch
790
791 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
792
793         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
794         call. (r535506)
795
796 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
797
798         * qt/examples/dbus.cpp: Enhance error messages and use
799         QDBusInterfacePtr.
800
801 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
802
803         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
804         and disable the copy operators. (r533772, r534746)
805
806         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
807
808         * qt/qdbusabstractinterface.cpp:
809         * qt/qdbusabstractinterface.h: Change the default call mode to
810         not use the event loop. Add convenience call() methods that
811         take a CallMode parameter. (r534042)
812
813         * qt/qdbusconnection.h: Change the default call mode to not
814         use the event loop. (r534042)
815
816         * qt/qdbusinterface.cpp:
817         * qt/qdbusinterface.h: Add a method to tell us if the
818         interface is valid (since we don't return a null pointer
819         anymore) (r534099)
820
821         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
822         (r534101)
823
824         * qt/qdbusinternalfilters.cpp: Decouple the introspection
825         function in two so taht we get the chance to introspect
826         without having a QDBusMessage (r534102)
827
828         * qt/qdbusbus.h:
829         * qt/qdbusconnection.cpp:
830         * qt/qdbusconnection_p.h:
831         * qt/qdbusintegrator.cpp: Keep a list of our own names to
832         avoid a round-trip to the server when attempting to introspect
833         one of our own objects. Also make sure the filter functions
834         match the empty interface as well. (r534108)
835         Don't keep the connection names. Instead, trust the unique
836         connection name (r534111)
837         Remove event loop usage (r534112)
838
839 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
840
841         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
842         Brad Hards.
843
844 2006-04-28  Robert McQueen  <robot101@debian.org>
845
846         * glib/dbus-gproxy.c: Fix properties so that they can be given in
847         any order, making it easier for people who inherit from this
848         object.
849
850 2006-04-28  Robert McQueen  <robot101@debian.org>
851
852         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
853         of memory from within pointer arrays and lists. Fixes bug #6300.
854
855 2006-04-28  Robert McQueen  <robot101@debian.org>
856
857         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
858         generating struct signatures. Fixes bug #6083.
859
860 2006-04-28  Robert McQueen  <robot101@debian.org>
861
862         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
863         to qdbusconnection_p.moc.
864
865 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
866
867         * README, INSTALL: Doc fixes
868         Patch from Brad Hards <bradh at frogmouth.net>
869
870 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
871
872         * qt/examples/dbus.cpp: Use the new merged-interface mode for
873         the dynamic meta object. No need to guess which interface to
874         call.
875
876 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
877
878         * qt/qdbusconnection_p.h:
879         * qt/qdbusmetaobject.cpp:
880         * qt/qdbusmetaobject_p.h:
881         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
882         for the dynamic meta object. No need to guess which
883         interface to call.
884         * qt/qdbusabstractinterface_p.h:
885         * qt/qdbusconnection.cpp:
886         * qt/qdbusintegrator.cpp:
887         * qt/qdbusinterface.cpp:
888         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
889         Add a QDBusRef that looks and behaves like DCOPRef.
890
891 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
892
893         * dbus/dbus-connection.c: Interfaces are optional in method
894         calls, so don't give up if the interface parameter is NULL.
895         Patch reviewed by Havoc Pennington.
896
897 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
898
899         * qt/qdbusreply.h: Add default constructor and operator=
900           (r532625)
901         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
902           in public headers (r532952)
903         * qt/qdbusabstractinterface.cpp:
904         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
905           make it the default (r532951)
906
907 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
908
909         * dbus/dbus-connection.c: Fix asserts
910         Patch from Tim Moloney <t.moloney at verizon.net>
911
912 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
913
914         * mono/Connection.cs, mono/Message.cs: Check Target type
915         Patch from Aaron Bockover (abockover at novell.com)
916
917 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
918
919         * INSTALL: fine-tune the requirements for the Qt4 binding.
920
921 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
922
923         * tools/dbus-print-message.c: Added support for printing of all 
924           remaining data types. Fixed logic for indentation of compound
925           data types.
926         
927 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
928
929         * INSTALL: fill out content of file providing DBus specific
930           build installations, followed by generic Auto* INSTALL file
931           content
932         
933 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
934
935         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
936           Patch by Stefan Eilers. (r529537)
937
938 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
939
940         * qt/qdbusinternalfilters.cpp: Don't show the parent's
941           contents (r528208)
942
943 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
944
945         * qt/Makefile.am: fix the dependency for
946           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
947           not in qdbusconnection.cpp.
948           Thanks to Jakub Stachowski <stachowski@hypair.net> for
949           spotting this.
950
951 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
952
953         * qt/examples/listnames.cpp:
954         * qt/examples/Makefile.am: Three ways to list the names on the
955           bus.
956
957 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
958
959         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
960           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
961
962 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
963
964         Merge from Subversion:
965         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
966           something that exists (r526315)
967         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
968           slots/signals (r526316)
969         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
970           also return an unknown-method error if the parameters don't
971           match for org.freedesktop.DBus.Properties. (r526842)
972         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
973         * qt/qdbusintegrator.cpp: Restore the proper order of
974           delivery: don't make method returns be delivered on priority
975           (r528150)
976
977 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
978
979         * configure.in qt/Makefile.am: add qt/examples
980         * qt/examples: Add QtDBus example programs:
981           - hello: Hello, World
982           - ping: Simple method-calling program
983           - pong: Simple object-exporting program (not using adaptors)
984           - complexping: Interactive method-calling program 
985                 (also gets and sets properties).
986           - complexpong: Sample program exporting methods, signals and
987                 properties, using adaptors.
988           - dbus: Simple implementation of a generic method-calling
989                 program, similar to 'dbus-send', but with semantics
990                 similar to 'dcop'.
991           - chat: Simplistic chat program, implemented using signals
992                 and the system bus. Looks like IRC.
993
994 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
995
996         * configure.in: Detect QtGui (necessary for one of the
997           example programs). Note: this increases the minimum required
998           version of Qt to 4.1.3.
999
1000 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1001
1002         * test/qt/*: Sync with KDE Subversion revision 523647.
1003         Update the testcases to the new API. Remove testcases for
1004         classes that are no longer public or have been removed.
1005
1006 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1007
1008         * qt/*: 
1009         * dbus/qdbus.h: Sync with KDE Subversion revision
1010         523647. Hopefully, this will be the last of the
1011         source-incompatible changes. Documentation has been improved;
1012         support for QList<basic-types> has been added; QDBusObject is
1013         gone; QDBus(Abstract)Interface is now a QObject with
1014         auto-generated meta-object; QDBusIntrospection is marked
1015         private, since QMetaObject can be used now; lots of bugfixes.
1016
1017 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1018
1019         Patch from Milosz Derezynski <internalerror at gmail.com>
1020         
1021         * configure.in:
1022         Output the service directory in the configure summary
1023
1024         * dbus-1.pc.in:
1025         Add session_bus_services_dir
1026
1027 2006-03-10  Ross Burton  <ross@openedhand.com>
1028
1029         * tools/dbus-print-message.c:
1030         Add support for object paths and signatures.
1031
1032 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1033
1034         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1035         config reload.
1036         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1037         information caches
1038         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1039         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1040         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1041         * dbus/dbus-userdb.h: Add function to flush all user/group information
1042         caches.
1043
1044 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1045
1046         * qt/dbusidl2cpp.cpp:
1047         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1048         for dcopidl2cpp, found in the KDE installations (or the more
1049         modern kalyptus): generate Qt4 C++ code for the input XML
1050         introspection. Currently no IDL parsing.
1051
1052 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1053
1054         * test/qt/*: Update the self-tests.
1055
1056 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1057
1058         * qt/*: 
1059         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1060         represents the first feature-complete version of the Qt4
1061         bindings since I took ove maintainership.
1062
1063 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1064
1065         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1066         dir. This is C++, so we can't use the DBus ones.
1067
1068 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1071         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1072
1073 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * dbus/dbus-connection.c: 
1076         (_dbus_connection_block_pending_call):
1077         Check to see if our data has already been read off the connection
1078         by another blocking pending call before we block in poll.
1079         (check_for_reply_and_update_dispatch_unlocked):
1080         Code taken from _dbus_connection_block_pending_call - checks for
1081         an already read reply and updates the dispatch if there is one.
1082
1083         * test/name-test/test-pending-call-dispatch.c:
1084         New test for making sure we don't get stuck polling a 
1085         dbus connection which has no data on the socket when
1086         blocking out of order on two or more pending calls.
1087
1088 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1089
1090         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1091         make/automake don't detect that we're talking about the same
1092         .lo file if I specify the full path to the source files.
1093
1094 2006-02-26  Havoc Pennington  <hp@redhat.com>
1095
1096         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1097
1098         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1099         session bus variable is unset, suggest "man dbus-launch" and "man
1100         dbus-daemon" to figure out how to fix the problem
1101
1102 2006-02-25  Havoc Pennington  <hp@redhat.com>
1103
1104         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1105         should make this thing use the new glib options parser
1106
1107 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1108
1109         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1110         .lo files taking moc sources.
1111
1112 2006-02-25  Havoc Pennington  <hp@redhat.com>
1113
1114         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1115         and install it as a public header
1116
1117 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1118
1119         * Released 0.61
1120
1121 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1122         
1123         * proxies.py: Fix the callchain
1124
1125 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1126         
1127         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1128
1129         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1130         dbus/dbus-sysdeps.c
1131
1132         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1133         call _dbus_group_info_free_allocated which causes infinite loop,
1134         correctly call _dbus_group_info_free
1135
1136 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1137
1138         * qt/qdbusinterface_p.h:
1139         * qt/qdbusinterface.cpp: Use the standard
1140         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1141         calls instead of creating one for us.
1142
1143         * qt/qdbusconnection_p.h:
1144         * qt/qdbusintegrator.cpp: Remove debugging code.
1145
1146         * qt/qdbusintegrator.cpp:
1147         * qt/qdbusmessage.cpp:
1148         * qt/qdbusmessage_p.h:
1149         * qt/qdbusmessage.h: Change the behaviour of automatic
1150         reply-sending: now a reply is always sent, unless the caller
1151         didn't request one or if the user slot has already sent one.
1152
1153 2006-02-16  Robert McQueen  <robot101@debian.org>
1154
1155         * configure.in: Patch from Debian packages by Sjoerd Simons
1156         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1157         arguments so it's possible to build both bindings in the
1158         same tree.
1159
1160         * qt/Makefile.am: Fix truncated value so that make dist works.
1161
1162 2006-02-16  Robert McQueen  <robot101@debian.org>
1163
1164         * acinclude.m4, configure.in: Patch from Brad Hards
1165         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1166         improving quoting, re-ordering a few checks, and a few other
1167         aesthetic tidy-ups.
1168
1169 2006-02-16  Robert McQueen  <robot101@debian.org>
1170
1171         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1172         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1173         assertion that the next element to read from the iter is fixed in
1174         size. This is not the case when you are at the end of the iter,
1175         because the next element type is INVALID.
1176
1177         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1178         a bogus assert which means that you may not initialise a 0-length
1179         string unless you provide a non-NULL pointer. This prevented
1180         you from marshalling messages containing zero-length arrays in
1181         some cases.
1182
1183         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1184         from Rob to correct bogus asserts when trying to demarshal an
1185         array and get_fixed_array got you 0 elements. Append nothing to
1186         the GArray in this case.
1187
1188         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1189         an empty array via the glib bindings. Without all of the above
1190         patches, this new test fails.
1191
1192 2006-02-16  Robert McQueen  <robot101@debian.org>
1193
1194         * glib/dbus-gmain.c: Make the previous commit compile.
1195
1196         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1197         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1198         specify sender_keyword="foo", path_keyword="bar" when adding
1199         a signal listener, so that you can bind to signals generically
1200         but still do something useful in your callback.
1201
1202         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1203         chars so that they're not cast to chars and made negative. Thanks
1204         to Jakub Stachowski for reporting this and testing the fix.
1205
1206 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1207
1208         * dbus/dbus-glib.h:
1209         * glib/dbus-gmain.h:
1210         (dbus_g_connection_open): new method for openning
1211         a connection to an arbitrary address in the glib bindings
1212
1213         * ChangeLog: checkin last entry which doesn't seem to be commited
1214
1215 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1216
1217         * tools/dbus-launch.c: Fixed sh syntax output
1218
1219 2006-02-13  Robert McQueen  <robot101@debian.org>
1220
1221         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1222         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1223         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1224         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1225         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1226         missing piece of the glib bindings jigsaw puzzle. This modifies
1227         the existing specialised types to have N type parameters (rather
1228         than the current 1 or 2 for arrays and dictionaries respectively).
1229         You can then use this to get a glib type to represent any arbitrary
1230         D-Bus struct type using dbus_g_type_get_struct. The only
1231         implementation of these types is with GValueArrays as before,
1232         but it's now possible to store these in arrays, emit them in
1233         signals, etc.
1234
1235 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1238         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1239         <thiago.macieira at trolltech.com>
1240
1241 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1242
1243         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1244         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1245
1246 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * bus/connection.c (bus_connections_expect_reply): Make
1249         pending reply limit not common to all connections (Bug #5416)
1250         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1251
1252 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1253
1254         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1255
1256 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1257
1258         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1259         patch from Doug Goldstein <cardoe at gentoo.org>
1260
1261 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1262
1263         * mono/Arguments.cs: Fix a magic number in the mono bindings
1264         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1265
1266 2006-01-27  Robert McQueen  <robot101@debian.org>
1267
1268         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1269         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1270         when generating the client-side methods, instead of overloading
1271         CSymbol which broke everything horribly. My apologies.
1272
1273 2006-01-27  Robert McQueen  <robot101@debian.org>
1274
1275         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1276         by me and Rob Taylor to add a simple_free function to D-Bus map
1277         and collection types, which allows those types which can be freed
1278         with a GDestroyNotify (such as GHashTables and GArrays, but not
1279         GPtrArrays) to be stored as the values in hashtables.
1280
1281         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1282         Patch by Rob Taylor to add nested dicts to the glib tests to check
1283         the above code works, and appears not to leak when called repeatedly.
1284
1285 2006-01-27  Robert McQueen  <robot101@debian.org>
1286
1287         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1288         to free a D-Bus allocated string with dbus_free () instead of
1289         g_free ().
1290
1291 2006-01-27  Iain Holmes  <iain@openedhand.com>
1292
1293         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1294         method from being called multiple times.
1295
1296 2006-01-19  Robert McQueen  <robot101@debian.org>
1297
1298         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1299         <rob.taylor@collabora.co.uk> to add support for generating bindings
1300         to arrays that are represented as GPtrArrays rather than GArrays (ie
1301         size-variable things, such as strings, objects, structs, etc).
1302
1303 2006-01-05  Robert McQueen  <robot101@debian.org>
1304
1305         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1306         <ricardo.kekki@movial.fi> to make it possible to inherit from
1307         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1308         a private part, and moving the setting of the DBusGProxyManager into a
1309         connection property, allowing proper GObject construction.
1310
1311 2006-01-05  Robert McQueen  <robot101@debian.org>
1312
1313         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1314         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1315         annotations when generating glib client bindings.
1316
1317 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1318
1319         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1320
1321         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1322
1323 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1326
1327 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1328
1329         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1330
1331 2005-12-19  Ross Burton  <ross@openedhand.com>
1332
1333         * doc/dbus-tutorial.xml:
1334         Document the Glib client-side bindings, and list all possible annotations.
1335
1336 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * dbus/bus.c (dbus_bus_release_name): Add documentation
1339
1340 2005-12-06  Robert McQueen  <robot101@debian.org>
1341
1342         * python/service.py: s/sucessful/successful/ so we're allocating to
1343         and reading from the same variable. Oops.
1344
1345 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1346
1347         * Released 0.60
1348
1349 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * test/qt/Makefile.am: build from srcdir
1352
1353         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1354         Note - this code is wrong and needs to be fixed by the Qt binding
1355         developers.  The flags should be treated as bitfields and not enums.
1356
1357         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1358
1359 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1360
1361         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1362           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1363           in production code
1364
1365 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1366
1367         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1368         method for getting messages off the bus in the absence of a
1369         mainloop.  This method is much like 
1370         dbus_connection_read_write_dispatch except it does not dispatch
1371         the messages to a registered filter function.  Instead it
1372         allows a developer to process messages by directly popping
1373         them off the bus.
1374
1375 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1376
1377         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1378         the parser to continue instead of returning error
1379         (bus_desktop_file_load): Do not free parser data when
1380         parse_section_start or parse_key_value fails because it was 
1381         already freed by parser_free (patch from Carlos Garcia Campos  
1382         <carlosgc at gnome.org>)
1383
1384 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1385
1386         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1387         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1388         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1389         test/test-segfault.c, test/test-utils.c,
1390         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1391         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1392         Various cleanup of dead code and compiler warnings (patch from
1393         Kjartan Maraas <kmaraas at gnome.org>) 
1394
1395 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1396
1397         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1398         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1399
1400 2005-11-27  Robert McQueen  <robot101@debian.org>
1401
1402         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1403         part of the preceding one. Oops. Merge patch by Johan Hedberg
1404         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1405         on big-endian platforms.
1406
1407         * test/python/test-client.py: Add some 16-bit integers to the test
1408         values.
1409
1410 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1411
1412         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1413         method return message for property getters
1414
1415 2005-11-27  Robert McQueen  <robot101@debian.org>
1416
1417         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1418         with type v of an instance of dbus.Variant(foo, type='x') caused
1419         it to be boxed twice before sending over the bus.
1420
1421         * python/dbus_bindings.pyx, python/service.py,
1422         test/python/test-client.py: Update the constants for the new
1423         request_name flags, and update comments/test cases now that queueing
1424         is the default action.
1425
1426 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1427
1428         * configure.in:
1429         - Change version to 0.60 for impending release
1430         - upped the sonames because of ABI and API breakage
1431
1432 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1433
1434         * configure.in: Add test/name-test/Makefile to the generated
1435         Makefile list
1436
1437         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1438         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1439         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1440         not to queue an ower if it can't be the primary owner
1441
1442         * bus/bus.h: Add new internal BusOwner struct
1443
1444         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1445         to bus_registry_ensure and don't set the prohibit_replacement flag
1446         since they are now set per BusOwner and not per name.
1447         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1448         that returns the list of connections in a name's connection queue
1449         
1450         * bus/services.c (struct BusService): remove prohibit_replacement field
1451         (struct BusOwner): new struct for keeping track of queued connections
1452         and their associated flags for the queue
1453         (struct BusRegistry): add a BusOwner memory pool
1454         (bus_registry_new): initialize the BusOwner memory pool
1455         (bus_registry_unref): free the BusOwner memory pool
1456         (_bus_service_find_owner_link): new internal method for
1457         searching the queue for a specific connection
1458         (bus_owner_set_flags): new method for adding setting the flags on a
1459         bus owner
1460         (bus_owner_new): new method that creates a BusOwner object from the
1461         pool and sets its flags
1462         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1463         (bus_registry_ensure): Add the flags parameter
1464         (bus_registry_acquire_service): Switch from using raw connections to
1465         using the BusOwner struct
1466         Add new state machine for dealing with the new set of flags
1467         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1468         cancel_ownership, free_ownership_cancel_data, 
1469         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1470         restore_ownership, free_ownership_restore_data, 
1471         add_restore_ownership_to_transaction): Switch to using BusOwner 
1472         instead of raw connections
1473         (bus_service_add_owner): Add flags parameter
1474         Switch to using BusOwner instead of raw connections
1475         Add state machine for dealing with the new set of flags
1476         (bus_service_swap_owner): Swaps the first and second owners in the
1477         queue.  Used to make sure proper signals are sent when a service looses 
1478         or gains primary ownership.  We never insert an owner at the top of the
1479         queue.  Instead we insert it in the second position and then swap.
1480         (bus_service_remove_owner): Remove the owner from the queue sending
1481         out the NameLost and NameOwnerChanged signals if the we were the 
1482         primary owner
1483         (bus_service_get_primary_owners_connection): New method that extracts
1484         the connection from the primary owner
1485         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1486         connection
1487         (bus_service_get_allow_replacement): Changed from the old 
1488         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1489         primary owner and returns if it can be replaced or not
1490         (bus_service_set_prohibit_replacement): removed
1491         (bus_service_has_owner): returns TRUE if and owner with
1492         the specified connection exists in the queue
1493         
1494         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1495         method that only compiles if tests are enabled.  Allows us to get the 
1496         unique name of a connection so we can check it against the queue when
1497         doing regression tests
1498
1499         * bus/activation.c (bus_activation_send_pending_auto_activate),
1500         bus/dispatch.c (bus_dispatch),  
1501         bus/driver.c (bus_driver_handle_get_service_owner, 
1502         bus_driver_handle_get_connection_unix_user, 
1503         bus_driver_handle_get_connection_unix_process_id,
1504         bus_driver_handle_get_connection_selinux_security_context),
1505         bus/signals.c (connection_is_primary_owner): 
1506         use bus_service_get_primary_owners_connection instead of
1507         bus_service_get_primary_owner
1508
1509         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1510         _dbus_listen_unix_socket): Calculate the length of the socket
1511         path and use that instead of using a fixed length which was
1512         causing socket names to contain many trailing Nul bytes.
1513
1514         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1515         (dbus_g_method_get_sender): New method for extracting the sender 
1516         from a DBusGMethodInvocation
1517         (dbus_g_method_return_get_reply): changed name to 
1518         dbus_g_method_get_reply
1519         (dbus_g_method_return_send_reply): changed name to
1520         dbus_g_method_send reply
1521
1522         * doc/dbus-specification.xml: New docs that describe how the new
1523         queueing system works and talks about the changes to the how
1524         we specify socket names
1525
1526         * glib/examples/example-service.c, 
1527         glib/examples/example-signal-emitter.c,
1528         glib/examples/statemachine/statemachine-server.c:
1529         Changed the RequestName flags to the new system
1530
1531         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1532         regression test suite for testing various states of the new
1533         queueing system
1534         
1535 2005-11-15  Robert McQueen  <robot101@debian.org>
1536
1537         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1538         Taylor to add two methods, dbus_g_method_return_get_reply and
1539         dbus_g_method_return_send_reply, to allow you to get the reply
1540         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1541         and send it. The GLib bindings can't marshal a return value of
1542         something like a(s) if the array is empty - ultimately they should be
1543         made to heed the signature of the out arguments as the Python bindings
1544         now can, but this is a workable interim solution which might have
1545         other applications.
1546
1547 2005-11-15  Robert McQueen  <robot101@debian.org>
1548
1549         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1550         method to org.freedesktop.DBus to release a bus name or give up
1551         waiting in the queue for it.
1552
1553         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1554         dbus_bus_release_name method to send the ReleaseName method calls.
1555         Add constants for the return values to dbus/dbus-shared.h.
1556
1557         * doc/dbus-specification.xml: Document the new ReleaseName method
1558         in the specification.
1559
1560         * python/dbus_bindings.pyx: Add a low-level python binding for the
1561         release name method.
1562
1563         * python/exceptions.py, python/service.py: Make freeing BusName
1564         objects release the name. Add a NameExistsException, and fix a
1565         bug with creating UnknownMethodException.
1566
1567         * test/python/test-client.py: Add tests for freeing BusName
1568         objects causing names to be released.
1569
1570 2005-11-14  Robert McQueen  <robot101@debian.org>
1571
1572         * python/service.py: Include the traceback in the error reply when we
1573         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1574
1575 2005-11-14  David Zeuthen  <davidz@redhat.com>
1576
1577         Patch from Timo Hoenig <thoenig@suse.de>.
1578
1579         * bus/bus.c: I've recently investigated why the automatic reload
1580         of configuration files does not work as expected.
1581
1582         Currently, reloading configuration files does only work when
1583         running dbus-daemon with --nodaemon.  If we are running as daemon
1584         we're hitting a dnotify bug once we fork the process.
1585
1586         We're initializing the dnotify fds before calling fork().  Once
1587         the child process forked it does still have the fds (and they
1588         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1589         getting SIGIO as changes are made to the configuration files.
1590
1591         The attached patch moves the initialization of the dnotify fds to
1592         process_config_postinit().  This is safe for all current code
1593         paths and solves the dnotify disfunction.  If we're running
1594         dbus-daemon as daemon the fds for dnotify are now being
1595         initialized after fork() for the child process.
1596
1597         * configure.in: The current configure.in check for dnotify probes
1598         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1599         match for 'xlinux', too. Additionally I have adapted the configure
1600         option's style to match with the others.
1601
1602 2005-11-14  Robert McQueen  <robot101@debian.org>
1603
1604         * python/decorators.py, python/service.py: Add a new argument to the
1605         dbus.service.method decorator called sender_keyword, which if set,
1606         specifies the name of an argument which will be provided the bus
1607         name of the method caller.
1608
1609         * test/python/test-client.py, test/python/test-service.py: Add a
1610         method and test to check the sender_keyword functionality.
1611
1612 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1613
1614         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1615         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1616         Simons <sjoerd at luon.net>)
1617
1618         * AUTHORS: Add Robert McQueen for his work on the Python
1619         Bindings and other parts of D-Bus
1620
1621 2005-11-07  Robert McQueen  <robot101@debian.org>
1622
1623         * python/decorators.py: Change emit_signal function to use the
1624         signature annotation of the signal when marhsalling the arguments from
1625         the service. Fix a bug where the code checking signature length
1626         against argument length referenced the wrong variable.
1627
1628         * python/introspect_parser.py: Avoid adding the type signature of
1629         signal arguments to any methods which occur after them in the
1630         introspection data (!) by making the parser a little more careful
1631         about its current state.
1632
1633         * python/service.py: Remove debug prints from last commit (again :D).
1634
1635         * test/python/test-client.py, test/python/test-service.py: Add test
1636         signals with signature decorators to test the strict marshalling code
1637         gives errors at the right time. Could do with checking the signals
1638         actually get emitted too, given that the test does nothing with
1639         signals at the moment...
1640
1641 2005-11-07  Robert McQueen  <robot101@debian.org>
1642
1643         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1644         instances to stop madness of creating new instances representing
1645         the same bus connection all the time, rendering any tracking of
1646         match rules and bus names quite meaningless. Caught a bug where
1647         the private argument to SessionBus() and friends was being passed
1648         in as use_default_mainloop by mistake. Still some problems with
1649         multiple dbus_binding.Connection instances representing the same
1650         low-level connection (eg when you use both SessionBus() and
1651         StarterBus() in same process), but it's a lot better now than it
1652         was.
1653
1654         * python/dbus_bindings.pyx: Add constants with the return values
1655         for bus_request_name().
1656
1657         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1658         and retrieve the same instances for the same name, so deletion can be
1659         done with refcounting. Also now throws some kind of error if you
1660         don't actually get the name you requested, unlike previously...
1661
1662         * test/python/test-client.py: Add tests for instance caching of buses
1663         and bus name objects.
1664
1665 2005-11-04  Robert McQueen  <robot101@debian.org>
1666
1667         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1668         marshalling of boolean values. Add some booleans to the values in
1669         the test client.
1670
1671         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1672         argument to the dbus.service.method decorator, which allows you to
1673         name arguments to take two callback functions for replying with
1674         return values or an exception.
1675
1676         * test/python/test-client.py, test/python/test-service.py: Add test
1677         case using asynchronous method reply functions, both return values and
1678         errors, and from within both the function itself and from a mainloop
1679         callback.
1680
1681         * python/decorators.py, python/service.py: Perform checking that the
1682         number of method/signal arguments matches the number of types in the
1683         signature at class loading time, not when you first introspect the
1684         class.
1685
1686         * python/service.py: Remove debug print left by the last commit.
1687
1688 2005-11-03  Robert McQueen  <robot101@debian.org>
1689
1690         * python/service.py: Heavy refactoring of method invocation, with
1691         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1692         in favour of a new _message_cb that uses seperate functions for
1693         looking up the method to call, marshalling the return values, and
1694         sending exceptions as errors, and is easier to follow as a
1695         consequence.  Fixes some corner cases about returning things that
1696         don't match your declared out_signature, allows exceptions to define
1697         _dbus_error_name and have it be sent over the bus as the error name,
1698         and paves the way for cool stuff like heeding the message no reply
1699         flag, asynchronous method implementations, informing the method of the
1700         sender, and including backtraces in the error messages.
1701
1702         * test/python/test-client.py: Catch and print exceptions thrown in the
1703         async callback tests, rather than passing them to the low-level
1704         bindings to be ignored in a noisy and frustrating manner.
1705
1706 2005-11-03  Robert McQueen  <robot101@debian.org>
1707
1708         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1709         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1710         tweak others to be consistent.
1711
1712         * test/python/test-client.py: Tweak output of testInheritance.
1713
1714 2005-10-29  Robert McQueen  <robot101@debian.org>
1715
1716         * python/service.py: Major changes to allow multiple inheritance
1717         from classes that define D-Bus interfaces:
1718         
1719          1. Create a new Interface class which is the parent class of
1720             Object, and make the ObjectType metaclass into InterfaceType.
1721         
1722          2. Patch written with Rob Taylor to replace use of method_vtable
1723             with code that walks the class's __MRO__ (method resolution order)
1724             to behave like Python does when invoking methods and allow
1725             overriding as you'd expect. Code is quite tricky because
1726             we have to find two methods, the one to invoke which has the
1727             right name and isn't decorated with the /wrong/ interface,
1728             and the one to pick up the signatures from which is decorated
1729             with the right interface.
1730         
1731             The same caveats apply as to normal multiple inheritance -
1732             this has undefined behaviour if you try and inherit from two
1733             classes that define a method with the same name but are
1734             decorated with different interfaces. You should decorate
1735             your overriding method with the interface you want.
1736         
1737          3. Replace grungy introspection XML generation code in the metaclass
1738             with dictionaries that cope correctly with multiple inheritance
1739             and the overriding of methods. This also uses the signature
1740             decorations to provide correct introspection data, including
1741             the debut appearance of the types of your return values. :D
1742
1743         * test/python/test-client.py, test/python/test-service.py: Add a test
1744         case to try invoking an method that overrides one inherited from a
1745         D-Bus interface class.
1746
1747 2005-10-29  Robert McQueen  <robot101@debian.org>
1748
1749         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1750         Add checking for the end of struct character when marshalling a
1751         struct in MessageIter.append_strict.
1752
1753         * python/examples/example-service.py,
1754         python/examples/gconf-proxy-service.py,
1755         python/examples/gconf-proxy-service2.py: Update to use gobject
1756         mainloop directly rather than appearing to depend on gtk.
1757
1758         * python/test/test-client.py, python/test/test-server.py: Remove
1759         obsolete and broken test scripts for old bindings. We have up to date
1760         and working tests in test/python/.
1761
1762 2005-10-29  Robert McQueen  <robot101@debian.org>
1763
1764         * python/decorators.py: Add optional arguments to the method and
1765         signal decorators to allow you to specify the signature of arguments
1766         and return values. Preserve the doc strings of signal functions in the
1767         decorated version, for pydoc and friends.
1768
1769         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1770         parse_signature_block function with an iterable dbus.Signature()
1771         type. Fix a bug in MessageIter.append_strict where you could append
1772         anything by claiming it was a string.
1773
1774         * python/service.py: Use the out_signature decoration on methods to
1775         marshal return values, meaning you no longer require dbus.Array()
1776         or dbus.Dictionary() to indicate the type when returning empty
1777         arrays or dictionaries. Fix a bug where exceptions which are defined
1778         in __main__ are not turned into error replies.
1779
1780         * test/python/test-client.py, test/python/test-service.py: Add test
1781         for correct marshalling of return values according to out_signature.
1782         Fix a bug in the async call test where the error_handler is missing a
1783         self argument.
1784
1785 2005-10-29  Robert McQueen  <robot101@debian.org>
1786
1787         * glib/Makefile.am, glib/examples/Makefile.am,
1788         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1789         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1790
1791         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1792
1793         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1794         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1795         the command line.
1796
1797 2005-10-27  Ross Burton  <ross@openedhand.com>
1798
1799         * dbus/dbus-marshal-header.c:
1800         Remove dead code.
1801
1802         * glib/dbus-gobject.c:
1803         Stop compiler warning.
1804
1805 2005-10-25  Ross Burton  <ross@openedhand.com>
1806
1807         * dbus/dbus-auth.c:
1808         * dbus/dbus-server-unix.c:
1809         * dbus/dbus-transport-unix.c:
1810         * glib/dbus-gmain.c:
1811         * glib/dbus-gobject.c:
1812         Add some const keywords.
1813
1814 2005-10-25  Ross Burton  <ross@openedhand.com>
1815
1816         * doc/dbus-specification.xml:
1817         Document the NoReply annotation.
1818
1819         * glib/dbus-binding-tool-glib.h:
1820         * glib/dbus-binding-tool-glib.c:
1821         Respect the NoReply annotation.
1822
1823 2005-10-24  Robert McQueen <robot101@debian.org>
1824
1825         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1826         derive from unicode instead of str, and encode/decode UTF-8 when
1827         marshalling/unmarshalling bus messages
1828
1829         * python/introspect_parser.py: encode introspection data as UTF-8
1830         before passing the buffer into libxml2
1831
1832         * test/python/test-client.py: add unicode test strings
1833
1834         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1835         ignore generated python test files
1836
1837 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1838
1839         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1840         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1841         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1842
1843         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1844         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1845         when constructing struct signatures
1846
1847         * python/_dbus.py (Bus): handle private connections using the
1848         private keyword in the constructor. defaults to private=False
1849         (Bus::close): new method to close a connection to the bus
1850
1851         * python/dbus_bindings.pyx (Connection::close): renamed method
1852         was previously called disconnect
1853         (bus_get): now supports getting a private connection
1854
1855         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1856         keyword is set to True.  if it is, execute the method without waiting
1857         for a reply
1858         (ProxyObject::_introspect_execute_queue): new method for executing
1859         all the pending methods that were waiting for the introspect to
1860         finish.  this is called when introspect either succeeds or fails
1861         (ProxyObject::_introspect_error_handler): call queued methods
1862
1863 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1866         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1867
1868         * python/service.py (Object::_message_cb): handle exceptions correctly
1869         by sending them over the wire to the calling app.  This makes sure
1870         the client returns immediately instead of waiting the 15 seconds to
1871         timeout.
1872
1873         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1874         Add a test to benchmark how long it takes to introspect a service and 
1875         call a method which returns a large element (pretty fast)
1876
1877         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1878         method which pushes a lot of data
1879
1880 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1881
1882         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1883         reclaim memory outside of the loop and use del istead of just setting
1884         the key to None
1885
1886 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1887
1888         * python/service.py (ObjectType::_reflect_on_signal): Always close
1889         signal tag even when there are no arguments
1890
1891 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1892
1893         * configure.in: Set mono, mono-docs and Qt3 to default
1894         to no instead of auto when building.  These bindings do not
1895         have full time maintainers and will not be supported for the
1896         1.0 release.
1897
1898 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1899
1900         patches from Michael Krivoruchko <misha at sun.com>: 
1901         
1902         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1903         _dbus_connection_message_sent, 
1904         _dbus_connection_send_preallocated_unlocked_no_update, 
1905         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1906         is NULL when calling _dbus_verbose
1907
1908         * configure.in: check for functions getpeerucred and getpeereid
1909
1910         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1911         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1912         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1913         Patch was only tested on Solaris 10 x86 so it might be issues
1914         with other platforms (i.e. BSDs and MacOSX)
1915         
1916
1917 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1918
1919         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1920         instead of marshal basic so we can handle recursive types in a variant
1921
1922         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1923         in variants
1924
1925         * test/glib/test-service-glib.c, test-service-glib.xml
1926         (my_object_echo_variant [EchoVariant], 
1927         my_object_process_variant_of_array_of_ints123
1928         [ProcessVariantOfArrayOfInts123]): 
1929         Add two test methods
1930
1931         * python/introspect_parser.py: New module for parsing introspect
1932         data.
1933
1934         * python/dbus_bindings.pyx:
1935         (various places): when throwing errors fix to use errormsg instead 
1936         of message local variable because Pyrex can get confused with other 
1937         message variables (initial patch by Robert McQueen 
1938         <robert.mcqueen at collabora.co.uk>)
1939         (MessageIter::parse_signature_block): new method for getting the next
1940         block in a signiture.
1941         (MessageIter::append_strict): new method for appending values strictly
1942         using the passed in signature instead of guessing at the type
1943         (MessageItter:: append_dict, append_struct, append_array): use 
1944         signatures to marshal children if the signature is available
1945         
1946         * python/exceptions.py (IntrospectionParserException): new exception
1947
1948         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1949         introspected signatures if available, else we fall back to the
1950         old way of doing things.
1951         (ProxyObject::_introspect_reply_handler ): parse introspection data
1952         
1953         * python/service.py (ObjectType::_reflect_on_method): Properly
1954         terminate <method> if there are no args in the reflection data
1955
1956         * test/python/test-client.py: add tests for talking with the GLib
1957         test server.  This gives us better coverage for introspection since
1958         python to python will always generate arguments as variants.  It also
1959         allows us to test the robustness of the GLib bindings and interlanguage
1960         communications.
1961
1962         
1963 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1964
1965         * bus/driver.c (bus_driver_handle_introspect): Add signals
1966         to the introspect data. (patch from Daniel P. Berrange 
1967         <dan at berrange.com>)
1968
1969         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1970         
1971         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1972         _dbus_connection_run_builtin_filters): Changed these to
1973         be unlock_no_update functions and call 
1974         _dbus_connection_send_unlocked_no_update instead of
1975         dbus_connection_send to avoid locking errors.
1976         
1977         * doc/TODO: Removed the make Ping test TODO
1978         
1979 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1980
1981         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1982         We now copy the message from a DBusError and then free 
1983         the error object befor throwing the error
1984
1985         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1986         DBusBindingOutputMode enum which was causing a warning.
1987         #include <time.h> so using time_t is explicitly defined
1988
1989 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1990
1991         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1992         - dbus/dbus-bus.c
1993         (internal_bus_get): new method that take over the heavy lifting
1994         of dbus_bus_get and adds the ability to get a private connection
1995         to the bus
1996         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1997         interface as in previous versions
1998         (dbus_bus_get_private): new method that is a wrapper to 
1999         internal_bus_get to get a private connection to the bus
2000
2001         - dbus/dbus-bus.h
2002         (dbus_bus_get_private): add as a public libdbus interface
2003
2004         - dbus-1.pc.in: output system_bus_default_address and 
2005         sysconfdir variables so apps can use them when compiling
2006
2007 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2008         * dbus/qt: New Qt bindings
2009
2010 2005-09-12  Waldo Bastian  <bastian@kde.org>
2011
2012         * dbus/dbus-marshal-validate.c,
2013         doc/dbus-specification.xml, test/Makefile.am,
2014         test/test-names.c: allow hyphens in bus names.
2015
2016 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2017
2018         * test/data/auth/fallback.auth-script: we don't
2019         retry the EXTERNAL method when we know its going
2020         to fail anymore.
2021
2022 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2023
2024         * dbus/dbus-connection-internal.h: rename
2025         (add|remove|toggle)_(watch|timeout) to unlocked()
2026         
2027         * dbus/dbus-connection.c: ditto.
2028         
2029         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2030         Update some callers for the renaming.
2031
2032 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2033
2034         * dbus/dbus-auth.c: (record_mechanisms): don't
2035         retry the first auth mechanism because we know
2036         we're just going to get rejected again.
2037         
2038         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2039         Fix thinko ... and what a nasty little bugger to
2040         track down you were ...
2041
2042         * dbus/dbus-connection.c:
2043         (_dbus_connection_add_watch),
2044         (_dbus_connection_remove_watch): add note about
2045         these needing the connection to be locked.
2046         (_dbus_connection_get_dispatch_status_unlocked):
2047         set status to DATA_REMAINS when we queue the
2048         disconnected message.
2049         
2050         * bus/dispatch.c:
2051         (bus_dispatch): fix warning.
2052         (check_existent_service_no_auto_start):
2053         Expect ChildSignaled error too.
2054         (check_existent_hello_from_self): fix another
2055         couple of warnings.
2056         
2057 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2058
2059         Patches from James Willcox <snorp@snorp.net>
2060
2061         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2062
2063         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2064         support array "out" parameters.
2065
2066         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2067         for 16-bit int support.
2068
2069 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2070
2071         * Released 0.50
2072
2073         * Patch from Steve Grubb:
2074         - bus/activation.c (bus_activation_service_reload_test): clean up
2075         some indentation
2076         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2077         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2078         buffer overflows in the test suite.  This is non critical because
2079         it can not be exploited and this code is only run when doing a 
2080         make check.
2081
2082         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2083         - configure.in: Don't check and link against kdecore, only qt headers
2084         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2085         - gcj/org/freedesktop/dbus/Makefile.am:
2086         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2087         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2088         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2089         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2090         - tools/Makefile.am: Add platform extentions to binaries 
2091         (i.e. .exe on windows)
2092
2093         * configure.in: 
2094         - Make it so if no suitable version of python is found we only 
2095         disable building python instead of exiting the configure script
2096         - Require version 2.4 of glib for glib bindings
2097         - Up version to 0.50
2098
2099         * python/__init__.py: Sync version with libdbus to (0,50,0)
2100         
2101 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2102
2103         * dbus/dbus-object-tree.c (find_subtree_recurse):
2104         a couple of optimizations (bug #710):
2105         - do a binary search in the tree
2106         - insert a new child at the right place directly, no need for
2107           qsort anymore
2108         - do the "double alloc" thing when allocating children
2109
2110 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2111
2112         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2113
2114         * python/dbus_bindings.pyx: Memory management foo
2115         (global): remove hacky _user_data_references global list
2116         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2117         tuples. Unref user_data
2118         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2119         (Connection::__del__): Remove and replace with __dealloc__ method
2120         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2121         to keep tuple from being deallocated instead of the global var hack
2122         (Connection::register_object_path): Stuff user_data into a tuple.
2123         Use Py_INCREF to keep tuple from being deallocated instead of the 
2124         global var hack
2125         (Connection::register_fallback): Stuff user_data into a tuple.
2126         Use Py_INCREF to keep tuple from being deallocated instead of the 
2127         global var hack
2128         (GIL_safe_pending_call_notification): Don't unref the message
2129         because it gets unreffed when going out of scope.  Py_XDECREF
2130         the user_data
2131         (PendingCall::__del__): Remove and replace with __dealloc__ method
2132         (PendingCall::set_notify): ref the pending call because we will
2133         need it to stick around for when the notify callback gets called
2134         (Message::__del__): Remove and replace with __dealloc__ method
2135
2136         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2137         gthreads_init to match up with the dbus call
2138
2139         * python/glib.py (init_threads): Changed to threads_init to match
2140         up with gobject.threads_init().  init_threads is kept for backwards
2141         compat but will most likely be deprecated in the future
2142
2143         * test/python/test-client.py: 
2144         - revamp to use Python's unittest functionality
2145         - add async call tests
2146         - setup threads in glib and dbus so we make sure locks are working
2147         
2148 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2149
2150         * python/dbus_bindings.pyx 
2151         (_pending_call_notification, cunregister_function_handler, 
2152         cmessage_function_handler): All callback functions have been rearranged 
2153         to workaround a bug in Pyrex when working with the GIL which is Python's 
2154         global lock when dealing with threads.  They have been split into
2155         a wrapper function (which assumes the name of the old function) and
2156         a _GIL_safe_<function name> function which contains the functionality
2157         of the old function.  This ensures that Pyrex does not write code
2158         the lock is released.
2159         
2160
2161 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2162
2163         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2164         GIL global lock when calling back into Python
2165
2166 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2167
2168         * Release 0.36.2
2169
2170         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2171
2172         * bus/policy.c (bus_policy_allow_user): change default "user is
2173         allowed" to be "user has same uid as the bus itself"; any
2174         allow/deny rules will override.
2175
2176         * bus/session.conf.in: don't allow all users, since now by default
2177         the user that ran the bus can connect.
2178
2179 2005-08-26  Colin Walters  <walters@verbum.org>
2180
2181         * tools/dbus-print-message.c (print_message): Flush stdout
2182         after printing a message, so that redirecting to a file, then
2183         hitting Ctrl-C works.
2184
2185 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2186
2187         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2188         (EmptyMessage): new class that subclasses Message.  This is a workaround
2189         to a Pyrex bug that fails to call __del__ when the Message object goes out
2190         of scope.  For some reason subclassing Message fixes this bug
2191         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2192         - s/Message(_create=0)/EmptyMessage everywhere else
2193         
2194         * test/python/test-{server|client}.py: add the python/.libs directory
2195         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2196         get picked up from the system
2197
2198 2005-08-25  Colin Walters  <walters@verbum.org>
2199
2200         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2201         to Ryan Lortie for the suggestion.
2202
2203 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2204
2205         * test/python: Add python regression test
2206
2207         * configure.in: Add test/python/Makefile
2208
2209         * test/Makefile.am: Add the python directory to SUBDIRS
2210
2211 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2212
2213         * Release 0.36.1
2214
2215         * python/_dbus.py: 
2216         (Interface::connect_to_signal): propigate keywords for match on args
2217         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2218
2219         * python/proxies.py (ProxyObject::connect_to_signal):
2220         propigate keywords for match on args
2221
2222         * Makefile.am: point everything to pyexecdir since python borks
2223         on multilib
2224
2225 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2226
2227         * Release 0.36
2228
2229 2005-08-23  Colin Walters  <walters@verbum.org>
2230
2231         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2232
2233 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2234
2235         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2236         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2237         of defining DBusConnection ourselves.
2238
2239 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2240
2241         * python/dbus.pth: New path file to fix up problems when installing
2242         c libraries to lib64 and python files to lib.
2243
2244         * python/Makefile.am: install dbus.pth in the correct spot
2245
2246 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2247         * ChangeLog: clean up my last entry a bit
2248
2249         * doc/introspect.xsl: New stylesheet for converting introspection data
2250         into browser renderable xhtml. Contributed by Lennart Poettering.
2251
2252         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2253         Poettering.
2254
2255         * doc/dbus-tutorial.xml: 
2256         - Add Colin Walter to the Authors section for authoring the GLib
2257         section
2258         - Add descriptions of the new signature and type functionality
2259         in the Python complex type mapping section
2260         - Add a sidenote on the new args matching functionality in 
2261         the Python bindings
2262         - Fixed up some of the examples to use the gobject.MainLoop
2263         instead of gtk.main
2264         
2265         * python/_dbus.py:
2266         (Bus::_create_args_dict): New. Converts a hash of arg matches
2267         to a more useable format
2268         (Bus::add_signal_receiver): add a **keywords parameter for catching
2269         arg match parameters
2270         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2271         arg match parameters
2272         
2273         * python/matchrules.py:
2274         (MatchTree::exec_matches): Check for arg matches
2275         (SignalMatchRule::add_args_match): New method
2276         (SignalMatchRule::execute): Added args_list parameter as an optimization
2277         so we don't have to marshal the args more than once
2278         (SignalMatchRule::match_args_from_list): New method that checks to see
2279         if the rule's arg matches match an argument list.  Only arguments
2280         set in the rule are checked.
2281         (SignalMatchRule::match_args_from_rule): New method that checks to see
2282         if the rule's arg matches match another rule's.  All args have to match
2283         in order for this method to return true.  If either rule has more args
2284         then it is not a match.
2285         (SignalMatchRule::is_match): Add args match
2286         (SignalMatchRule::repr): Add args to the final output if they exist
2287
2288 2005-08-17  Ross Burton  <ross@burtonini.com>
2289
2290         * glib/dbus-gproxy.c:
2291         (dbus_g_proxy_call_no_reply): unref the message once sent.
2292         (dbus_g_proxy_call): protect against NULL proxy.
2293
2294 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2295
2296         * python/__init__.py: Version updated (0, 43, 0)
2297         
2298         * python/dbus_bindings.pyx: 
2299         - Fixed type objects to have self passed into __init__
2300         - Added the Variant type
2301         - Add the ability to specify types or signatures for Array, Variant 
2302         and Dictionary
2303         (Connection::send_with_reply_handlers): return a PendingCall object
2304         (_pending_call_notification): handle the case when an error is returned 
2305         without an error message in the body
2306         (MessageIter::get_boolean): return True or False instead of an integer
2307         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2308         and add checks for objects with embeded signatures or types (Array, 
2309         Variant and Dictionary)
2310         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2311         (MessageIter::append_dict): handle embeded types or signatures
2312         (MessageIter::append_array): handle embeded types or signatures
2313         (MessageIter::append_variant): new method
2314         
2315         * python/proxies.py:
2316         (DeferedMethod): New. Dummy executable object used when queuing calls 
2317         blocking on introspection data
2318         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2319         or shorter timeouts for method calls
2320         (ProxyObject): Add first pass at an introspection state machine
2321         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2322         introspection. 
2323         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2324         the usual mechanisms for sending messages.  This is to avoid a deadlock
2325         where the Intospect call would be queued waiting for the Introspect 
2326         call to finish ;-)
2327         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2328         when introspection returns with no error
2329         (ProxyObject::_introspect_error_handler): New.  This method is called 
2330         when introspection encounters an error
2331         (ProxyObject::__getattr__): Code to handle different introspection 
2332         states.  Queue async calls or block blocking calls if we are 
2333         introspecting.  Pass through as normal if we are not or are done with 
2334         introspecting.
2335         
2336         * python/service.py: Import signal and method from decorators.py
2337
2338         * python/types.py: Add Variant type
2339
2340 2005-08-16  Colin Walters  <walters@verbum.org>
2341
2342         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2343         DBusError message is NULL.
2344
2345 2005-08-09  Havoc Pennington  <hp@redhat.com>
2346
2347         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2348         malloc'd copy of the name parameter
2349
2350 2005-08-09  Havoc Pennington  <hp@redhat.com>
2351
2352         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2353         warning if the reply serial is set to 0
2354
2355 2005-08-04  Colin Walters  <walters@verbum.org>
2356
2357         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2358         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2359         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2360         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2361         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2362         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2363         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2364         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2365         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2366         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2367         
2368         Prefix name with _ to ensure they're not exported.  All callers
2369         updated.
2370
2371         * glib/dbus-gvalue.c (typecode_to_gtype)
2372         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2373         (signature_iter_to_g_type_dict)
2374         (signature_iter_to_g_type_array)
2375         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2376         (dbus_gtypes_from_arg_signature):
2377         Move to dbus-gsignature.c.
2378
2379         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2380         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2381         (dbus_binding_tool_output_glib_client): Ditto.
2382
2383         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2384         and dbus-gsignature.h
2385
2386         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2387         unused variable.
2388
2389 2005-08-03  Colin Walters  <walters@verbum.org>
2390
2391         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2392         catch any incompatible changes accidentally made.
2393
2394 2005-08-03  Havoc Pennington  <hp@redhat.com>
2395
2396         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2397         typo, from Julien Puydt
2398
2399         * bus/connection.c (bus_connection_disconnected): we were always
2400         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2401
2402 2005-08-01  Colin Walters  <walters@verbum.org>
2403
2404         Patch from Joe Markus Clarke:   
2405         
2406         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2407         use-after-free.
2408
2409 2005-08-01  Colin Walters  <walters@verbum.org>
2410         
2411         Patch from Joe Markus Clarke:   
2412         
2413         * tools/dbus-send.c (main): 
2414         
2415         Don't use C99 style initializers (bug #3933).
2416         
2417 2005-08-01  Colin Walters  <walters@verbum.org>
2418
2419         Patch from Joe Markus Clarke:   
2420
2421         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2422         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2423         * glib/dbus-gobject.c (write_interface):
2424
2425         Don't use C99 style initializers (bug #3933).
2426
2427 2005-07-31  Havoc Pennington  <hp@redhat.com>
2428
2429         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2430         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2431
2432 2005-07-30  Havoc Pennington  <hp@redhat.com>
2433
2434         * fix a bunch of Doxygen warnings and mistakes
2435
2436 2005-07-30  Havoc Pennington  <hp@redhat.com>
2437
2438         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2439         DBUS_BUILD_TESTS since it's now used in production code
2440
2441 2005-07-29  Havoc Pennington  <hp@redhat.com>
2442
2443         * test/glib/test-profile.c (write_junk): initialize the junk
2444         buffer so valgrind doesn't have a breakdown
2445
2446 2005-07-29  Havoc Pennington  <hp@redhat.com>
2447
2448         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2449         (match_rule_matches): remove unused arg
2450         (test_matching): add tests for match_rule_matches()
2451
2452         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2453         do arg0='foo' arg5='bar' in the match rules
2454         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2455
2456         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2457
2458 2005-07-29  Ross Burton  <ross@openedhand.com>
2459
2460         * dbus/dbus-connection.c:
2461         Don't create a DBusCondVar which is never used.
2462
2463 2005-07-27  Ross Burton  <ross@openedhand.com>
2464
2465         * dbus/dbus-message.c:
2466         Reduce the size of the maximum cached message to 10K.
2467
2468 2005-07-25  Ross Burton  <ross@openedhand.com>
2469
2470         * glib/dbus-gproxy.c:
2471         Remove matches when all proxies are unregistered.
2472
2473 2005-07-24  Colin Walters  <walters@verbum.org>
2474
2475         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2476         typedata; recursive arrays won't have it.
2477
2478         * test/glib/test-dbus-glib.c:
2479         * test/glib/test-service-glib.c:
2480         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2481         
2482 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2483
2484         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2485         proxies.py, service.py: Cleanup of code after running it through the
2486         pyflakes code checker mostly dealing with undefined names.  
2487         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2488
2489 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2490
2491         * NEWS: Update to 0.35.2
2492
2493 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2494
2495         * python/_dbus.py: Remove import of the dbus.services
2496         module as it no longer exists (patch from Dimitur Kirov)
2497
2498         * python/service.py (Object::__init__): Fixed typo
2499         s/name/bus_name (patch from Dimitur Kirov)
2500
2501         * python/examples/example-signal-emitter.py: import dbus.glib
2502         to get the main loop and use glib mainloop instead of gtk so
2503         X doesn't have to be running.
2504
2505         * python/examples/example-signal-recipient.py: import dbus.glib
2506         to get the main loop and use glib mainloop instead of gtk so
2507         X doesn't have to be running. Import the decorators module
2508         directly.
2509
2510         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2511         didn't pick up on but are needed to build
2512
2513         * configure.in: upped version to 0.35.2
2514
2515         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2516         added Colin Walters' SELinux API rename patch from head 
2517         s/unix sercurity context/selinux security context/
2518
2519 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * python/Makefile.am: dbus_binding.pxd.in should be included 
2522         in EXTRA_DIST not dbus_binding.pxd
2523         fix up $(srcdir) hopefully for the last time
2524
2525         * NEWS: Update to 0.35.1
2526
2527 2005-07-16  Colin Walters  <walters@verbum.org>
2528
2529         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2530         from bus_driver_handle_get_connection_unix_security_context.  Update for
2531         error usage.
2532         (message_handlers): Update for renames.
2533
2534         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2535         _dbus_string_init failure correctly.
2536         (bus_selinux_append_context): Convert SID to context.  Append it
2537         as a byte array.
2538         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2539         hasn't been called.
2540
2541         * bus/selinux.h: Update prototype.
2542
2543         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2544         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2545
2546 2005-07-15  Colin Walters  <walters@verbum.org>
2547
2548         * doc/TODO: Add note about convenience wrappers.
2549
2550 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2551
2552         * NEWS: Update to 0.35
2553
2554 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2555
2556         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2557         so distcheck doesn't fail
2558
2559         * glib/examples/Makefile.am: Add example-service.xml and 
2560         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2561
2562         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2563         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2564
2565         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2566         compiler looks in the right places during distcheck
2567
2568 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2569
2570         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2571         to fail
2572
2573 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2574
2575         * python/examples/example-service.py,
2576         python/examples/example-signal-emitter.py: Fixed up examples
2577         for API changes
2578
2579 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2580
2581         * python/__init__.py: Upped to version (0,42,0) because of
2582         the API change
2583
2584 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2585
2586         * ChangeLog: fix date in last entry
2587
2588         * configure.in, bus/system.conf.in: add the ability to configure 
2589         the system bus user at compiletime with the --with-dbus-user flag
2590         (patch from Kristof Vansant)
2591
2592 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2593
2594         * bus/dispatch.c, test/test-service.c: Add testcase
2595         for sending messages to oneself (TODO item).
2596
2597         * python/service.py (class Object): Swap ordering of bus_name 
2598         and object_path parameters to better support inheritance.
2599
2600         * doc/dbus-tutorial.xml: change Python docs to reflect change
2601         in parameter ordering and fix the inheritance section.
2602
2603         * doc/TODO: remove sending message to oneself TODO item
2604
2605 2005-07-15  Ross Burton  <ross@openedhand.com>
2606
2607         * glib/dbus-gproxy.c:
2608         Fix a leak when calling methods via the proxy.
2609
2610 2005-07-15  Colin Walters  <walters@verbum.org>
2611
2612         * bus/selinux.c (bus_selinux_append_context): Wrap in
2613         HAVE_SELINUX.
2614
2615 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2616
2617         * python/_dbus.py (Bus::remove_signal_receiver):
2618         don't add a callback to the match if none has been passed in
2619         
2620         * python/matchrules.py (SignalMatchTree::remove): if the rule
2621         being matched does not have a callback treat it as a wildcard
2622         fix matching logic
2623
2624         * doc/dbus-tutorial.xml: Add Python tutorial
2625
2626 2005-07-14  Colin Walters  <walters@verbum.org>
2627
2628         * bus/driver.c
2629         (bus_driver_handle_get_connection_unix_security_context): New function.
2630         (message_handlers): Add.
2631
2632         * bus/selinux.c (bus_selinux_append_context): New function; appends
2633         security context to message.
2634
2635         * bus/selinux.h: Prototype.
2636
2637         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2638
2639 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2640
2641         * bus/activation.c: clean up all tabs to be 8 spaces 
2642         (bus_activation_activate_service): make sure we clean up
2643         if activation fails
2644
2645         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2646         (check_shell_fail_service_auto_start): New function
2647         tests to make sure we get fail properly when trying to auto start a service
2648         with a faulty command line
2649         (check_shell_service_success_auto_start): New function tests to make sure
2650         auto started services get the arguments on the command line
2651
2652         * test/test-shell-service.c: Added service for testing auto-starting with 
2653         command line arguments
2654
2655         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2656         test/data/valid-service-files/debug-shell-echo-success.service.in:
2657         Added service files for testing auto-starting with command line arguments
2658
2659         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2660
2661 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2662
2663         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2664         
2665         * dbus/Makefile.am: added new files to build.
2666
2667         * bus/activation.c (bus_activation_activate_service): support
2668         activation commands with parameters.
2669
2670         * test/shell-test.c: added test program for the shell parsing
2671         code.
2672
2673 2005-07-13  David Zeuthen  <davidz@redhat.com>
2674
2675         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2676         64 bit signed and unsigned parameters
2677
2678 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2679
2680         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2681
2682         * python/service.py (class Name): renamed BusName to make it clearer
2683         what the object is for (a name on the bus)
2684
2685         * python/examples/example-service.py,
2686         python/examples/example-signal-emitter.py: change the Name object to
2687         BusName
2688
2689 2005-07-12  Colin Walters  <walters@verbum.org>
2690
2691         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2692
2693         * tools/dbus-launch.c: Include sys/select.h.
2694
2695 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2696         * python/dbus_bindings.pyx.in: removed
2697
2698         * python/dbus_bindings.pyx: Added.
2699         - Fixed some memleaks (patch from 
2700         Sean Meiners <sean.meiners@linspireinc.com>)
2701         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2702         own pxd file (Pyrex definition)
2703         - Broke out glib dependancies into its own pyx module
2704         
2705         * python/dbus_bindings.pdx: Added.
2706         - Defines C class Connection for exporting to other modules
2707
2708         * python/dbus_glib_bindings.pyx: Added.
2709         - New module to handle lowlevel dbus-glib mainloop integration
2710
2711         * python/glib.py: Added.
2712         - Registers the glib mainloop when you import this module
2713
2714         * python/services.py: Removed (renamed to service.py)
2715         
2716         * python/service.py: Added.
2717         - (class Server): renamed Name
2718
2719         * python/__init__.py: Bump ro version (0,41,0)
2720         -don't import the decorators or service module
2721         by default.  These now reside in the dbus.service namespace
2722
2723         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2724         setup function on creation 
2725
2726         * python/examples/example-service.py,
2727         python/examples/example-signal-emitter.py: update examples
2728
2729         * python/examples/gconf-proxy-service.py,
2730         python/examples/gconf-proxy-service2.py: TODO fix these up
2731
2732         * doc/TODO: Addition
2733         - Added a Python Bindings 1.0 section
2734         - added "Add match on args or match on details to match rules"
2735
2736
2737 2005-07-12  Colin Walters  <walters@verbum.org>
2738
2739         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2740         (statemachine-glue.h): 
2741         * glib/examples/Makefile.am (example-service-glue.h) 
2742         (example-signal-emitter-glue.h): 
2743         * glib/Makefile.am (dbus-glib-error-switch.h): 
2744         Add libtool --mode=execute so we use the built library instead
2745         of any installed one.
2746
2747 2005-07-11  Colin Walters  <walters@verbum.org>
2748
2749         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2750         (dbus_g_value_types_init): Remove assertion.
2751         (dbus_g_value_get_g_type, dbus_g_value_open)
2752         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2753         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2754         functions related to DBusGValue.  Now we marshal/demarshal
2755         structures as GValueArray.
2756         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2757         structures.
2758         (signature_iter_to_g_type_array): Don't call
2759         signature_iter_to_g_type_struct.
2760         (signature_iter_to_g_type_struct): Delete.
2761         (dbus_gvalue_to_signature): Delete.
2762         (dbus_gvalue_to_signature): New function with same name as other
2763         one; we can convert structures to signatures.
2764         (demarshal_valuearray): New function.
2765         (get_type_demarshaller): Use it.
2766         (demarshal_recurse): Delete.
2767         (marshal_proxy): New function.
2768         (marshal_map): Warn if we can't determine signature from type.
2769         (marshal_collection_ptrarray): Ditto.
2770         (marshal_collection_array): Ditto.
2771         (get_type_marshaller): Use marshal_valuearray.
2772         (marshal_recurse): Delete.
2773         (_dbus_gvalue_test): Add some tests.
2774
2775         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2776         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2777         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2778         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2779         (dbus_g_value_free): Remove prototypes.
2780
2781         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2782         G_TYPE_VALUE_ARRAY.
2783
2784         * glib/examples/example-service.c:
2785         * glib/examples/example-client.c: Implement GetTuple.
2786
2787         * test/glib/test-dbus-glib.c:
2788         * test/glib/test-service-glib.c:
2789         * test/glib/test-service-glib.xml: Add structure tests.
2790
2791 2005-07-10  Colin Walters  <walters@verbum.org>
2792
2793         * doc/TODO: Knock off some GLib items with this patch.
2794
2795         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2796         (_dbus_gvalue_signals_error): New functions.
2797
2798         * glib/dbus-gvalue-utils.h: Prototype them.
2799
2800         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2801         and change to not output const/retval flags for input args.  All
2802         callers updated.
2803         (invoke_object_method): Refactor to handle return values.  Add
2804         some more comments in various places.  Remove debug g_print.
2805
2806         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2807
2808         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2809         Handle G_TYPE_NONE.
2810         (compute_gsignature): New function; refactored from code from
2811         compute_marshaller and compute_marshaller_name.  Enhance to
2812         handle return values and async ops more cleanly.  Update for
2813         async ops returning NONE instead of BOOLEAN.
2814         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2815         and output appropriate string.
2816         (generate_glue): Handle return value annotation.  Also don't dump
2817         constness flag for input arguments.
2818
2819         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2820         files shared between installed library and utilities.
2821         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2822         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2823         binding tool can access gtype utility functions.
2824
2825         * test/glib/test-service-glib.c: 
2826         * test/glib/test-service-glib.xml: 
2827         * test/glib/test-dbus-glib.c: Add some tests for return values.
2828
2829 2005-07-09  Colin Walters  <walters@verbum.org>
2830
2831         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2832         argument if available, not method.
2833
2834         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2835         (invoke_object_method): First, remove some redundant
2836         GValues (object_value, error_value) in favor of working on
2837         array directly.  Second, rework constness to be less buggy.
2838         Now we iterate directly over the argument metadata instead
2839         of parallel iterating over output signature and metadata.
2840
2841         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2842
2843         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2844         annotation on input args.
2845         
2846 2005-07-09  Colin Walters  <walters@verbum.org>
2847
2848         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2849         Define.
2850
2851         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2852         annotation.
2853
2854         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2855         (method_dir_signature_from_object_info): Handle arg_iterate change.
2856         (write_interface): Ditto.
2857         (lookup_object_info): Don't barf if format_version is > 0.
2858         (invoke_object_method): Handle arg constness.
2859
2860         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2861         (arg_info_new): Create.
2862         (arg_info_unref): Destroy.
2863         (arg_info_get_annotations, arg_info_get_annotation) 
2864         (arg_info_add_annotation): New functions.
2865
2866         * glib/dbus-gidl.h: Prototype them.
2867
2868         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2869         args, disallow them in properties.
2870         (parse_annotation): Handle arg annotations.
2871
2872         * test/glib/test-service-glib.xml: 
2873         * test/glib/test-service-glib.c: Update to make some methods
2874         const.
2875
2876 2005-07-08  Colin Walters  <walters@verbum.org>
2877
2878         * test/glib/test-service-glib.xml: 
2879         * test/glib/test-service-glib.c:
2880         * test/glib/test-dbus-glib.c: Test a{sv}.
2881
2882         * glib/examples/statemachine/statemachine.c:
2883         * glib/examples/statemachine/statemachine-server.c:
2884         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2885         add progress bar, etc.
2886
2887         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2888         needed anymore due to generic array/map marshalling.
2889         (dbus_g_value_types_init): Don't register basic arrays or the
2890         string/string hash.
2891         (dbus_gtype_from_signature_iter): Don't try to recurse into
2892         variants.
2893         (dbus_gtype_to_signature): Check collection/map before type
2894         metadata.
2895         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2896         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2897         generic map creation/append functions instead of hash table
2898         specifically.
2899         (get_type_demarshaller): Handle maps.
2900         (demarshal_collection): Dispatch on collection type to either
2901         demarshal_collection_ptrarray or demarshal_collection_array.
2902         (get_type_marshaller): Handle maps.
2903         (marshal_collection): Dispatch collection type to either
2904         marshal_collection_ptrarray or marshal_collection_array.
2905         (_dbus_gvalue_test): New test.
2906
2907         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2908         (hash_free_from_gtype): Use it to free GValues.
2909         (hashtable_append): New function.
2910         (ptrarray_append): Fix prototype.
2911         (slist_append): Ditto.
2912         (_dbus_gvalue_utils_test): Extend tests.
2913
2914         * glib/dbus-gtype-specialized.c
2915         (dbus_g_type_specialized_init_append): Renamed from
2916         dbus_g_type_specialized_collection_init_append.  Remove const from
2917         value, since we steal it.
2918         (dbus_g_type_specialized_map_append): New function.
2919
2920         * glib/dbus-gtype-specialized.h: Update prototypes.
2921         Add DBusGTypeSpecializedMapAppendFunc.
2922
2923         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2924         _dbus_gvalue_test.
2925         
2926         * glib/dbus-gtest.h: Prototype it.
2927
2928 2005-07-08  Ross Burton  <ross@openedhand.com>
2929
2930         * dbus/dbus-glib.h:
2931         Add DBysGAsyncData for the async bindings.
2932
2933         * glib/dbus-binding-tool-glib.c:
2934         Re-enable the async bindings.
2935
2936         * test/glib/test-dbus-glib.c:
2937         Add a test for the generated async bindings.
2938
2939 2005-07-08  Colin Walters  <walters@verbum.org>
2940
2941         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2942         connection concept.
2943         
2944 2005-07-08  Colin Walters  <walters@verbum.org>
2945         
2946         * tools/Makefile.am: Kill of print-introspect in favor of using
2947         dbus-send --print-reply=literal.
2948
2949         * test/glib/test-service-glib.xml: 
2950         * test/glib/test-service-glib.c (my_object_get_objs): New test
2951         for "ao".
2952
2953         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2954         (main): Test GetObjs.
2955
2956         * glib/examples/statemachine/Makefile.am:
2957         * glib/examples/statemachine/sm-marshal.list:
2958         * glib/examples/statemachine/statemachine-client.c:
2959         * glib/examples/statemachine/statemachine-server.c:
2960         * glib/examples/statemachine/statemachine-server.xml:
2961         * glib/examples/statemachine/statemachine.c:
2962         * glib/examples/statemachine/statemachine.h:
2963         * glib/examples/statemachine/statemachine.xml:
2964
2965         New example.
2966
2967         * glib/examples/example-service.c (main): Move invocation
2968         of dbus_g_object_type_install_info earlier, to emphasize it
2969         should only be done once.
2970
2971         * glib/examples/example-signal-emitter.c (main): Ditto.
2972
2973         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2974
2975         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2976         (dbus_gvalue_marshal): Update prototypes.
2977
2978         * glib/dbus-gvalue.c: Update all marshalling functions to take
2979         const GValue instead of GValue.
2980         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2981         types.
2982         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2983         change.
2984         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2985         Return a newly-allocated string.
2986         (demarshal_proxy, demarshal_object_path, demarshal_object)
2987         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2988         we get the wrong types from message.
2989         (get_type_demarshaller): New function, extracted from
2990         dbus_gvalue_demarshal.
2991         (demarshal_collection): New function, demarshals generic
2992         collection.
2993         (dbus_gvalue_demarshal): Just invoke result of
2994         get_type_demarshaller.  Throw error if we don't have one.
2995         (marshal_garray_basic): Abort on OOM.
2996         (get_type_marshaller): New function, extracted from
2997         dbus_gvalue_marshal.
2998         (collection_marshal_iterator, marshal_collection): New functions;
2999         implements generic marshalling for an iteratable specialized
3000         collection.
3001         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3002
3003         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3004         G_TYPE_STRING.
3005         (ptrarray_value_from_gvalue): Ditto.
3006         (ptrarray_append, ptrarray_free): New functions.
3007         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3008         (slist_append, slist_end_append, slist_free): New functions.
3009         (dbus_g_type_specialized_builtins_init): Add append fuctions
3010         for GPtrArray and GSList.  Register GSList.
3011         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3012
3013         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3014         New.
3015         (dbus_g_type_specialized_collection_init_append)
3016         (dbus_g_type_specialized_collection_append)
3017         (dbus_g_type_specialized_collection_end_append): Prototype.
3018         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3019         end_append_func.
3020
3021         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3022         (dbus_g_type_specialized_collection_append) 
3023         (dbus_g_type_specialized_collection_end_append): New functions.
3024         (dbus_g_type_map_value_iterate): Take const GValue.
3025         (dbus_g_type_collection_value_iterate): Ditto.
3026
3027         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3028         _dbus_gvalue_utils_test.
3029         
3030         * glib/dbus-gtest.h: Prototype it.
3031
3032         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3033         using uninitialized owner_list.
3034         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3035         public API.
3036         (dbus_g_proxy_end_call_internal): Update to use error set
3037         from dbus_gvalue_demarshal instead of setting it here.
3038         (dbus_g_proxy_begin_call): Move return_if_fail here.
3039
3040         * glib/dbus-gobject.c (write_interface): Update for
3041         dbus_gtype_to_signature returning new string.
3042
3043         * configure.in: Add glib/examples/statemachine.
3044
3045 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3046
3047         * configure.in: Add a configure option, --with-console-auth-dir
3048         
3049         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3050         new setting.  Patch from Kay Sievers.
3051
3052 2005-07-06  Colin Walters  <walters@verbum.org>
3053
3054         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3055         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3056         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3057         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3058         Delete in favor of dbus_g_proxy_begin_call and
3059         dbus_g_proxy_cancel_call.
3060         (DBusGProxyCall, DBusGProxyCallNotify): New.
3061         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3062         data, and destroy function.  This replaces
3063         dbus_g_pending_call_set_notify.
3064         (dbus_g_proxy_cancel_call): Prototype.
3065         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3066
3067         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3068         pending_calls map.
3069         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3070         internal proxy for calls to the bus. Remove
3071         pending_nameowner_calls, now the internal proxy keeps track.
3072         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3073         pending_nameowner_calls.
3074         (got_name_owner_cb): Update prototype, and use
3075         dbus_g_proxy_end_call.
3076         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3077         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3078         favor of using internal proxy.
3079         (dbus_g_proxy_manager_unregister): Update to use
3080         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3081         (dbus_g_proxy_init): Initialize pending calls map.
3082         (dbus_g_proxy_constructor): New.
3083         (dbus_g_proxy_class_init): Add get/set property functions,
3084         constructor, and add NAME, PATH, and INTERFACE properties.
3085         (cancel_pending_call): New function.
3086         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3087         cancel them.
3088         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3089         (GPendingNotifyClosure): New structure.
3090         (d_pending_call_notify, d_pending_call_free): Moved here from
3091         dbus-glib.c.
3092         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3093         ordering.
3094         (manager_begin_bus_call): New internal function for talking to
3095         internal bus proxy.
3096         (dbus_g_proxy_new): Construct object using GObjet properties.
3097         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3098         Create closure of same, and insert call into map of pending calls.
3099         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3100         call.  Look up pending call in current set.  Remove it when we've
3101         completed.
3102         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3103         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3104         and destroy function directly.
3105         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3106         (dbus_g_proxy_call): Invoke with NULL callback.
3107         (dbus_g_proxy_cancel_call): New function, replaces
3108         dbus_g_pending_call_cancel.
3109
3110         * glib/dbus-gparser.c (validate_signature): Fix call to
3111         dbus_set_g_error.
3112
3113         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3114         New quark for attaching metadata to GType.
3115         (info_hash): Delete.
3116         (lookup_object_info): Look up using quark.
3117         (dbus_g_object_type_install_info): Check that a type is classed,
3118         not that it's an object.  Also just install type data using quark
3119         instead of using global hash.
3120
3121         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3122         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3123         (GPendingNotifyClosure): Delete.
3124         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3125         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3126
3127         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3128         client method generation until we can fix it...
3129         
3130         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3131         (load_from_service_thread_func): Ditto.
3132
3133         * tools/dbus-names-model.c (struct NamesModel): Hold
3134         DBusGProxyCall.
3135         (have_names_notify): Update prototype, use
3136         dbus_g_proxy_cancel_call.
3137         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3138
3139         * tools/dbus-monitor.c (filter_func): Update for print_message
3140         API change.
3141
3142         * test/glib/test-dbus-glib.c: Add more tests for async
3143         invocations.  Update many begin_call/end_call pairs to just use
3144         dbus_g_proxy_call.
3145
3146         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3147         allows us to dump print-introspect.c.
3148
3149         * tools/dbus-print-message.h (print_message): Add literal argument
3150         to print_message which is intended to allow printing arguments without
3151         metadata like "string=".
3152
3153         * tools/dbus-print-message.c (print_iter): Add literal argument.
3154         (print_message): Allow printing string messages literally.
3155
3156 2005-07-05  Colin Walters  <walters@verbum.org>
3157
3158         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3159         Remove value refcount leak, original patch from Jorn Baayen
3160         <jorn@openedhand.com>.  Also remove useless extra value in favor
3161         of prepending to value array directly.
3162
3163 2005-07-02  Colin Walters  <walters@verbum.org>
3164
3165         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3166
3167 2005-07-01  Colin Walters  <walters@verbum.org>
3168
3169         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3170         
3171         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3172         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3173         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3174         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3175
3176 2005-06-30  Colin Walters  <walters@verbum.org>
3177
3178         * test/glib/test-dbus-glib.c:
3179         * test/glib/test-service-glib.c:
3180         * test/glib/test-service-glib.xml: Update tests for new error
3181         setting bits, also add async tests (patch from Ross Burton).
3182
3183         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3184         DBUS_GLIB_THREADS_LIBS.
3185
3186         * glib/dbus-gproxy.c (get_name_owner)
3187         (dbus_g_pending_call_end_valist): Ditto.
3188
3189         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3190         domain (GQuark) to DBusGErrorInfo.  
3191         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3192         quark in error_metadata.  Take message interface as default
3193         error message interface.
3194         (gerror_to_dbus_error_message): Pass message interface.
3195         (dbus_set_g_error): Resurrected.
3196         (dbus_g_error_info_free): New function.
3197         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3198         of _peek to actually create the object class if it hasn't been
3199         created yet.
3200         (dbus_g_error_domain_register): New function.
3201
3202         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3203
3204         * glib/dbus-gparser.c (validate_signature): Ditto.
3205
3206         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3207         (dbus_g_error_domain_register): Prototype.
3208
3209         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3210         Update tests.
3211
3212 2005-06-29  Colin Walters  <walters@verbum.org>
3213
3214         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3215         DBUS_TYPE_G_OBJECT_PATH.
3216
3217         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3218         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3219         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3220         (dbus_g_object_path_get_g_type): New function.
3221         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3222         to DBUS_TYPE_G_OBJECT_PATH by default.
3223         (demarshal_proxy): Remove unused name variable.
3224         (demarshal_object_path, marshal_object_path): New functions.
3225         (demarshal_proxy_array, marshal_proxy_array): Delete.
3226         
3227         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3228         DBUS_TYPE_G_OBJECT_PATH to char *.
3229         (dbus_g_type_get_lookup_function): Map builtin
3230         DBUS_TYPE_G_OBJECT_PATH.
3231
3232         * test/glib/test-dbus-glib.c
3233         * test/glib/test-service-glib.c (my_object_objpath): 
3234         Adapt tests to new object path marshalling.
3235
3236 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3237
3238         * configure.in: force check for Python >= 2.4
3239
3240 2005-06-29  Colin Walters  <walters@verbum.org>
3241         
3242         Patch from Ross Burton <ross@openedhand.com>
3243         
3244         * glib/dbus-gobject.c (invoke_object_method): Unset object
3245         value in all cases, not only in async case.
3246
3247 2005-06-29  Colin Walters  <walters@verbum.org>
3248
3249         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3250         name_call for keeping track of any outgoing GetNameOwner call.
3251         Also add for_owner and associated.
3252         (struct _DBusGProxyManager): Add owner_names, which is hash table
3253         that maps a base name to a list of names it owns (that we're
3254         interested in).  Add pending_nameowner_calls which is a list of
3255         all outstanding GetNameOwner; avoids us having to iterate over
3256         every proxy.  Add unassociated_proxies which keeps track of name
3257         proxies with no associated name owner.
3258         (dbus_g_proxy_manager_unref): Destroy owner_names.
3259         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3260         name refcounts.
3261         (find_name_in_info, name_owner_foreach)
3262         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3263         (dbus_g_proxy_manager_monitor_name_owner)
3264         (dbus_g_proxy_manager_unmonitor_name_owner)
3265         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3266         New functions; they manipulate the owner_names mapping.
3267         (got_name_owner_cb): New function.
3268         (get_name_owner): New function, extracted from
3269         dbus_g_proxy_new_for_name_owner.
3270         (dbus_g_proxy_manager_register): For now we need to keep track of
3271         all NameOwnerChanged.  Also if the proxy is for a name, if we
3272         don't already know the name owner, queue a new GetNameOwner
3273         request and add it to our list of unassociated proxies.  Otherwise
3274         inc the refcount.
3275         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3276         cancel any pending GetNameOwner call, etc.
3277         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3278         the owner_names mapping to look up the current names for the
3279         signal source, and dispatch to any proxies for that name.
3280         (dbus_g_proxy_new): Initialize new members.
3281         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3282         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3283         (dbus_g_pending_call_end_valist): New function, extracted from
3284         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3285         but want to use the GLib infrastructure.  Also note how many
3286         arguments in reply were over.
3287         (dbus_g_pending_call_end): New function, just call
3288         dbus_g_pending_call_end_valist.
3289         (dbus_g_proxy_end_call_internal): Just call
3290         dbus_g_pending_call_end_valist.
3291
3292         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3293         of builtin marshaller for STRING_STRING_STRING.
3294
3295         * test/glib/test-dbus-glib.c: 
3296         * test/glib/test-service-glib.c:
3297         * test/glib/test-service-glib.xml:
3298         Extend tests to cover name proxies, destruction of owner proxies,
3299         etc.
3300         
3301         * glib/examples/example-signal-recipient.c
3302         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3303         
3304         * tools/dbus-send.c (main): Print D-BUS error name in addition
3305         to message.
3306
3307 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3308
3309         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3310         cmessage_function_handler): Patch from 
3311         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3312         by using the Py_GILState_Ensure/Release to synchronize with the
3313         python runtime.
3314         
3315 2005-06-28  Ray Strode  <rstrode@redhat.com>
3316
3317         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3318         babysitter helper process on last unref, bug #2813.
3319
3320 2005-06-27  Colin Walters  <walters@verbum.org>
3321
3322         * test/glib/test-dbus-glib.c: 
3323         * test/glib/test-service-glib.c:
3324         * test/glib/test-service-glib.xml:
3325         Test hash table signal emitting.
3326
3327         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3328         types to their fundamental basis types, since this is what
3329         marshallers operate on.  Also add an entry for VOID__BOXED.
3330         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3331
3332 2005-06-26  Havoc Pennington  <hp@redhat.com>
3333
3334         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3335         from Don Park
3336
3337 2005-06-26  Colin Walters  <walters@verbum.org>
3338
3339         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3340         (dbus_g_error_set): New public function from its ashes; used by
3341         both service-side method implementation and GLib bindings
3342         internals.
3343         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3344         (_dbus_glib_test): Add some tests.
3345
3346         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3347
3348         * test/glib/test-service-glib.c (my_object_throw_error): Use
3349         dbus_g_error_set.
3350
3351         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3352         errors thrown by dbus_g_error_set.
3353
3354         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3355
3356         * glib/dbus-gparser.c (validate_signature): Ditto.
3357
3358         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3359         (dbus_g_proxy_end_call_internal): Ditto.
3360
3361         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3362         converts DBUS_ERROR_x to DBUS_GERROR_x.
3363         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3364
3365         * doc/TODO: Remove error TODO.
3366
3367         * doc/dbus-tutorial.xml: Update with documentation about error
3368         handling.
3369
3370         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3371         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3372         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3373
3374 2005-06-22  Colin Walters  <walters@verbum.org>
3375         
3376         Patch from Ross Burton <ross@openedhand.com>
3377
3378         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3379
3380 2005-06-20  Colin Walters  <walters@verbum.org>
3381
3382         * configure.in: Add glib/examples.
3383
3384         * glib/Makefile.am: Add examples/
3385
3386         * glib/examples/.cvsignore
3387         * glib/examples/Makefile.am
3388         * glib/examples/example-client.c
3389         * glib/examples/example-service.c
3390         * glib/examples/example-service.xml
3391         * glib/examples/example-signal-emitter.c
3392         * glib/examples/example-signal-emitter.xml
3393         * glib/examples/example-signal-recipient.c:
3394         New files; GLib binding examples, ported from
3395         python/examples.
3396
3397 2005-06-20  Colin Walters  <walters@verbum.org>
3398
3399         * dbus/dbus-glib.h: 
3400         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3401         dbus_g_proxy_call.
3402
3403         * glib/dbus-binding-tool-glib.c: 
3404         * doc/dbus-tutorial.xml: 
3405         * test/glib/test-dbus-glib.c: Update for rename.
3406         
3407 2005-06-20  Colin Walters  <walters@verbum.org>
3408
3409         Patch suggested by Ross Burton <ross@openedhand.com>
3410
3411         * glib/dbus-gobject.c (export_signals): Free signal name.
3412         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3413         memory leak.  Add a bit of documentation.
3414         (dbus_g_method_return_error): Free context, and note we do
3415         so.
3416
3417 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3418
3419         * dbus/dbus-glib.h:
3420         * glib/dbus-gobject.c:
3421         * glib/dbus-gproxy.c:
3422         * glib/dbus-gvalue.c: Predeclare structs as 
3423         typedef struct _Something Something instead of 
3424         typedef struct Something Something, so we can 
3425         redeclare the prototypes. Other GNOME libraries 
3426         do this already.
3427
3428 2005-06-17  Colin Walters  <walters@verbum.org>
3429
3430         * tools/dbus-names-model.c (have_names_notify): Fix call
3431         to dbus_g_proxy_end_call.
3432         
3433 2005-06-17  Colin Walters  <walters@verbum.org>
3434
3435         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3436         spew warnings if we get malformed remote signals.
3437
3438         * glib/dbus-gobject.c (propsig_iterate): New function.
3439         (lookup_object_info): New function, extracted from
3440         lookup_object_and_method.
3441         (introspect_properties, introspect_signals): Delete; these
3442         are merged into write_interface.
3443         (write_interface): Write out signals and properties here;
3444         dump the org.gtk.object stuff and use the interface given
3445         in the introspection data blob.  Also fix up property XML.
3446         (lookup_values): New function.
3447         (introspect_interfaces): Gather a mapping from interface to a
3448         list of its methods, signals, and properties, then write out
3449         each interface.
3450         (lookup_object_and_method): Use lookup_object_info.
3451         (struct DBusGSignalClosure): Add interface.
3452         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3453         we can just use the constant data.
3454         (dbus_g_signal_closure_finalize): Don't free signal name.
3455         (signal_emitter_marshaller): Use interface from signal closure.
3456         (export_signals): Only export signals mentioned in introspection
3457         blob.
3458         (dbus_g_connection_register_g_object): Warn if we have no
3459         introspection data for an object.
3460         (funcsig_equal): Remove unused variable.
3461         (dbus_g_object_register_marshaller): Take varargs instead of
3462         list.
3463         (dbus_g_object_register_marshaller_array): New function,
3464         extracted from old dbus_g_object_register_marshaller.
3465
3466         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3467         signals and property data.
3468         (write_quoted_string): New function, extracted from generate_glue.
3469         (generate_glue): Write signals and properties to introspection
3470         blob.
3471
3472         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3473         exported_signals and exported_properties.
3474         (dbus_g_object_register_marshaller): Update prototype.
3475         (dbus_g_object_register_marshaller_array): Prototype.
3476         
3477         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3478
3479         * test/glib/test-service-glib.c: Add new test signals and method
3480         to emit them.
3481
3482         * test/glib/test-service-glib.xml: Add some test signals.
3483
3484         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3485         and my-object-marshal.h
3486         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3487         my-object-marshal.c.
3488         (my-object-marshal.c, my-object-marshal.h): Implement.
3489
3490         * test/glib/.cvsignore: Update.
3491
3492         * doc/TODO: Remove two GLib TODO items fixed by this
3493         patch.
3494
3495 2005-06-16  Colin Walters  <walters@verbum.org>
3496
3497         * doc/TODO: Update for GLib bindings.
3498         
3499 2005-06-16  Colin Walters  <walters@verbum.org>
3500
3501         * glib/dbus-binding-tool-glib.c:
3502         * glib/dbus-gobject.c:
3503         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3504         from Ross Burton, for his GLib bindings work.
3505
3506 2005-06-16  Colin Walters  <walters@verbum.org>
3507
3508         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3509         to iterate instead of walking to G_TYPE_INVALID.
3510
3511         Patch based on a patch from Ryan Gammon.
3512
3513 2005-06-16  Colin Walters  <walters@verbum.org>
3514
3515         * bus/bus.c (bus_context_new): Set parser to NULL
3516         after we unref it (Patch from Chris Boscolo, #2174).
3517         
3518 2005-06-16  Colin Walters  <walters@verbum.org>
3519
3520         * python/dbus_bindings.pyx.in: Import size_t,
3521         __int64_t, __uint64_t, and __signed.
3522
3523         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3524         Define cmsg struct, output it.
3525         (_dbus_read_credentials_unix_socket):
3526         Use cmsg struct.
3527         
3528         Patch from Joe Markus Clarke for FreeBSD support.
3529         
3530 2005-06-16  Colin Walters  <walters@verbum.org>
3531
3532         * tools/dbus-send.c (append_array): Use strtok.
3533         (append_dict): New function.
3534         (type_from_name): New function, extracted from main.
3535         (main): Handle sending dicts.
3536
3537         * tools/dbus-print-message.c (print_iter): Print dict
3538         entries.
3539         
3540 2005-06-16  Colin Walters  <walters@verbum.org>
3541
3542         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3543         values as the empty string (#2948).
3544         
3545 2005-06-16  Colin Walters  <walters@verbum.org>
3546
3547         * dbus/Makefile.am:
3548         * mono/doc/Makefile.am:
3549         * test/glib/Makefile.am:
3550
3551         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3552
3553 2005-06-16  Colin Walters  <walters@verbum.org>
3554
3555         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3556         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3557
3558         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3559         Increment pointer after swapping fixed array.  Add assertion
3560         for array length.
3561                 
3562 2005-06-15  Colin Walters  <walters@verbum.org>
3563
3564         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3565         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3566         
3567 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3568
3569         * NEWS: Update to 0.34
3570
3571 2005-06-15  David Zeuthen  <davidz@redhat.com>
3572
3573         * configure.in (LT_CURRENT): Revert back to 1 as the library
3574         hasn't changed and we've certainly not committed to protocol
3575         stability yet.  All this does is to break ABI. See commit note
3576         from hp@redhat.com 2005-05-05 for details.
3577         
3578 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3579
3580         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3581         (_dbus_connection_run_builtin_filters): New method
3582         (dbus_connection_dispatch): Run the builtin filters which in turn
3583         runs the peer filter which handles Ping messages.
3584
3585         * doc/TODO: 
3586          - Ping isn't handled: This patch fixes it
3587          
3588          - Add a test case for the Ping message: added TODO item
3589
3590 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3591
3592         * dbus/dbus-message.c:
3593         (dbus_message_has_path): New method
3594         (dbus_message_has_interface): New method
3595         (dbus_message_has_member): New method
3596
3597         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3598         New method
3599
3600         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3601         the keyring directory is private to the user
3602
3603         * doc/TODO:
3604          - The convenience functions in dbus-bus.h should perhaps have
3605          the signatures that they would have if they were autogenerated
3606          stubs. e.g. the acquire service function. We should also evaluate
3607          which of these functions to include, in light of the fact that
3608          GLib/Qt native stubs will probably also exist.: Punted
3609
3610          - add dbus_message_has_path(), maybe has_member/interface:
3611          fixed in this patch
3612
3613          - in dbus-keyring.c, enforce that the keyring dir is not
3614          world readable/writable: Fixed in this patch
3615
3616 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3617
3618         * dbus/dbus-marshal-validate.h: Added a new validation
3619         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3620         out of memory errors when validating signitures
3621
3622         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3623         in places where we previously used DBUS_VALID and a FALSE return 
3624         value to indicate OOM
3625         
3626         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3627         Use a stack to track the number of elements inside containers.  The 
3628         stack values are then used to validate that dict entries have only two
3629         elements within them.
3630         (validate_body_helper): check the reason for failure when validating
3631         varients
3632         
3633         * dbus/dbus-message.c (load_message): use 
3634         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3635         DBUS_VALID and a FALSE return value to indicate OOM
3636
3637         * doc/TODO: remove "- validate dict entry number of fields" as this
3638         patch fixes it
3639
3640 2005-06-14  David Zeuthen  <davidz@redhat.com>
3641
3642         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3643         watches (if applicable) and add new watches
3644
3645         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3646         (main): Setup SIGIO signal handler if using D_NOTIFY
3647
3648         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3649
3650         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3651         (merge_included): Also merge conf_dirs list
3652         (bus_config_parser_unref): Clear conf_dirs list
3653         (include_dir): Add directory to conf_dirs list
3654         (bus_config_parser_get_conf_dirs): New function
3655
3656         * bus/dir-watch.[ch]: New files
3657
3658         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3659
3660         * configure.in: Add checks for D_NOTIFY on Linux
3661
3662 2005-06-14  Colin Walters  <walters@verbum.org>
3663
3664         * glib/dbus-binding-tool-glib.c:
3665         * glib/dbus-gobject.c:
3666         * glib/dbus-gvalue.c: Fix indentation and brace style.
3667         
3668 2005-06-14  Ross Burton <ross@openedhand.com>.
3669
3670         * glib/dbus-glib.h: Make DBusGMethodInvocation
3671         a private structure.  Rearrange prototypes a bit.
3672         
3673         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3674         documentation for first_arg_type.
3675         
3676         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3677         here, add documentation.  Move dbus_g_method_return
3678         and dbus_g_method_return_error into public API
3679         section.
3680
3681 2005-06-14  Colin Walters  <walters@verbum.org>
3682
3683         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3684         Add missing return statements, noticed by Ross Burton.
3685         
3686 2005-06-13  Ross Burton <ross@openedhand.com>.
3687
3688         * glib/dbus-gobject.c: Handle errors on message
3689         demarshalling by sending error message back.
3690         * glib/dbus-gvalue.c: Initialize return variables.
3691
3692 2005-06-13  Colin Walters  <walters@verbum.org>
3693
3694         * glib/Makefile.am: Fix thinko in last patch.
3695
3696 2005-06-13  Colin Walters  <walters@verbum.org>
3697
3698         * glib/Makefile.am: Move dbus-gtype-specialized.c
3699         and dbus-gtype-specialized.h into a _HEADERS variable,
3700         install them.
3701
3702 2005-06-12  Colin Walters  <walters@verbum.org>
3703
3704         Async signals and various bugfixes and testing by
3705         Ross Burton <ross@openedhand.com>.
3706
3707         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3708         (dbus_gvalue_genmarshal_name_from_type)
3709         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3710         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3711         (dbus_g_value_types_init, dbus_gtype_from_signature)
3712         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3713         (dbus_gtypes_from_arg_signature): New function prototypes.
3714         (dbus_gvalue_demarshal): Take context and error arguments.
3715         (dbus_gvalue_demarshal_variant): New function.
3716         (dbus_gvalue_demarshal_message): New function.
3717         (dbus_gvalue_store): Delete.
3718
3719         * glib/dbus-gvalue.c:
3720
3721         File has been almost entirely rewritten; now we special-case
3722         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3723         hash tables correctly, etc.  Full support for recursive values
3724         is not yet complete.
3725
3726         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3727         argument of signal to G_TYPE_POINTER since we now pass a
3728         structure.
3729         (lookup_g_marshaller): Delete in favor of
3730         _dbus_gobject_lookup_marshaller.
3731         (marshal_dbus_message_to_g_marshaller): Use
3732         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3733         to handle remote signal callbacks.
3734         (dbus_g_proxy_new_from_proxy): New function; creates a new
3735         DBusGProxy by copying an existing one.
3736         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3737         (dbus_g_proxy_get_path): New functions.
3738         (dbus_g_proxy_marshal_args_to_message): New function;
3739         factored out of existing code.
3740         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3741         from a varargs array.
3742         (dbus_g_proxy_begin_call_internal): New function.
3743         (dbus_g_proxy_end_call_internal): New function.
3744         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3745         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3746         after collecting args into value array.
3747         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3748         invoke dbus_g_proxy_end_call_internal.
3749         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3750         end_call_internal.
3751         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3752         types.
3753         (array_free_all): New function.
3754         (dbus_g_proxy_add_signal): Take GTypes.
3755
3756         * glib/dbus-gobject.h:
3757         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3758         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3759         Prototype.
3760
3761         * glib/dbus-gobject.c: Add a global marshal_table hash which
3762         stores mappings from type signatures to marshallers.  Change lots
3763         of invocations of dbus_gtype_to_dbus_type to
3764         dbus_gtype_to_signature.
3765         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3766         (introspect_signals): Fix test for query.return_type.
3767         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3768         (invoke_object_method): Many changes.  Handle asynchronous
3769         invocations.  Convert arguments with
3770         dbus_gvalue_demarshal_message.  Handle errors.  Use
3771         DBusSignatureIter instead of strlen on args. Handle all arguments
3772         generically.  Special-case variants.
3773         (dbus_g_method_return, dbus_g_method_return_error): New function.
3774         (DBusGSignalClosure): New structure, closes over signal
3775         information.
3776         (dbus_g_signal_closure_new): New function.
3777         (dbus_g_signal_closure_finalize): New function.
3778         (signal_emitter_marshaller): New function; is special marshaller
3779         which emits signals on bus.
3780         (export_signals): New function; introspects object signals and
3781         connects to them.
3782         (dbus_g_object_type_install_info): Take GType instead of
3783         GObjectClass.
3784         (dbus_g_connection_register_g_object): Invoke export_signals.
3785         (dbus_g_connection_lookup_g_object): New function.
3786         (DBusGFuncSignature) New structure; used for mapping type
3787         signatures to marshallers.
3788         (funcsig_hash): New function; hashes DBusGFuncSignature.
3789         (funcsig_equal): New function; compares DBusGFuncSignature.
3790         (_dbus_gobject_lookup_marshaller): New function.
3791         (dbus_g_object_register_marshaller): New function; used to
3792         register a marshaller at runtime for a particular signature.
3793
3794         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3795
3796         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3797         which notes a server method implementation should be
3798         asynchronous.
3799
3800         * glib/dbus-binding-tool-glib.c
3801         (dbus_binding_tool_output_glib_server): Call
3802         dbus_g_value_types_init.
3803         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3804         variants specially.
3805         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3806         of a lookup function.
3807         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3808         (write_untyped_out_args): New method; write output arguments.
3809         (write_formal_declarations_for_direction): Function for
3810         writing prototypes.
3811         (write_formal_parameters_for_direction): Function for
3812         writing implementations.
3813         (write_typed_args_for_direction): Function for writing
3814         arguments prefixed with GTypes.
3815         (write_async_method_client): Write out async version
3816         of method.
3817
3818         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3819         (dbus_g_type_get_marshal_name): Move mapping from GType
3820         to marshal name into here.
3821         (dbus_g_type_get_c_name): Move into here.
3822         (compute_marshaller): Convert signature to type with
3823         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3824         (compute_marshaller_name): Ditto.
3825         (compute_marshaller): Handle async signal annotations.
3826         (gather_marshallers): Return if we don't have a known
3827         prefix.
3828         (generate_glue): Collect introspection blob here, and
3829         write all of the blob at the end.  This allows an object
3830         with multiple interfaces to work.
3831         Mark async methods in introspection blob.
3832
3833         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3834         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3835         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3836
3837         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3838         avoids people accidentally using DBUS_TYPE_* which should
3839         not be necessary anymore.
3840         Do include dbus-gtype-specialized.h, which are utilities
3841         for GLib container types.
3842         Add various #defines for types such as
3843         DBUS_TYPE_G_BOOLEAN_ARRAY.
3844         (DBusGValueIterator, DBusGValue): Define, not fully used
3845         yet.
3846         (dbus_g_value_get_g_type): Type for recursive value.
3847         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3848         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3849         (dbus_g_value_free): Prototypes.
3850         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3851         (dbus_g_proxy_set_interface): Prototype.
3852         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3853         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3854         types.
3855         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3856         Accessors.
3857         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3858         doing async invocations.
3859         (dbus_g_method_return, dbus_g_method_return_error):
3860         Prototypes.
3861         * doc/dbus-tutorial.xml: Update GLib section.
3862         
3863         * tools/dbus-viewer.c (load_child_nodes): Update
3864         for new invocation type of dbus_g_proxy_end_call.
3865         (load_from_service_thread_func): Ditto.
3866
3867         * tools/print-introspect.c (main): Ditto.
3868
3869         * tools/dbus-names-model.c (have_names_notify)
3870         (names_model_reload, names_model_set_connection)
3871         Use GTypes.
3872
3873         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3874         needed since Python bindings use GLib bindings.
3875
3876         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3877         Add --prefix argument.
3878
3879         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3880         unneeded --ignore-unsupported arg.
3881         
3882         * test/glib/test-service-glib.c: 
3883         * test/glib/test-service-glib.xml:
3884         * test/glib/test-dbus-glib.c: Add many more tests.
3885
3886 2005-06-06  David Zeuthen  <davidz@redhat.com>
3887
3888         * doc/TODO: Add item about need to remove deprecated functions.
3889
3890         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3891
3892         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3893         to repair the ABI which was broken with the last commit.
3894
3895 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3896
3897         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3898         (dbus_connection_disconnect): renamed to dbus_connection_close 
3899         for API symmetry with dbus_connection_open
3900         (_dbus_connection_open_internal): 
3901         s/dbus_connection_disconnect/dbus_connection_close
3902
3903         * dbus/dbus-bus.c (dbus_bus_get):
3904         s/dbus_connection_disconnect/dbus_connection_close
3905
3906         * bus/connection.c (bus_connections_unref, 
3907         bus_connections_setup_connection, bus_connections_expire_incomplete):
3908         s/dbus_connection_disconnect/dbus_connection_close
3909
3910         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3911         kill_client_connection_unchecked, check_hello_connection):
3912         s/dbus_connection_disconnect/dbus_connection_close
3913
3914         * bus/bus.c (new_connection_callback):
3915         s/dbus_connection_disconnect/dbus_connection_close
3916
3917         * tools/dbus-send.c (main):
3918         s/dbus_connection_disconnect/dbus_connection_close
3919
3920         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3921         s/dbus_connection_disconnect/dbus_connection_close
3922         
3923         * test/test-service.c (path_message_func, filter_func):
3924         s/dbus_connection_disconnect/dbus_connection_close
3925         
3926         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3927         
3928 2005-05-25  Colin Walters  <walters@verbum.org>
3929
3930         * dbus/dbus-protocol.h: Move various bus service #defines such
3931           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3932           dbus/dbus-shared.h.
3933         * dbus/dbus-shared.h: Various defines moved here.
3934         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3935
3936 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3937
3938         * python/__init__.py: Python bindings deserve a minor version
3939         update.  Upped to (0, 40, 2)
3940
3941 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3942
3943         * python/decorators.py: add explicitly_pass_message decorator
3944         for passing in the dbus message as keyword for edge case signal
3945         handling
3946
3947         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3948         to conform with what dbus expects for match rules
3949         (SignalMatchRule.execute): add the dbus message as a keyword
3950         if the signal handler has requested it
3951
3952         * python/examples/example/signal-recipient.py: added some more
3953         examples on how to hook up to signals
3954
3955 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3956
3957         * python/decorators.py: import dbus_bindings
3958
3959         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3960         SignalMatchNode): new classes that implement wildcard signal
3961         callback matching using a tree lookup. Heavily modified from a
3962         patch sent by Celso Pinto (fd.o bug #3241)
3963
3964         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3965         use new match classes to handle signals.
3966
3967 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3968         
3969         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3970
3971 2005-05-18  Havoc Pennington  <hp@redhat.com>
3972
3973         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3974         gettext. Not really worth requiring yet perhaps, but any
3975         production quality 1.0 would require it so we should go ahead and
3976         get things set up. We do have a couple token calls to
3977         bindtextdomain in the code already.
3978
3979 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3980
3981         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3982         when using recursive g_main_loops
3983
3984         * python/_dbus.py (class Bus): add the ProxyObjectClass
3985         alias for ProxyObject to make it easier for the Twisted 
3986         networking framework to integrate dbus.
3987
3988         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3989         alias for ProxyMethod to make it easier for the Twisted 
3990         networking framework to integrate dbus. 
3991
3992 2005-05-11  Ross Burton  <ross@openedhand.com>
3993
3994         * glib/dbus-glib-tool.c: Add --prefix argument.
3995         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3996         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3997         Add prefix argument.
3998         (generate_glue): Pass prefix argument down.
3999         (dbus_binding_tool_output_glib_server): Pass prefix to
4000         glib-genmarshal.
4001         
4002 2005-05-11  Colin Walters  <walters@verbum.org>
4003
4004         * tools/dbus-send.c (append_array): New function.
4005         (append_arg): Broken out from main.
4006         (main): Add cheesy hack to send arrays and variants.
4007         (usage): Update.
4008         * tools/dbus-print-message.c (print_iter): Broken out
4009         from main.
4010
4011 2005-05-11  Colin Walters  <walters@verbum.org>
4012
4013         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4014         New function, returns signature string for signature iter.
4015         * dbus/dbus-signature.h: Prototype it.
4016         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4017         New function, returns signature string for message iter.
4018         (dbus_message_iter_get_array_len): New function, returns
4019         length of array.
4020         (dbus_message_iter_get_fixed_array): Fix assertion; this
4021         function should be used when the iter is pointing to the
4022         contents of an array
4023         * dbus/dbus-message.h: Prototypes.
4024         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4025         New function; returns length of an array.
4026         * dbus/dbus-marshal-recursive.h: Prototype it.
4027         
4028 2005-05-11  Colin Walters  <walters@verbum.org>
4029
4030         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4031         compilation error.
4032         
4033 2005-05-08  Havoc Pennington  <hp@redhat.com>
4034
4035         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4036         daemon's pid, not the parent's pid, to the file descriptor.
4037         Reported by Taj Morton.
4038
4039 2005-05-05  Havoc Pennington  <hp@redhat.com>
4040
4041         * configure.in (LT_*): add notes on how the libtool versioning
4042         works to save thinking. Increment soname to indicate protocol
4043         breakage (though really the library interface hasn't changed I
4044         guess)
4045
4046         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4047         verify the GUID received from server matches what we were
4048         expecting, if we had an expectation
4049
4050         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4051         (_dbus_auth_get_guid_from_server): new function
4052         (send_begin): parse the OK args
4053
4054         * doc/dbus-specification.xml: add GUID to the auth protocol
4055
4056 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4057
4058         * Fix my name in previous changelog ;)
4059
4060         * python/proxies.py (ProxyObject.__getattr__): add further patch
4061         from Anthony Baxter to throw an AttributeError when python 
4062         __special__ functions are called instead of marshling them over 
4063         the bus (Bug#1685 comment 3).
4064
4065 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4066
4067         * python/Makefile.am: changed to use pyexecdir for the binding
4068         shared libraries (Bug#2494)
4069
4070         * python/exceptions.py: bring exceptions over from the bindings
4071         so they can be used in applications (Bug#2036)
4072         Make all exceptions derive from DBusException
4073
4074         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4075         of classes so that print obj doesn't throw an exception (Bug #1685)
4076
4077 2005-05-03  Ross Burton  <ross@openedhand.com>
4078
4079         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4080         Return if we get an error during registration.  Set up a
4081         weak reference on object to unregister if object is destroyed.
4082         (unregister_gobject): New function.
4083         
4084 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4085
4086         * python/dbus_bindings.pyx.in: 
4087         - added new type classes for hinting to the marashaler what type 
4088         to send over the wire
4089         - added int16 and uint16 marshalers
4090         - Fixed a bug in the type constants that caused int32 to go out
4091         as uint16 over the wire
4092         * python/dbus.py: split up into different files and renamed _dbus.py
4093         * python/__init__.py, python/_util.py, python/decorators.py, 
4094         python/exceptions.py, python/proxies.py, python/services.py,
4095         python/types.py: new files split off from dbus.py
4096         * python/Makefile.am: Add new files, remove dbus.py and 
4097         install all python files to <python module dir>/dbus
4098         * python/examples/*: Added #!/usr/bin/env python to the top of
4099         every example.  Patch provided by Tatavarty Kalyan
4100
4101 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4102
4103         * NEWS: Update to 0.33
4104
4105 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4106
4107         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4108         method for doing async calls
4109         (_pending_call_notification): New C function for handling pendning call
4110         callbacks
4111         (set_notify): New method for setting pending call notification
4112         
4113         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4114         Async capabilities added to remote method calls
4115         (Sender): class removed
4116         (RemoteService): class removed
4117         (ObjectTree): class removed for now
4118         (RemoteObject): Renamed to ProxyObject
4119         (RemoteMethod): Renamed to ProxyMethod
4120         (method): Decorator added for decorating python methods as dbus methods
4121         (signal): Decorator added for decorating python methods as signal emitters
4122         (ObjectType): Metaclass added for generating introspection data and the
4123         method callback vtable
4124         (Interface): Wrapper class added to wrap objects in a dbus interface
4125         (Object): Uses ObjectType as its metaclass and exports Introspect
4126         of the org.freedesktop.DBus.Introspectable interface
4127         (ValidationException, UnknownMethodException): new exceptions
4128
4129         * python/examples/*: Modified to fit with the new bindings
4130
4131 2005-04-23  Havoc Pennington  <hp@redhat.com>
4132
4133         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4134         reported by Tony Houghton
4135
4136         * test/test-service.c (main): test
4137         dbus_connection_get_object_path_data()
4138
4139         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4140         the exact_match
4141         (_dbus_object_tree_get_user_data_unlocked): new function used by
4142         dbus_connection_get_object_path_data()
4143         (do_register): add assertion test for get_user_data_unlocked
4144         (object_tree_test_iteration): more tests
4145
4146         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4147         new function from Dan Reed to let you get the user data from 
4148         dbus_connection_register_object_path()
4149
4150 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4151
4152         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4153         in numerous places that did not account for the NULL terminator
4154         (signature_from_seed): changed the manual string copy loop to 
4155         just use strcpy instead
4156         make check should now pass
4157
4158 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4159
4160         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4161         so that it allows messages that are not signals to pass in 
4162         NULL as the interface.
4163
4164 2005-04-18  David Zeuthen  <davidz@redhat.com>
4165
4166         * glib/dbus-gmain.c (io_handler_destroy_source): 
4167         (timeout_handler_destroy_source, connection_setup_free): 
4168         Also unref the source to avoid memory leaks.
4169
4170 2005-04-13  David Zeuthen  <davidz@redhat.com>
4171
4172         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4173         more reasonable, yet still totally arbitrary, value :-). 
4174
4175 2005-04-13  David Zeuthen  <davidz@redhat.com>
4176
4177         * doc/TODO: Added an "important for 1.0" item about selinux
4178         allow/deny messages
4179
4180 2005-04-13  David Zeuthen  <davidz@redhat.com>
4181
4182         * bus/selinux.c: Add c-file-style to top of file
4183         (log_audit_callback): Don't free the data here anymore
4184         (bus_selinux_check): Don't take spid and tpid since appending
4185         that to auxdata may OOM.
4186         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4187         to the caller if we are OOM by taking an error object.
4188         (bus_selinux_allows_send): -do-
4189
4190         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4191         and bus_selinux_allows_send
4192
4193         * bus/bus.c (bus_context_check_security_policy): Pass error and
4194         pass on OOM thrown by bus_selinux_allows_send()
4195
4196         * bus/services.c (bus_registry_acquire_service): Pass error and
4197         pass on OOM thrown by bus_selinux_allows_acquire_service()
4198
4199 2005-04-13  Havoc Pennington  <hp@redhat.com>
4200
4201         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4202         message at a time to avoid monopolizing the main loop, bug 
4203         #2953 from Benjamin Otte
4204
4205 2005-04-09  Havoc Pennington  <hp@redhat.com>
4206
4207         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4208         possible overlap, fix from Daniel Reed
4209         (fixup_alignment): fix signedness warnings
4210         (_dbus_string_append_unichar): ditto
4211
4212 2005-04-09  Havoc Pennington  <hp@redhat.com>
4213
4214         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4215
4216         * glib/dbus-glib-tool.c (main): fix warning
4217
4218         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4219
4220         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4221         add a new function that can be used in simple applications that
4222         don't have a main loop and are willing to block
4223
4224 2005-04-05  David Zeuthen  <davidz@redhat.com>
4225
4226         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4227
4228         * glib/dbus-gmain.c:
4229         (io_handler_destroy_source): Remove from list of IO handlers
4230         of the ConnectionSetup object
4231         (timeout_handler_destroy_source): -do- for timeout handlers
4232         (io_handler_source_finalized): Don't remove from list since
4233         we now do that in io_handler_destroy_source(). Renamed from
4234         io_handler_source_destroyed
4235         (timeout_handler_source_destroyed): -do- for timeout handlers
4236         (connection_setup_free): It is now safe to iterate over all
4237         IO and timeout handlers as the _destroy_source removes them
4238         from the list synchronously
4239
4240 2005-03-30  Havoc Pennington  <hp@redhat.com>
4241
4242         * configure.in: change check to gtk 2.4
4243
4244         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4245         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4246         to 2.4
4247
4248 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4249
4250         * News: Update 0.32
4251
4252         * HACKING: Fixed realease instructions.  configure.in should be updated to
4253           the next release by the person who made the last release.
4254
4255 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4256
4257         * python/lvalue_cast_post_process.py - removed.  Patch has been
4258           submitted to Pyrex maintainers that fixes gcc4.0 errors
4259
4260         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4261
4262 2005-03-24  Daniel Reed  <n@ml.org>
4263
4264         * tools/Makefile.am: Make print-introspect and
4265         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4266
4267 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4268
4269         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4270
4271         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4272           had in Red Hat packages for a while but for some reason never 
4273           got merged upstream
4274           (_dbus_is_a_number): New checks if a string
4275           can be converted to a number and does the conversion if it can
4276           (_dbus_user_database_lookup): Add check to see if the given username
4277           is a udi.  This allows udi's to be used instead of usernames in the
4278           config file.
4279           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4280           is a gdi.  This allows gdi's to be used instead of groupnames in the
4281           config file.
4282
4283 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4284
4285         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4286           code so that it compiles with gcc4.0
4287
4288         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4289           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4290           results back to dbus_binding.c
4291
4292 2005-03-20  Colin Walters  <walters@verbum.org>
4293
4294         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4295
4296         * configure.in: Require GTK+ 2.6.
4297         
4298 2005-03-20  Colin Walters  <walters@verbum.org>
4299
4300         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4301
4302 2005-03-17  Tom Parker  <palfrey@tevp.net>
4303
4304         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4305         print DBUS_UID_UNSET; instead print passed username.  Also
4306         be sure to actually use gid looked up in cache.
4307         
4308         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4309         for DBUS_GID_UNSET and groupname.
4310
4311 2005-03-17  Colin Walters  <walters@verbum.org>
4312
4313         * bus/print-introspect.c: Move to tools/.
4314         * bus/run-with-tmp-session-bus.sh: Ditto.
4315         
4316         * glib/Makefile.am (dbus-glib-bindings.h): Move
4317         generation to tools/Makefile.am.
4318
4319         * test/glib/run-test.sh: Update to handle move
4320         of run-with-tmp-session-bus.sh.
4321
4322         * test/glib/test-service-glib.c: Update to handle
4323         move of dbus-glib-bindings.h.
4324
4325         * tools/print-introspect.c: Moved here
4326         from bus/, and ported to GLib bindings.
4327
4328         * tools/run-with-tmp-session-bus.sh: Moved here
4329         from bus/.
4330
4331         * tools/Makefile.am: Generate dbus-glib-bindings.h
4332         and dbus-bus-introspect.xml here.
4333
4334         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4335         Update.
4336
4337 2005-03-17  Colin Walters  <walters@verbum.org>
4338
4339         * bus/driver.c (write_args_for_direction): Use
4340         _dbus_string_get_const_data to retrieve string;
4341         _dbus_string_get_const_data_len doesn't actually return
4342         a NULL-terminated substring.
4343
4344         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4345         (main): Change to use org_freedesktop_DBus_request_name
4346         instead of using g_proxy_begin_call/end_call.
4347
4348 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4349
4350         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4351         generating the finalizer.  Fixes from Ben Maurer.
4352
4353 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4354
4355         * mono/BusDriver.cs: Update method names: ListServices
4356         becomes ListNames; GetOwner becomes GetNameOwner.
4357
4358         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4359         onto the eval stack when removing the delegate.
4360
4361 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4362
4363         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4364         LT_CURRENT.  Set it to the autoconf variable.
4365                                                                                 
4366         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4367         classes that disconnects the signal handler delegate from the
4368         service object.  Fixes a big leak of proxy objects on the
4369         client side of things.  Patch from Ben Maurer
4370         <bmaurer@ximian.com>
4371
4372 2005-03-12  Colin Walters  <walters@verbum.org>
4373
4374         * bus/driver.c (write_args_for_direction): New function,
4375         parses a type signature into arguments and outputs to
4376         XML.
4377         (bus_driver_handle_introspect): Use it instead of
4378         hardcoding XML for certain signatures.
4379         
4380         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4381         dependency on dbus-daemon.
4382
4383         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4384         argument, pass it to dbus_binding_tool_output_glib_client.
4385
4386         * glib/dbus-binding-tool-glib.c
4387         (generate_client_glue): Protect against multiple inclusion.
4388         (dbus_binding_tool_output_glib_client): Add
4389         G_BEGIN_DECLS/G_END_DECLS.
4390
4391         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4392         Change to just take iface prefix directly.
4393         (write_formal_parameters): Clarify error message.
4394         (check_supported_parameters): New function; checks to see type
4395         signatures of method parameters are supported.
4396         (generate_client_glue): Handle ignore_unsupported flag.
4397         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4398         parameter.
4399
4400         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4401         --ignore-unsupported by default until glib bindings
4402         support arrays.
4403
4404 2005-03-11  Colin Walters  <walters@verbum.org>
4405
4406         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4407         install it.
4408
4409         * bus/print-introspect.c: New file; prints introspection
4410         data for a given name and object path.
4411
4412         * bus/run-with-tmp-session-bus.sh: New file, refactored
4413         from test/glib/run-test.sh.  Creates a temporary session
4414         bus and runs another program.
4415
4416         * test/glib/run-test.sh: Refactor to invoke
4417         run-with-tmp-session-bus.sh.
4418
4419         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4420         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4421         macros instead of hardcoding.
4422
4423         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4424
4425 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4426
4427         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4428         this unref; it doesn't match up evenly in some codepaths.
4429         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4430         this evenly matches with the ref near the top of this function.
4431
4432 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4433
4434         * dbus/dbus-object-tree.c
4435         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4436         and we try to unregister a path that's not registered, still go
4437         through the process of unlocking and don't just return.
4438
4439 2005-03-09  Colin Walters  <walters@verbum.org>
4440
4441         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4442         to this are generated for client-side wrappers.  Invokes a
4443         D-BUS method and returns reply values.  
4444
4445         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4446         function; writes signature string for argument direction.
4447         (write_args_for_direction): Change to pass input values directly
4448         instead of via address, and fix indentation.
4449         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4450         make generated wrappers inlineable.
4451
4452         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4453         note about using dbus_type_is_fixed.
4454
4455         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4456         dbus/dbus-signature.c as dbus_type_is_fixed.
4457
4458         All callers updated.
4459
4460         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4461         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4462
4463         * dbus/dbus-signature.h: Prototype.
4464
4465         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4466         error printf code.
4467
4468         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4469         appropriate instead of just freeing it.
4470         (main): Free returned strings using g_free.
4471
4472         * test/glib/Makefile.am (test-service-glib-glue.h)
4473         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4474
4475         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4476         simply maps a simple D-BUS type to GType.
4477         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4478         GType.
4479         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4480         initialize the value with it.
4481         (dbus_gvalue_binding_type_from_type): Unused, delete.
4482         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4483         various types instead of unmarshalling to value data directly.
4484         Remove can_convert boolean.
4485         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4486         returning directly instead of using can_convert boolean.
4487         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4488         Stores a GValue in a pointer to a value of its corresponding C
4489         type.
4490
4491         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4492         add dbus_gvalue_store.
4493
4494 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4495
4496         Fix a bunch of lifecycle and memory management problems
4497         in the mono bindings.
4498
4499         * mono/Arguments.cs (Arguments): Implement IDisposable
4500
4501         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4502         strictly a static class.
4503
4504         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4505         delegates into this file.
4506         (Connection): Implement IDisposable.
4507         (Dispose): Disconnect the connection and set the raw connection
4508         pointer to IntPtr.Zero.
4509         (~Connection): Call Dispose().
4510         (RegisterObjectPath): Added.  Manages the registration of object
4511         paths so we can cleanly disconnect them at dispose/finalize time.
4512         (UnregisterObjectPath): Ditto.
4513         (set_RawConnection): Unregister all of the object paths when
4514         changing the underlying DBusConnection.  Add them back onto the
4515         new connection, if any.
4516
4517         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4518         more unmanaged resources anymore, so it's not necessary.  Move all
4519         the DBusObjectPathVTable stuff out of here.
4520         (Handler): Save references to our delegates so that they don't get
4521         finalized.  Call Connection.RegisterObjectPath() instead of
4522         dbus_connection_register_object_path() directly.
4523         (Message_Called): Dispose the message after we're finished with
4524         it.
4525
4526         * mono/Message.cs (Message): Implement IDisposable.
4527         (Dispose): Dispose the Arguments, and set the RawMessage to
4528         IntPtr.Zero.
4529         (SendWithReplyAndBlock): We own the ref to the reply that comes
4530         back from dbus_connection_send_with_reply_and_block() so add a
4531         comment about that and unref it after we've constructed a managed
4532         MethodReturn class around it.  Fixes a big, big leak.
4533
4534         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4535         method.
4536         (BuildSignalHandler): After we've sent the Signal message, dispose
4537         of it.
4538         (BuildMethod): Dispose of the method call and reply messages after
4539         we've sent the message and extracted the data we want from the
4540         reply.
4541
4542         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4543         anymore.
4544         (Service_FilterCalled): Dispose of the message after we're
4545         finished with it.
4546
4547 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4548
4549         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4550         After we attach our pending call to the connection, unref
4551         it.  Fixes a leak.
4552  
4553         * mono/Connection.cs (set_RawConnection): Disconnect our
4554         filter and match callbacks from the old connection and
4555         reconnect them to the new connection, if any.
4556
4557         * mono/DBusType/Array.cs: "Code" is a static member, so
4558         don't use "this" to refer to it.  Fix for stricter checking
4559         in Mono 1.1.4.
4560  
4561         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4562         object path that we pass into unmanaged code.
4563  
4564         * mono/DBusType/String.cs (Append): Don't leak the string
4565         that we pass into unmanged code.
4566
4567 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4568         * NEWS: Update for 0.31
4569
4570         * configure.in: Release 0.31
4571         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4572
4573         * qt/Makefile.am: fixed build
4574
4575         * dbus/Makefile.am: soname bump for libdbus
4576
4577         * glib/Makefile.am: soname bump for libdbus-glib
4578
4579 2005-03-05  Havoc Pennington  <hp@redhat.com>
4580
4581         * dbus/dbus-sysdeps.c:
4582         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4583         value
4584         (_dbus_generate_random_bytes_buffer): fix return value
4585
4586         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4587         checks actually work, from Tom Parker <fdo@tevp.net>
4588
4589 2005-03-01  Colin Walters  <walters@verbum.org>
4590
4591         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4592         functions copied from dbus-glib-tool.c.
4593         (main): Convert lots of error code to use them.
4594         Also add some testing for introspection bits.
4595
4596 2005-03-01  Colin Walters  <walters@verbum.org>
4597         
4598         * doc/TODO: Remove introspection signature TODO.
4599
4600 2005-02-27  Colin Walters  <walters@verbum.org>
4601
4602         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4603         Change return value to const char * instead of int so we can do
4604         full signatures.
4605         (struct PropertyInfo, struct ArgInfo): Store char *.
4606         (property_info_new, arg_info_new): Update parameters, strdup.
4607         (property_info_unref, arg_info_unref): Free.
4608
4609         * glib/dbus-gidl.h: Update prototypes.
4610
4611         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4612         (validate_signature): New function, just validates signature and
4613         sets GError.
4614         (parse_property, parse_arg): Invoke validate_signature.  Store
4615         signature instead of just type code.
4616
4617         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4618         function to return a primary type for a signature, dropping
4619         information about types in container types.
4620         (dbus_gvalue_genmarshal_name_from_type)
4621         (dbus_gvalue_binding_type_from_type)
4622         (dbus_gvalue_ctype_from_type): Update to take full signature
4623          instead of type code.
4624         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4625
4626         * glib/dbus-gvalue.h: Update prototypes for above.
4627
4628         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4629         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4630         (introspect_properties, introspect_signals, write_interface):
4631         Update to handle signatures, and remove usage of
4632         _dbus_gutils_type_to_string.
4633         (handle_introspect): Print out type codes instead of e.g. "string"
4634         in hardcoded introspection XML; also use x_AS_STRING constants
4635         instead of hardcoding in string.
4636
4637         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4638         to string.  Remove usage of _dbus_gutils_type_to_string.
4639
4640         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4641
4642         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4643         deletion.
4644         
4645         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4646         (compute_marshaller_name, generate_glue): Handle signature change
4647         to string.
4648         (write_formal_parameters, write_args_for_direction): Ditto, and
4649         remove FIXME.
4650
4651         * tools/dbus-tree-view.c (type_to_string): Delete.
4652         (info_set_func_text): Update to print full signatures.
4653
4654         * test/glib/test-service-glib.xml: Change types to new
4655         introspection format.
4656
4657 2005-02-26  Havoc Pennington  <hp@redhat.com>
4658
4659         * doc/TODO: remove the "guid" item
4660
4661         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4662         (with_bus_thread_func): use open_private
4663
4664         * dbus/dbus-connection.c (dbus_connection_open_private): new
4665         function that works like the old dbus_connection_open()
4666         (dbus_connection_open): now returns an existing connection if
4667         possible
4668
4669         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4670         through the GUID to the transport
4671
4672         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4673         GUID in hex-encoded form.
4674
4675         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4676         pass GUID argument in to the transport
4677
4678         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4679         guid argument
4680
4681         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4682
4683         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4684
4685 2005-02-25  Havoc Pennington  <hp@redhat.com>
4686
4687         * doc/dbus-specification.xml: document the GUID thing
4688
4689         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4690         globally unique ID for the server, and put a "guid=hexencoded"
4691         field in the address
4692
4693         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4694
4695         * dbus/dbus-message.c: ditto
4696
4697         * dbus/dbus-dataslot.c: ditto
4698
4699         * dbus/dbus-list.c: ditto
4700
4701         * dbus/dbus-internals.h: wait, just include
4702         dbus-threads-internal.h here
4703         
4704         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4705         use in main library
4706
4707         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4708
4709 2005-02-24  Colin Walters  <walters@verbum.org>
4710
4711         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4712
4713 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4714
4715         * glib/Makefile.am: added dbus-gobject.h to sources list
4716         so distcheck doesn't fail
4717         
4718 2005-02-24  Havoc Pennington  <hp@redhat.com>
4719
4720         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4721         you must disconnect before unref, since locking and other things
4722         are screwed up otherwise. Fix assorted other locking stuff.
4723
4724         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4725         fix compilation
4726
4727         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4728         into a private header and don't export from the library
4729
4730         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4731
4732 2005-02-24  Colin Walters  <walters@verbum.org>
4733         
4734         * dbus/dbus-signature.c: New file; implements various functions
4735         related to type signatures.  Includes an interator for parsing,
4736         validation functions.
4737         (dbus_type_is_basic): Moved here from
4738         dbus-marshal-basic.c:_dbus_type_is_basic.
4739         (dbus_type_is_container): Moved here from
4740         dbus-marshal-basic.c:_dbus_type_is_container.
4741
4742         All callers of _dbus_type_is_container and _dbus_type_is_basic
4743         updated, and include dbus-signature.h.
4744
4745         * dbus/dbus-signature.h: New file; prototypes for the above.
4746
4747         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4748         dbus-signature.h.
4749
4750         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4751         function factored out of _dbus_first_type_in_signature.
4752         (_dbus_first_type_in_signature_c_str): New function; returns first
4753         type code for a type signature character.
4754
4755         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4756         handle function moves.
4757
4758         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4759
4760         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4761         function; skips to next complete type in type signature.
4762         Implemented using previous skip_one_complete_type.  Now
4763         skip_one_complete_type just delegates to
4764         _dbus_type_signature_next.
4765
4766         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4767         to dbus-signature.c
4768         (_dbus_type_is_container): Ditto.
4769
4770         * doc/dbus-specification.xml: Update introspection sample to
4771         use real type signatures.
4772
4773         * dbus/dbus-test.h: Prototype signature test.
4774
4775         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4776         signature tests.
4777
4778         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4779
4780 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4781
4782         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4783         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4784
4785 2005-02-21  Colin Walters  <walters@verbum.org>
4786
4787         * dbus/dbus-test-main.c (main): Take optional specific test
4788         argument.
4789
4790         * dbus/dbus-test.c (run_test): New function, runs a test function
4791         with no data directory.
4792         (run_data_test): Like above, but takes data directory.
4793         (dbus_internal_do_not_use_run_tests): Take
4794         specific test argument.  Replace lots of cut n' paste code
4795         with run_test and run_data_test.
4796
4797         * dbus/dbus-test.h: Update prototype for
4798         dbus_internal_do_not_use_run_tests.
4799
4800 2005-02-20  Havoc Pennington  <hp@redhat.com>
4801
4802         Fix bugs reported by Daniel P. Berrange
4803         
4804         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4805         (protected_change_watch): new function
4806         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4807         (_dbus_server_add_watch): change to work like the
4808         dbus-connection.c equivalents; like those, probably kind of
4809         busted, but should at least mostly work for now
4810         (dbus_server_disconnect): drop the lock if we were already
4811         disconnected, patch from Daniel P. Berrange
4812
4813         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4814         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4815         same stuff
4816
4817         * doc/TODO: todo about unscrewing this mess
4818
4819 2005-02-19  Colin Walters  <walters@verbum.org>
4820
4821         * glib/dbus-binding-tool-glib.c
4822         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4823
4824         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4825         as errno.h and sys/stat.h.
4826         (lose): New function, prints error with
4827         newline and exits.
4828         (lose_gerror): Similar, but takes GError for message.
4829         (main): Add --output argument to specify output file to write to,
4830         instead of always printing to stdout.  In this mode, determine
4831         timestamps on source files to see whether any are newer than the
4832         target file.  If not, exit.  Also convert a number of error
4833         messages to use lose (since it's shorter), and switch to using
4834         g_io_channel_shutdown.
4835
4836 2005-02-19  Havoc Pennington  <hp@redhat.com>
4837
4838         * glib/dbus-gobject.c
4839         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4840
4841         * glib/dbus-glib.c: fix doxygen warnings
4842
4843         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4844         is found on an <arg>
4845
4846 2005-02-17  Colin Walters  <walters@verbum.org>
4847
4848         * glib/dbus-gobject.h: Don't export
4849         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4850         
4851         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4852         (invoke_object_method): Handle it.
4853
4854         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4855         Handle rename.
4856         
4857 2005-02-17  Colin Walters  <walters@verbum.org>
4858
4859         * bus/.cvsignore, doc/.cvsignore
4860         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4861         Update.
4862
4863 2005-02-17  Colin Walters  <walters@verbum.org>
4864         
4865         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4866         Rename to DBUS_SERVICE_DBUS.
4867         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4868         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4869         Change the value from "org.freedesktop.Local"
4870         to "org.freedesktop.DBus.Local".
4871         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4872         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4873         DBUS_INTERFACE_INTROSPECTABLE.
4874         Change the value from "org.freedesktop.Introspectable"
4875         to "org.freedesktop.DBus.Introspectable".
4876         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4877         DBUS_INTERFACE_PROPERTIES.
4878         Change the value from "org.freedesktop.Properties"
4879         to "org.freedesktop.DBus.Properties".
4880         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4881         DBUS_INTERFACE_PEER.
4882         Change the value from "org.freedesktop.Peer"
4883         to "org.freedesktop.DBus.Peer".
4884         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4885         DBUS_INTERFACE_LOCAL.
4886         Change the value from "org.freedesktop.Local"
4887         to "org.freedesktop.DBus.Local".
4888
4889         All other users of those constants have been changed.
4890
4891         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4892
4893         * glib/dbus-gobject.c (handle_introspect): Use constants.
4894
4895         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4896
4897 2005-02-17  Colin Walters  <walters@verbum.org>
4898
4899         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4900         (parse_node, parse_interface, parse_method, parse_signal)
4901         (parse_property, parse_annotation): Lose if we're currently in an
4902         annotation.
4903         (parse_annotation): New function.
4904         (parser_start_element, parser_end_element): Handle annotation.
4905         (parse_method, parse_interface): Remove support for c_name attribute,
4906         switch to annotations.
4907
4908         * glib/dbus-gidl.h (interface_info_get_binding_names)
4909         (method_info_get_binding_names)
4910         (interface_info_get_binding_name, method_info_get_binding_name)
4911         (interface_info_set_binding_name, method_info_set_binding_name):
4912         Remove.
4913         (interface_info_get_annotations, method_info_get_annotations)
4914         (interface_info_get_annotation, method_info_get_annotation)
4915         (interface_info_add_annotation, method_info_add_annotation):
4916         Prototype.
4917
4918         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4919         for "bindings".
4920         (struct MethodInfo): Ditto.
4921         Straightfoward conversion of binding methods into annotation methods
4922         as prototyped.
4923
4924         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4925
4926         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4927
4928         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4929         Use new annotation API.
4930
4931         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4932         annotation element.
4933         
4934         * doc/dbus-specification.xml: Discuss introspection annotations,
4935         include list of well-known annotations.
4936
4937         * test/glib/test-service-glib.xml: Make validate against new DTD.
4938
4939 2005-02-17  Colin Walters  <walters@verbum.org>
4940
4941         This patch is based on initial work from
4942         Paul Kuliniewicz <kuliniew@purdue.edu>.
4943
4944         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4945         initialization of GValue from dbus type to here.
4946         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4947         for the "glib-genmarshal" program from a DBus type.
4948         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4949         into the C name for it we use in the glib bindings.
4950         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4951         glib C type (not GValue).
4952         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4953
4954         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4955         from dbus-gobject.c.
4956
4957         * glib/dbus-gutils.h: Prototype it.
4958
4959         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4960         (marshal_dbus_message_to_g_marshaller): Use new shared function
4961         dbus_glib_marshal_dbus_message_to_gvalue_array.
4962
4963         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4964         Will be changed once we have annotations.
4965
4966         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4967         GStaticRWLock.  Callers updated.
4968         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4969         (string_table_next): New function for iterating over zero-terminated
4970         string value array.
4971         (string_table_lookup): New function; retrieves specific entry in
4972         array.
4973         (get_method_data): New function; look up method data in object data chunk.
4974         (object_error_domain_prefix_from_object_info)
4975         (object_error_code_from_object_info): New functions, but not implemented yet.
4976         (method_interface_from_object_info): New function; retrieve interface name.
4977         (method_name_from_object_info): New function; retrieve method name.
4978         (method_arg_info_from_object_info): New function; retrieve argument data.
4979         (arg_iterate): New function; iterates over serialized argument data.
4980         (method_dir_signature_from_object_info): New function; returns a
4981         GString holding type signature for arguments for just one
4982         direction (input or output).
4983         (method_input_signature_from_object_info)
4984         (method_output_signature_from_object_info): New functions.
4985         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4986         converts dbus message arguments into a GValue array.  Used for both
4987         signal handling and method invocation.
4988         (struct DBusGlibWriteIterfaceData): New utility structure.
4989         (write_interface): New function; generate introspection XML for
4990         an interface.
4991         (introspect_interfaces): New function; gathers all interface->methods,
4992         generates introspection XML for them.
4993         (handle_introspect): Invoke introspect_interfaces.
4994         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4995         (lookup_object_and_method): New function; examines an incoming message
4996         and attempts to match it up (via interface, method name, and argument
4997         signature) with a known object and method.
4998         (gerror_domaincode_to_dbus_error_name): New function; converts a
4999         GError domain and code into a DBus error name.  Needs GError data
5000         added to object introspection to work well.
5001         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5002         GError.
5003         (invoke_object_method): New function to invoke an object method
5004         looked up via lookup_object_and_method.  Parses the incoming
5005         message, turns it into a GValue array, then invokes the marshaller
5006         specified in the DBusGMethodInfo.  Creates a new message with
5007         either return values or error message as appropriate.
5008         (gobject_message_function): Invoke lookup_object_and_method and
5009         invoke_object_method.
5010
5011         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5012         (enum DBusBindingOutputMode): New enum for binding output modes.
5013         (pretty_print): Print binding names.
5014         (dbus_binding_tool_error_quark): GError bits.
5015         (version): Fix typo.
5016         (main): Create GIOChannel for output.  Parse new --mode argument,
5017         possible values are "pretty-print", "glib-server", "glib-client".
5018         Use mode to invoke appropriate function.
5019         
5020         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5021
5022         * glib/dbus-glib-tool.h: New header, just includes GError bits
5023         for now.
5024
5025         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5026         maps binding style to name.
5027         (struct MethodInfo): Ditto.
5028         (get_hash_keys, get_hash_key): Utility function, returns keys for
5029         a GHashTable.
5030         (interface_info_new, method_info_new): Initialize bindings.
5031         (interface_info_unref, method_info_unref): Destroy bindings.
5032         (method_info_get_binding_names, method_info_get_binding_name)
5033         (interface_info_get_binding_names, interface_info_get_binding_name):
5034         Functions for retrieving binding names.
5035         (method_info_set_binding_name, interface_info_set_binding_name):
5036         Functions for setting binding names.
5037
5038         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5039         for glib binding generation.
5040
5041         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5042         and client-side glib glue generation.
5043
5044         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5045         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5046         dbus-glib-tool.h.
5047
5048         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5049         of using GClosureMarshal directly.
5050         (struct DBusGObjectInfo): Add n_infos member.
5051
5052         * test/glib/test-service-glib.xml: New file; contains introspection data
5053         for MyTestObject used in test-service-glib.c.
5054
5055         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5056         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5057         (my_object_uppercase, my_object_many_args): New test methods.
5058         (main): Use dbus_g_object_class_install_info to include generated object
5059         info.
5060
5061         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5062         as well as client-side bindings.
5063
5064         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5065         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5066         using both the dbus_gproxy stuff directly as well as the generated bindings.
5067
5068 2005-02-15  Havoc Pennington  <hp@redhat.com>
5069
5070         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5071         complete a pending call, don't run filters first.
5072
5073         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5074         dbus_pending_call_steal_reply
5075
5076         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5077         _dbus_connection_block_pending_call
5078         (dbus_pending_call_get_reply): change to steal_reply and return a
5079         ref
5080
5081         * dbus/dbus-connection.c
5082         (dbus_connection_send_with_reply_and_block): port to work in terms
5083         of DBusPendingCall
5084         (_dbus_connection_block_pending_call): replace block_for_reply
5085         with this
5086
5087 2005-02-14  Havoc Pennington  <hp@redhat.com>
5088
5089         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5090         properly handle looking up group information by name; fix 
5091         from j@bootlab.org
5092
5093 2005-02-13  Havoc Pennington  <hp@redhat.com>
5094
5095         * dbus/dbus-connection.c (dbus_connection_return_message) 
5096         (dbus_connection_borrow_message): hold dispatch lock while message
5097         is outstanding
5098         (_dbus_connection_block_for_reply): hold dispatch lock while we
5099         block for the reply, so nobody steals our reply
5100         (dbus_connection_pop_message): hold the dispatch lock while we
5101         pluck the message
5102
5103 2005-02-13  Havoc Pennington  <hp@redhat.com>
5104
5105         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5106         (_dbus_connection_release_dispatch)
5107         (_dbus_connection_acquire_io_path)
5108         (_dbus_connection_release_io_path): make the mutex and condvar
5109         control access to the "acquired" flag. Drop the connection lock
5110         while waiting on the condvar. Hopefully these are baby steps in
5111         roughly the right direction.
5112
5113 2005-02-13  Havoc Pennington  <hp@redhat.com>
5114
5115         * dbus/dbus-connection.c: use separate mutexes for the condition
5116         variables; this is some kind of baseline for sanity, but the
5117         condition variables still aren't used correctly afaict
5118
5119 2005-02-13  Havoc Pennington  <hp@redhat.com>
5120
5121         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5122         fix a double-unlock
5123
5124         * dbus/dbus-connection.c
5125         (_dbus_connection_detach_pending_call_unlocked): add this
5126
5127         Initial semi-correct pass through to fix thread locking; there are
5128         still some issues with the condition variable paths I'm pretty
5129         sure
5130         
5131         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5132         lock/unlock calls
5133
5134         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5135         rename to add _unlocked
5136         (struct DBusConnection): move "dispatch_acquired" and
5137         "io_path_acquired" to use only one bit each.
5138         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5139         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5140         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5141         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5142         (_dbus_connection_remove_timeout) 
5143         (_dbus_connection_toggle_timeout): drop lock when calling out to
5144         user functions; done in a hacky/bad way.
5145         (_dbus_connection_send_and_unlock): add a missing unlock
5146         (_dbus_connection_block_for_reply): add a missing unlock
5147
5148         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5149         drop lock in a hacky probably unsafe way to call out to user
5150         function
5151
5152 2005-02-12  Havoc Pennington  <hp@redhat.com>
5153
5154         * tools/dbus-tree-view.c (info_set_func_text): display more
5155         details on args
5156
5157         * bus/driver.c (bus_driver_handle_list_services): list the bus
5158         driver
5159
5160         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5161
5162         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5163         (method_info_get_n_args): new function
5164
5165 2005-02-12  Havoc Pennington  <hp@redhat.com>
5166
5167         * bus/driver.c (bus_driver_handle_introspect): add introspection
5168         for bus driver
5169
5170 2005-02-12  Havoc Pennington  <hp@redhat.com>
5171
5172         * bus/driver.c: put the signature of each bus driver method in the
5173         table of handlers and check it on incoming calls; this isn't
5174         really useful, but going to add introspect support in a minute.
5175
5176 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5177
5178         * mono/Connection.cs: The unpredictability of finalizers in mono
5179         prevents us from deterministically disconnecting the filters from
5180         the Service class's finalizer, so move tracking of filters and
5181         matches here.  Add API for that.
5182
5183         * mono/Service.cs: Remove the code, add code which calls the
5184         methods now on the Connection class.
5185
5186 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5187
5188         * python/dbus.py (class Sender): added to support dbus signals better
5189         (Bus::add_signal_receiver): added expand_args parameter which defaults
5190         to True.  When expand args is True the signal handler will pass the 
5191         message arguments as parameters to the signal handler.  If False
5192         revert to previous behavior where the signal handler must get the
5193         argument list from the message.  This is to help port applications
5194         like HAL that have a tendancy to send variable length argument lists.
5195         self._match_rule_to_receivers is now a dict of dicts.
5196         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5197         removing it from a list
5198         (Bus::_signal_func): change signal handlers so that interface,
5199         signal_name, service, path and message are packed into a Sender
5200         object and that is passed to the handler.  If expand_args is True
5201         extract the args list from the message and append it to the parameter
5202         list
5203         
5204         * python/dbus_bindings.pyx.in (class Signature): added to support 
5205         signiature types
5206         (MessageIter::__init__): changed iteration limit to match D-BUS
5207         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5208         STRUCT and VARIENT type support
5209         (MessageIter::python_value_to_dbus_sig): made recursive to support
5210         recursive types
5211         (MessageIter::append*): added Signature, dict, tuple 
5212         support
5213
5214         * python/examples/example-client.py: added examples of getting tuples
5215         and dicts
5216
5217         * python/examples/example-service.py: added examples of sending tuples
5218         and dicts
5219
5220         * python/examples/example-signal-recipient.py: Fixed to handle new
5221         signal callback format
5222
5223 2005-02-10  Havoc Pennington  <hp@redhat.com>
5224
5225         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5226         (call dbus_g_proxy_add_signal)
5227
5228         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5229         escape the hostname
5230         (_dbus_server_new_for_domain_socket): escape the path
5231
5232         * dbus/dbus-address.c (dbus_address_escape_value): new
5233         (dbus_address_unescape_value): new
5234         (dbus_parse_address): unescape values
5235
5236         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5237
5238         * doc/dbus-specification.xml: explain how to escape values in
5239         addresses
5240
5241 2005-02-10  Havoc Pennington  <hp@redhat.com>
5242
5243         * dbus/dbus-message-factory.c (generate_special): modify test to
5244         avoid using a non-basic dict key
5245
5246         * dbus/dbus-marshal-validate-util.c: add test for the below
5247
5248         * doc/dbus-specification.xml: require that dict keys are a basic
5249         type
5250
5251         * dbus/dbus-marshal-validate.c
5252         (_dbus_validate_signature_with_reason): require that dict key is a
5253         basic type
5254
5255 2005-02-10  Havoc Pennington  <hp@redhat.com>
5256
5257         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5258         change to be _and_unlock instead of _unlocked
5259
5260         * dbus/dbus-connection.c
5261         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5262         have no_update so we can find this bug quickly in future
5263
5264 2005-02-10  Havoc Pennington  <hp@redhat.com>
5265
5266         * dbus/dbus-message-util.c (verify_test_message): tests for string
5267         array
5268
5269         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5270         support for arrays of string/signature/path
5271
5272 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5273
5274         * dbus/dbus-connection.c
5275         (_dbus_connection_queue_received_message_link,
5276         _dbus_connection_message_sent): Add the path to
5277         the verbose output.
5278         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5279         _dbus_connection_send_preallocated_unlocked(), updated the
5280         dispatch status, and unlocks.  Fixes a bug where certain
5281         situations (like a broken pipe) could cause a Disconnect message
5282         to not be sent, tricking the bus into thinking a service was still
5283         there when the process had quit.
5284         (_dbus_connection_send_preallocated): Call
5285         _dbus_connection_send_preallocated_and_unlock().
5286         (_dbus_connection_send_and_unlock): Added.  Calls
5287         _dbus_connection_send_preallocated_and_unlock().
5288         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5289         (dbus_connection_send_with_reply): Update the dispatch status and
5290         unlock.
5291
5292         * mono/Service.cs (~Service): Added.  Removes the filter so that
5293         we don't get unmanaged code calling back into a GCed delegate.
5294         (RemoveFilter); Added.
5295
5296 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5297
5298         * dbus/dbus-message.c (dbus_message_iter_open_container):
5299         - Removed check for iterator type being an array because
5300         get_arg_type does not work with writer iterators
5301         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5302
5303 2005-02-07  Havoc Pennington  <hp@redhat.com>
5304
5305         * doc/dbus-specification.xml: some more language cleanups; add
5306         stuff about how to deal with invalid protocol and extension
5307         points; add _ to allowed chars in auth commands; add EXTENSION_
5308         auth command prefix
5309
5310 2005-02-06  Havoc Pennington  <hp@redhat.com>
5311
5312         * s/expected/required/ in a couple places for clarity
5313
5314 2005-02-07  Colin Walters  <walters@verbum.org>
5315
5316         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5317         sender or proposed_recipient.
5318
5319 2005-02-06  Havoc Pennington  <hp@redhat.com>
5320
5321         * dbus/dbus-message-factory.c (generate_special): more tests
5322
5323         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5324         array length that exceeds the maximum
5325
5326 2005-02-05  Havoc Pennington  <hp@redhat.com>
5327
5328         * dbus/dbus-message-factory.c (generate_special): more test cases,
5329         increasing coverage
5330
5331         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5332         reason why a signature was invalid
5333
5334         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5335         skip the length of the string before we look at it in validation
5336
5337         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5338         equal_substring
5339
5340         * dbus/dbus-message.c (_dbus_message_loader_new): default
5341         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5342
5343 2005-02-05  Havoc Pennington  <hp@redhat.com>
5344
5345         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5346         if the signature of a variant was empty
5347         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5348         struct with no element type)
5349
5350         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5351         mangled messages to break things
5352
5353 2005-02-04  Havoc Pennington  <hp@redhat.com>
5354
5355         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5356         g_quark_try_string() so it actually can return 0
5357         (dbus_g_proxy_connect_signal): ditto
5358
5359 2005-02-04  Havoc Pennington  <hp@redhat.com>
5360
5361         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5362         bogus warning
5363         (tristring_from_message): assert cleanly on null path/interface
5364         (should not be possible though I decided later)
5365         (dbus_g_proxy_dispose): move proxy manager unregistration here
5366         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5367         g_return_if_fail() checks
5368
5369 2005-02-04  Havoc Pennington  <hp@redhat.com>
5370
5371         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5372
5373         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5374         (with some minor changes)
5375
5376         * doc/dbus-specification.xml: add deprecated attribute to
5377         introspection format
5378
5379 2005-01-31  Havoc Pennington  <hp@redhat.com>
5380
5381         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5382         think it's sort of right
5383
5384 2005-01-30  Havoc Pennington  <hp@redhat.com>
5385
5386         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5387
5388 2005-01-30  Havoc Pennington  <hp@redhat.com>
5389
5390         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5391
5392         * autogen.sh: change to autotools 1.9
5393
5394         * glib/dbus-gproxy.c: completely change how signals work
5395         (dbus_g_proxy_add_signal): new function to specify signature of a
5396         signal
5397         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5398         and g_warning if the incoming message has the wrong signature.
5399
5400 2005-01-30  Havoc Pennington  <hp@redhat.com>
5401
5402         * tools/dbus-names-model.c (have_names_notify): fix this
5403
5404         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5405         up the string array handling a bit 
5406
5407 2005-01-30  Havoc Pennington  <hp@redhat.com>
5408
5409         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5410         (dbus_g_pending_call_cancel): new function
5411
5412         * dbus/dbus-glib.h: move GType decls for connection/message here;
5413         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5414         here, just kind of rationalizing how we handle all that
5415
5416         * tools/dbus-names-model.c: new file for a tree model listing the
5417         services on a bus
5418
5419         * tools/dbus-tree-view.c (model_new): use proper typing on the
5420         model rows
5421
5422 2005-01-30  Havoc Pennington  <hp@redhat.com>
5423
5424         * glib/dbus-gmain.c: add a custom GSource back that just checks
5425         whether the message queue has anything in it; otherwise, there are 
5426         cases where we won't see messages in the queue since there was no 
5427         IO visible to the glib main loop
5428
5429         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5430         increase default message timeout to 25 seconds
5431
5432 2005-01-30  Havoc Pennington  <hp@redhat.com>
5433
5434         * test/glib/test-profile.c (no_bus_stop_server): remove the
5435         warning about the g_warning that I just fixed
5436
5437         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5438         custom source, seems to be a lot easier to understand and work
5439         better.
5440
5441 2005-01-30  Havoc Pennington  <hp@redhat.com>
5442
5443         I think this main loop thing is conceptually broken, but here are 
5444         some band aids. I'll maybe rewrite it in a minute.
5445         
5446         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5447         custom GSource, so don't pass it in; confusing
5448         (gsource_server_finalize, gsource_connection_finalize): add
5449         finalize handlers that remove all the watches.  
5450
5451 2005-01-30  Havoc Pennington  <hp@redhat.com>
5452
5453         * glib/dbus-gobject.c (introspect_properties): fix the XML
5454         generated
5455
5456         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5457         which effectively detects the use of freed messages
5458
5459         * glib/dbus-gobject.c (handle_introspect): modify and return the
5460         reply message instead of the incoming message
5461
5462         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5463         gee, maybe it should SEND THE XML instead of just making a string
5464         and freeing it again ;-)
5465
5466         * tools/dbus-print-message.c (print_message): improve printing of
5467         messages
5468
5469         * configure.in: add debug-glib.service to the output
5470
5471 2005-01-30  Havoc Pennington  <hp@redhat.com>
5472
5473         dbus-viewer introspected and displayed the bus driver
5474         
5475         * dbus/dbus-object-tree.c 
5476         (object_tree_test_iteration): add tests for a handler registered on "/"
5477
5478         * dbus/dbus-object-tree.c
5479         (_dbus_decompose_path): fix to handle path "/" properly
5480         (run_decompose_tests): add tests for path decomposition
5481         
5482         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5483         properly
5484
5485         * glib/dbus-gobject.c (handle_introspect): fix quotes
5486
5487         * test/glib/run-test.sh: support launching the bus, then running
5488         dbus-viewer
5489
5490         * test/glib/test-service-glib.c (main): put in a trivial gobject
5491         subclass and register it on the connection
5492
5493         * bus/driver.c (bus_driver_handle_introspect): implement
5494         introspection of the bus driver service
5495
5496         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5497         identifiers, doctype decl
5498
5499         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5500         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5501         returning the service unchanged.
5502         (bus_driver_handle_message): remove old check for reply_serial in
5503         method calls, now the message type deals with that
5504         (bus_driver_handle_message): handle NULL interface
5505
5506         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5507
5508         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5509         -1 for len
5510
5511         * tools/dbus-viewer.c: add support for introspecting a service on
5512         a bus
5513
5514         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5515         (dbus_g_pending_call_unref): add
5516
5517 2005-01-29  Havoc Pennington  <hp@redhat.com>
5518
5519         * tools/dbus-tree-view.c: add support for displaying properties.
5520         (run dbus-viewer with an introspect xml file as arg, then resize
5521         the window so the tree elements show up, not sure what that is)
5522
5523         * glib/dbus-gobject.c (handle_introspect): return
5524         org.freedesktop.Properties and org.freedesktop.Introspectable
5525         interfaces when we are introspected.
5526
5527         * doc/dbus-specification.xml: allow empty interface name when 
5528         Get/Set a property
5529
5530 2005-01-29  Havoc Pennington  <hp@redhat.com>
5531
5532         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5533         though it uses glib, it could be extended for any binding in
5534         principle
5535
5536         * glib/dbus-gobject.c (gobject_message_function): change to the
5537         new way properties work
5538
5539         * dbus/dbus-protocol.h: add the new interfaces
5540
5541         * doc/dbus-specification.xml: document the introspection format,
5542         Introspectable interface, and add an org.freedesktop.Properties
5543         interface.
5544
5545         * glib/dbus-gparser.c: add support for a <property> element
5546
5547         * glib/dbus-gidl.c: add PropertyInfo
5548
5549         * glib/dbus-gobject.c (handle_introspect): put the outermost
5550         <node> outside the signal and property descriptions.
5551         (introspect_properties): export properties as <property> rather
5552         than as method calls
5553
5554 2005-01-28  Havoc Pennington  <hp@redhat.com>
5555
5556         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5557         related to authentication protocol
5558
5559 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5560
5561         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5562                 - BUS_ACTIVATION -> BUS_STARTER
5563                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5564                 - class MessageIter (__init__): Added recursion checking 
5565                 so we throw a nice error instead of just disconnecting from the
5566                 bus.
5567                 (get): Added arg_type parameter for recursion.
5568                 Removed the nil type
5569                 Added signiture type placeholder (not implemented)
5570                 Added struct type placeholder (not implemented)
5571                 Added varient type placeholder (not implemented)
5572                 Commented out dict type for now     
5573                 (get_element_type): renamed from get_array_type
5574                 (get_*): changed to use the dbus_message_iter_get_basic API
5575                 (get_*_array): removed in favor of recursive get_array method
5576                 (get_array): new recursive method which calls get to marshal
5577                 the elements of the array
5578                 (value_to_dbus_sig): New method returns the corrasponding
5579                 dbus signiture to a python value
5580                 (append): Comment out dict handling for now
5581                 Handle lists with the new recursive API
5582                 Comment out None handling for now
5583                 (append_nil): removed
5584                 (append_*): changed to use dbus_message_iter_append_basic API
5585                 (append_*_array): removed in favor of recursive append_array 
5586                 method
5587                 (__str__): Make it easier to print out recursive iterators
5588                 for debugging
5589                 - class Message (__str__): moved type inspection to the
5590                 MessageIter class' __str__ method
5591                 (get_iter): Added an append parameter wich defaults to False
5592                 If True use the new API's to create an append iterator
5593
5594         * python/dbus.py: Update to use new bindings API
5595                 - TYPE_ACTIVATION -> TYPE_STARTER
5596                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5597                 - class ActivationBus -> class StarterBus
5598                 - class RemoteObject (__call__): get an append iterator
5599                 - (_dispatch_dbus_method_call): get an append iterator
5600                 - class Object (emit_signal): get an append iterator
5601
5602         * python/examples/: Fixed up the examples to work with the new API
5603                 
5604 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5605
5606         * configure.in: Bump version up to 0.30.
5607
5608         * HACKING: Add a release item to bump the version number up after 
5609         a release.
5610
5611 2005-01-28  Havoc Pennington  <hp@redhat.com>
5612
5613         * doc/dbus-specification.xml: update to describe 16-bit types and
5614         dict entries
5615
5616         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5617         assertion
5618
5619         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5620         type
5621
5622         * dbus/dbus-marshal-recursive.c: implement
5623
5624 2005-01-27  Havoc Pennington  <hp@redhat.com>
5625
5626         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5627
5628         * configure.in: find the right type for 16 and 32 bit ints as well
5629         as 64
5630
5631         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5632         the 16-bit types so people don't have to stuff them in 32-bit or
5633         byte arrays.
5634
5635 2005-01-27  Havoc Pennington  <hp@redhat.com>
5636
5637         * dbus/dbus-message.c: byteswap the message if you init an
5638         iterator to read/write from it
5639         
5640         * dbus/dbus-marshal-byteswap.c: new file implementing 
5641         _dbus_marshal_byteswap()
5642
5643         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5644
5645 2005-01-26  Havoc Pennington  <hp@redhat.com>
5646         
5647         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5648         build, apparently - nobody noticed?)
5649         
5650 2005-01-26  Havoc Pennington  <hp@redhat.com>
5651
5652         * dbus/dbus-marshal-recursive.h: remove todo comment
5653
5654 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5655
5656         * Land the mono binding changes to conform to the new APIs.
5657
5658         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5659         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5660
5661         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5662         type code as a string.
5663         (InitAppending): Rename dbus_message_append_iter_init() to
5664         dbus_message_iter_init_append().
5665
5666         * mono/BusDriver.cs: Rename ServiceEventHandler to
5667         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5668         Rename ServiceOwnerChanged to NameOwnerChanged.
5669
5670         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5671         underlying C call.
5672
5673         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5674
5675         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5676         dbus_bus_acquire_service() to dbus_bus_request_name().
5677
5678         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5679         of Type.UnderlyingSystemType to get the correct element type for
5680         the array.
5681         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5682         dbus_message_get_{element|arg}_type() instead of
5683         dbus_message_iter_init_array_iterator().
5684         (Append): Replace dbus_message_iter_append_array() with
5685         dbus_message_iter_open_container() and
5686         dbus_message_iter_close_container().
5687
5688         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5689         types have been removed.
5690         
5691         * mono/DBusType/*.cs: Replace calls of
5692         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5693         but specify the type in the DllImport extern declaration.  Ditto
5694         for dbus_message_iter_append_[type]() ->
5695         dbus_message_iter_append_basic().
5696
5697         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5698         NameOwnerChangedHandler.
5699
5700 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5701
5702         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5703                 - get_base_service -> get_unique_name
5704                 - bus_get_base_service -> bus_get_unique_name
5705                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5706                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5707                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5708                 - bus_activate_service -> bus_start_service_by_name
5709                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5710                 - bus_acquire_service -> bus_request_name
5711                 - dbus_bus_acquire_service -> dbus_bus_request_name
5712                 - bus_service_exists -> bus_name_has_owner
5713                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5714
5715         * python/dbus.py: Rename of methods
5716                 - activate_service -> start_service_by_name
5717                 - bus_acquire_service -> bus_request_name
5718                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5719                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5720
5721         
5722 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5723
5724         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5725         signature for the method that can't be found.
5726
5727         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5728         the message has any arguments, we need to call
5729         _dbus_type_reader_get_current_type(), not
5730         _dbus_type_reader_has_next().
5731
5732 2005-01-24  Havoc Pennington  <hp@redhat.com>
5733
5734         * dbus/dbus-message-factory.c: more testing of message validation
5735
5736         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5737         header
5738
5739 2005-01-23  Havoc Pennington  <hp@redhat.com>
5740
5741         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5742         get this all working, not many tests in the framework yet though
5743
5744 2005-01-22  Havoc Pennington  <hp@redhat.com>
5745
5746         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5747         tutorial, based on work from David Wheeler.
5748
5749 2005-01-21  Havoc Pennington  <hp@redhat.com>
5750
5751         * dbus/dbus-bus.c: add more return_if_fail checks
5752
5753         * dbus/dbus-message.c (load_message): have the "no validation"
5754         mode (have to edit the code to toggle the mode for now though)
5755
5756         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5757         skips all validation; I want to use this at least for benchmark
5758         baseline, I'm not sure if it should be a publicly-available switch.
5759
5760 2005-01-21  Havoc Pennington  <hp@redhat.com>
5761
5762         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5763         toplevel doxygen group as the low-level API stuff
5764
5765         * dbus/dbus.h: note that libdbus is the low-level API
5766
5767 2005-01-20  Havoc Pennington  <hp@redhat.com>
5768
5769         * update-dbus-docs.sh: script to update docs on the web site, only
5770         works for me though. neener.
5771
5772 2005-01-20  Havoc Pennington  <hp@redhat.com>
5773
5774         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5775         code can reveal bugs in it
5776
5777 2005-01-20  Havoc Pennington  <hp@redhat.com>
5778
5779         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5780         select() version, patches from Tor Lillqvist
5781
5782 2005-01-20  Havoc Pennington  <hp@redhat.com>
5783
5784         * doc/dbus-tutorial.xml: replace > with &gt;
5785
5786         * bus/services.c (bus_registry_acquire_service): validate the name
5787         and return a better error if it's no good.
5788
5789         * doc/dbus-specification.xml: note NO_AUTO_START change
5790
5791         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5792         from AUTO_START, we're toggling the default
5793
5794         * bus/dispatch.c: adapt the tests to change of auto-start default
5795
5796 2005-01-18  Havoc Pennington  <hp@redhat.com>
5797
5798         * rename dbus-daemon-1 to dbus-daemon throughout
5799
5800 2005-01-18  Havoc Pennington  <hp@redhat.com>
5801
5802         * Throughout, grand renaming to strip out the use of "service",
5803         just say "name" instead (or "bus name" when ambiguous).  Did not
5804         change the internal code of the message bus itself, only the
5805         programmer-facing API and messages.
5806         
5807         * doc/dbus-specification.xml: further update the message bus section
5808         
5809         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5810         in error case
5811
5812 2005-01-17  Havoc Pennington  <hp@redhat.com>
5813
5814         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5815         ever
5816
5817         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5818         "invalid name character" not only non-ASCII
5819
5820         * doc/dbus-specification.xml: further update spec, message bus 
5821         parts are still out-of-date but the marshaling etc. stuff is now
5822         accurate-ish
5823
5824 2005-01-17  Havoc Pennington  <hp@redhat.com>
5825
5826         * doc/dbus-specification.xml: partially update spec
5827
5828 2005-01-17  Havoc Pennington  <hp@redhat.com>
5829
5830         * Throughout, align variant bodies according to the contained
5831         type, rather than always to 8. Should save a fair bit of space in
5832         message headers.
5833         
5834         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5835         fix handling of case where p == end
5836
5837         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5838
5839 2005-01-17  Havoc Pennington  <hp@redhat.com>
5840
5841         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5842
5843         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5844         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5845         are marshaling/unmarshaling a boolean.
5846
5847 2005-01-16  Havoc Pennington  <hp@redhat.com>
5848
5849         This is about it on what can be disabled/deleted from libdbus
5850         easily, back below 150K anyhow. Deeper cuts are more work than 
5851         just turning the code off as I've done here.
5852         
5853         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5854         signed int convenience funcs
5855
5856         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5857         verbose mode
5858
5859         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5860         things out of libdbus
5861
5862         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5863         
5864         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5865         tests-enabled-only, though it should probably be deleted)
5866
5867         * dbus/dbus-message-util.c: same stuff
5868
5869         * dbus/dbus-auth-util.c: same stuff
5870
5871 2005-01-16  Havoc Pennington  <hp@redhat.com>
5872
5873         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5874
5875         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5876         way for stripping down dbus-userdb.c stuff included in libdbus.
5877         Rename _dbus_parse_uid for consistency.
5878
5879 2005-01-16  Havoc Pennington  <hp@redhat.com>
5880
5881         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5882         name the assertion failed in
5883
5884         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5885         (_dbus_return_val_if_fail): assert that the name of the function
5886         containing the check doesn't start with '_', since we only want to 
5887         use checks on public functions
5888         
5889         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5890         checks to assertions
5891
5892         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5893         change checks to asserts for private function
5894
5895         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5896         to asserts for private function
5897
5898         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5899         broken assertion that was breaking make check
5900         (_dbus_type_reader_array_is_empty): remove this rather than fix
5901         it, was only used in assertions
5902
5903 2005-01-16  Havoc Pennington  <hp@redhat.com>
5904
5905         * test/unused-code-gc.py: hacky script to find code that's used
5906         only by the bus (not libdbus) or used only by tests or not used at
5907         all. It has some false alarms, but looks like we can clean up a
5908         lot of size from libdbus.
5909
5910         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5911         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5912         
5913 2005-01-16  Havoc Pennington  <hp@redhat.com>
5914
5915         * Add and fix docs according to Doxygen warnings throughout
5916         source.
5917         
5918         * dbus/dbus-marshal-recursive.c
5919         (_dbus_type_reader_array_is_empty): change this to just call
5920         array_reader_get_array_len() and make it static
5921
5922         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5923         from get_array_type
5924         (dbus_message_iter_init_append): rename from append_iter_init
5925
5926         * dbus/dbus-marshal-recursive.c
5927         (_dbus_type_reader_get_element_type): rename from
5928         _dbus_type_reader_get_array_type
5929
5930 2005-01-15  Havoc Pennington  <hp@redhat.com>
5931
5932         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5933
5934         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5935         when DBUS_DISABLE_ASSERT
5936         (_dbus_marshal_set_basic): be sure we align for the string length
5937
5938         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5939         this look faster
5940
5941         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5942         inline macro version
5943         (_dbus_string_set_byte): provide inline macro version
5944
5945 2005-01-15  Havoc Pennington  <hp@redhat.com>
5946
5947         * Land the new message args API and type system.
5948
5949         This patch is huge, but the public API change is not 
5950         really large. The set of D-BUS types has changed somewhat, 
5951         and the arg "getters" are more geared toward language bindings;
5952         they don't make a copy, etc.
5953
5954         There are also some known issues. See these emails for details
5955         on this huge patch:
5956         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5957         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5958         
5959         * dbus/dbus-marshal-*: all the new stuff
5960
5961         * dbus/dbus-message.c: basically rewritten
5962
5963         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5964         freed blocks to be all non-nul bytes so using freed memory is less
5965         likely to work right
5966
5967         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5968         DBUS_FAIL_MALLOC=N environment variable, so you can do
5969         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5970         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5971         thorough.
5972
5973         * qt/message.cpp: port to the new message args API
5974         (operator<<): use str.utf8() rather than str.unicode()
5975         (pretty sure this is right from the Qt docs?)
5976
5977         * glib/dbus-gvalue.c: port to the new message args API
5978
5979         * bus/dispatch.c, bus/driver.c: port to the new message args API
5980
5981         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5982         "locked" flag to TRUE and align_offset to 0; I guess we never
5983         looked at these anyhow, but seems cleaner.
5984
5985         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5986         move allocation padding macro to this header; use it to implement
5987         (_DBUS_STRING_STATIC): ability to declare a static string.
5988
5989         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5990         change to return TRUE if the interface is not set.
5991
5992         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5993         to dbus-marshal-validate.[hc]
5994
5995         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5996         dbus-internals.c
5997
5998         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5999         to dbus-marshal-*.[hc]
6000
6001         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6002         function here from dbus-marshal.c
6003
6004 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6005
6006         * NEWS: Update for 0.23.
6007
6008         * configure.in: Release 0.23.
6009
6010 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6011
6012         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6013         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6014         behind.
6015
6016         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6017         uninstall"
6018
6019         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6020         is an enum, get the enum's underlying type.  Another mono
6021         1.1.3 fix.
6022
6023 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6024
6025         Patch from Sjoerd Simons <sjoerd@luon.net>
6026
6027         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6028         DESTDIR.  It breaks stuff.
6029
6030 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6031
6032         Patch from Tambet Ingo <tambet@ximian.com>
6033
6034         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6035         calling type.GetElementType().  The code previously depended on
6036         broken Mono behavior, which was fixed in Mono 1.1.3.
6037
6038         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6039         Activator.CreateInstance() so that the class's constructor is
6040         called with the right parameters.
6041
6042 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6043
6044         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6045
6046         * dbus/dbus-connection.c
6047         (_dbus_connection_queue_received_message_link): Call
6048         _dbus_connection_remove_timeout() instead of the _locked()
6049         variant, since it's always called from
6050         _dbus_connection_handle_watch(), which handles the locking.
6051         Removed the _locked() variant since it's no longer used.
6052
6053 2005-01-03  Havoc Pennington  <hp@redhat.com>
6054
6055         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6056         return
6057         
6058 2004-12-26  Havoc Pennington  <hp@redhat.com>
6059
6060         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6061
6062 2005-01-03  Havoc Pennington  <hp@redhat.com>
6063
6064         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6065         floating point
6066
6067         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6068
6069 2005-01-02  Havoc Pennington  <hp@redhat.com>
6070
6071         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6072
6073 2005-01-01  Havoc Pennington  <hp@redhat.com>
6074
6075         * configure.in: add -Wfloat-equal
6076
6077 2005-01-01  Havoc Pennington  <hp@redhat.com>
6078
6079         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6080         for a variety of reasons '==' doesn't do this.
6081
6082 2004-12-31  Havoc Pennington  <hp@redhat.com>
6083
6084         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6085         I keep wishing I had
6086
6087 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6088
6089         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6090
6091 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6092
6093         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6094         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6095         dbus-protocol.h.  Because they are defines and not enums they are not
6096         autogenerated.
6097
6098 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6099
6100         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6101         dbus_bus_activate_service
6102
6103         * python/dbus.py (Bus.activate_service): activate a service on the
6104         bus.
6105
6106 2004-12-24  Havoc Pennington  <hp@redhat.com>
6107
6108         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6109         file format has also changed and I haven't adapted to that yet
6110         
6111         * Makefile.am: load .gcno files from latest gcc
6112
6113 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6114         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6115
6116         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6117         lowlevel binding
6118
6119         * python/dbus.py (get_unix_user): Added binding to 
6120         call dbus_bindings.bus_get_unix_user
6121
6122         * python/extract.py: Modified the proto_pat regex to
6123         handle unsigned long
6124
6125 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6126
6127         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6128         better POSIX compliance.
6129
6130 2004-12-19  Havoc Pennington  <hp@redhat.com>
6131
6132         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6133         (_dbus_string_insert_8_aligned): new functions
6134
6135         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6136
6137 2004-12-18  Havoc Pennington  <hp@redhat.com>
6138
6139         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6140         macro
6141
6142         * dbus/dbus-message.c: fix a comment, and add a still-unused
6143         not-implemented function
6144
6145         * dbus/dbus-marshal.h: fix comment
6146
6147         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6148
6149 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6150
6151         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6152         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6153         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6154         Type.UnderlyingSystemType to get the actual system type
6155         underneath.  This code previously depended on the broken Mono
6156         behavior, which was fixed in 1.1.3.
6157
6158 2004-11-27  Havoc Pennington  <hp@redhat.com>
6159
6160         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6161         are disabled
6162         (_dbus_string_get_const_data): inline when asserts are disabled
6163
6164         * dbus/dbus-message.c: record the _dbus_current_generation of
6165         creation so we can complain if dbus_shutdown() is used improperly.
6166         Do this only if checks are enabled.
6167
6168         * dbus/dbus-connection.c: ditto
6169         
6170 2004-11-26  Havoc Pennington  <hp@redhat.com>
6171
6172         * test/glib/test-profile.c: add with_bus mode to profile echoes
6173         that go through the bus.
6174
6175         * test/glib/run-test.sh: add ability to run test-profile
6176
6177         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6178         config file reload.
6179
6180 2004-11-26  Havoc Pennington  <hp@redhat.com>
6181
6182         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6183         thing was implemented
6184
6185 2004-11-26  Havoc Pennington  <hp@redhat.com>
6186
6187         * test/glib/test-profile.c: tweak a bit, add support for some
6188         made-up minimal malloc overhead with plain sockets, since in 
6189         real life some sort of buffers are unavoidable thus we could 
6190         count them in the theoretical best case
6191
6192 2004-11-26  Havoc Pennington  <hp@redhat.com>
6193
6194         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6195         where I was trying to cache one too many messages
6196
6197 2004-11-26  Havoc Pennington  <hp@redhat.com>
6198
6199         * dbus/dbus-message.c: reimplement message cache as an array which 
6200         makes the cache about twice as fast and saves maybe 1.5% overall
6201
6202 2004-11-26  Havoc Pennington  <hp@redhat.com>
6203
6204         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6205         message cache lock here
6206
6207 2004-11-26  Havoc Pennington  <hp@redhat.com>
6208
6209         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6210         the "char byte_order" next to each other to save 4 bytes
6211         (dbus_message_new_empty_header): reduce preallocation, since the
6212         message cache should achieve a similar effect
6213         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6214         message cache that keeps a few DBusMessage around in a pool,
6215         another 8% speedup or so.
6216
6217         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6218
6219 2004-11-25  Havoc Pennington  <hp@redhat.com>
6220
6221         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6222         to write, without reading or blocking, try it before the poll()
6223         and skip the poll() if nothing remains to write. This is about a
6224         3% speedup in the echo client/server
6225
6226 2004-11-25  Havoc Pennington  <hp@redhat.com>
6227
6228         The primary change here is to always write() once before adding
6229         the write watch, which gives us about a 10% performance increase.
6230         
6231         * dbus/dbus-transport-unix.c: a number of modifications to cope
6232         with removing messages_pending
6233         (check_write_watch): properly handle
6234         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6235         messages_pending stuff
6236         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6237         AUTHENTICATED cases
6238         (unix_handle_watch): after writing, see if the write watch can be
6239         removed
6240         (unix_do_iteration): assert that write_watch/read_watch are
6241         non-NULL rather than testing that they aren't, since they 
6242         aren't allowed to be NULL. check_write_watch() at the end so 
6243         we add the watch if we did not finish writing (e.g. got EAGAIN)
6244
6245         * dbus/dbus-transport-protected.h: remove messages_pending call,
6246         since it resulted in too much inefficient watch adding/removing; 
6247         instead we now require that the transport user does an iteration 
6248         after queueing outgoing messages, and after trying the first
6249         write() we add a write watch if we got EAGAIN or exceeded our 
6250         max bytes to write per iteration setting
6251
6252         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6253         function
6254
6255         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6256         freed and then accessed, valgrind flagged this bug, fix it
6257
6258         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6259         as the last valid field plus 1, where really it is equal to the
6260         last valid field. Corrects some message corruption issues.
6261
6262         * dbus/dbus-mainloop.c: verbosity changes
6263
6264         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6265         instead of aborting in one of the test codepaths
6266
6267         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6268         caused not printing the pid ever again if a verbose was missing
6269         the newline at the end
6270         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6271
6272         * dbus/dbus-connection.c: verbosity changes; 
6273         (dbus_connection_has_messages_to_send): new function
6274         (_dbus_connection_message_sent): no longer call transport->messages_pending
6275         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6276         try to write() immediately, so we can avoid the write watch. This
6277         is the core purpose of this patchset
6278         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6279         dump the outgoing message queue, so nobody will get confused
6280         trying to send them or thinking stuff is pending to be sent
6281
6282         * bus/test.c: verbosity changes
6283
6284         * bus/driver.c: verbosity/assertion changes
6285
6286         * bus/dispatch.c: a bunch of little tweaks to get it working again
6287         because this patchset changes when/where you need to block.
6288
6289 2004-11-23  Havoc Pennington  <hp@redhat.com>
6290
6291         * test/glib/test-profile.c: modify to accept a plain_sockets
6292         argument in which case it will bench plain sockets instead of
6293         libdbus, for comparison purposes.
6294
6295 2004-11-22  Havoc Pennington  <hp@redhat.com>
6296
6297         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6298         threads for more time, so sysprof can get a grip on it.
6299
6300         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6301         pointless variable
6302
6303 2004-11-13  Havoc Pennington  <hp@redhat.com>
6304
6305         * test/glib/test-profile.c: fix this thing up a bit
6306
6307         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6308         preallocation sizes by a fair bit; not sure if this will be an
6309         overall performance win or not, but it does reduce reallocs.
6310
6311         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6312         the test hack that forced constant realloc if asserts are
6313         disabled, so we can profile sanely. Sprinkle in some
6314         _DBUS_UNLIKELY() which are probably pointless, but before I
6315         noticed the real performance problem I put them in.
6316         (_dbus_string_validate_utf8): micro-optimize this thing a little
6317         bit, though callgrind says it didn't help; then special-case
6318         ascii, which did help a lot; then be sure we detect nul bytes as
6319         invalid, which is a bugfix.
6320         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6321         superstition; use memset to nul the padding instead of a manual
6322         loop.
6323         (_dbus_string_get_length): inline this as a
6324         macro; it showed up in the profile because it's used for loop
6325         tests and so forth
6326
6327 2004-11-10  Colin Walters  <walters@verbum.org>
6328
6329         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6330         for extra paranoia.
6331
6332 2004-11-09  Colin Walters  <walters@verbum.org>
6333
6334         * dbus/dbus-string.c (_dbus_string_get_length): New
6335         function, writes DBusString to C buffer.
6336
6337         * dbus/dbus-string.h: Prototype it.
6338
6339         * dbus/dbus-message.c (dbus_message_type_to_string): New
6340         function, converts message type into C string.
6341
6342         * dbus/dbus-message.h: Prototype it.
6343
6344         * bus/selinux.c (bus_selinux_check): Take source pid,
6345         target pid, and audit data.  Pass audit data to
6346         avc_has_perm.
6347         (log_audit_callback): New function, appends extra
6348         audit information.
6349         (bus_selinux_allows_acquire_service): Also take
6350         service name, add it to audit data.
6351         (bus_selinux_allows_send): Also take message
6352         type, interface, method member, error name,
6353         and destination, and add them to audit data.
6354         (log_cb): Initialize func_audit.
6355         
6356         * bus/selinux.h (bus_selinux_allows_acquire_service)
6357         (bus_selinux_allows_send): Update prototypes 
6358
6359         * bus/services.c (bus_registry_acquire_service): Pass
6360         service name to bus_selinux_allows_acquire_service.
6361
6362         * bus/bus.c (bus_context_check_security_policy): Pass
6363         additional audit data.  Move assignment of dest
6364         to its own line.
6365
6366 2004-11-07  Colin Walters  <walters@verbum.org>
6367
6368         * dbus/dbus-transport-unix.c (do_authentication): Always
6369         initialize auth_completed.
6370         
6371 2004-11-07  Colin Walters  <walters@verbum.org>
6372
6373         * bus/bus.c (load_config): Break into three
6374         separate functions: process_config_first_time_only,
6375         process_config_every_time, and process_config_postinit.
6376         (process_config_every_time): Move call of
6377         bus_registry_set_service_context_table into
6378         process_config_postinit.
6379         (process_config_postinit): New function, does
6380         any processing that needs to happen late
6381         in initialization (and also on reload).
6382         (bus_context_new): Instead of calling load_config,
6383         open config parser here and call process_config_first_time_only
6384         and process_config_every_time directly.  Later, after
6385         we have forked but before changing UID,
6386         invoke bus_selinux_full_init, and then call
6387         process_config_postinit.
6388         (bus_context_reload_config): As in bus_context_new,
6389         load parse file inside here, and call process_config_every_time
6390         and process_config_postinit.
6391
6392         * bus/services.h, bus/services.c
6393         (bus_registry_set_service_context_table): Rename
6394         from bus_registry_set_sid_table.  Take string hash from config
6395         parser, and convert them here into SIDs.
6396
6397         * bus/config-parser.c (struct BusConfigParser): Have
6398         config parser only store a mapping of service->context
6399         string.
6400         (merge_service_context_hash): New function.
6401         (merge_included): Merge context string hashes instead
6402         of using bus_selinux_id_table_union.
6403         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6404         simply create a new string hash.
6405         (bus_config_parser_unref): Unref it.
6406         (start_selinux_child): Simply insert strings into hash,
6407         don't call bus_selinux_id_table_copy_over.
6408
6409         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6410         (bus_selinux_id_table_copy_over): Delete.
6411
6412 2004-11-03  Colin Walters  <walters@verbum.org>
6413
6414         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6415         variables.
6416         
6417 2004-11-03  Colin Walters  <walters@verbum.org>
6418
6419         * bus/test-main.c (test_pre_hook): Fix test logic,
6420         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6421
6422 2004-11-02  Colin Walters  <walters@redhat.com>
6423
6424         * bus/selinux.c (bus_selinux_init): Split into two functions,
6425         bus_selinux_pre_init and bus_selinux_post_init.
6426         (bus_selinux_pre_init): Just determine whether SELinux is
6427         enabled.
6428         (bus_selinux_post_init): Do everything else.
6429
6430         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6431         config file, and bus_selinux_post_init after.  This ensures that
6432         we don't lose the policyreload notification thread that
6433         bus_selinux_init created before forking previously.
6434         
6435         * bus/test-main.c (test_pre_hook): Update for split.
6436
6437 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6438
6439         Patch from Johan Fischer <linux@fischaz.com>
6440         
6441         * mono/doc/Makefile.am (install-data-local): Added directory
6442         install for DESTDIR
6443
6444 2004-10-29  Colin Walters  <walters@redhat.com>
6445
6446         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6447         parameter for fd to write pid to.       
6448
6449         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6450         
6451         * bus/bus.c (bus_context_new): Pass print_pid_fd
6452         to _dbus_become_daemon (bug #1720)
6453
6454 2004-10-29  Colin Walters  <walters@redhat.com>
6455
6456         Patch from Ed Catmur <ed@catmur.co.uk>
6457
6458         * mono/doc/Makefile.am (install-data-local): Handle
6459         DESTDIR.
6460
6461 2004-10-29  Colin Walters  <walters@redhat.com>
6462
6463         * bus/.cvsignore, qt/.cvsignore: Update.
6464
6465 2004-10-29  Colin Walters  <walters@redhat.com>
6466
6467         Patch from Kristof Vansant <de_lupus@pandora.be>
6468
6469         * configure.in: Detect Slackware.
6470         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6471         * bus/rc.messagebus.in: New file.
6472
6473 2004-10-29  Colin Walters  <walters@redhat.com>
6474
6475         * tools/dbus-monitor.c (filter_func): Return
6476         DBUS_HANDLER_RESULT_HANDLED in filter function
6477         for now.  See:
6478         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6479
6480 2004-10-29  Colin Walters  <walters@redhat.com>
6481
6482         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6483
6484         * bus/services.c (bus_registry_acquire_service): 
6485         Correctly retrieve service name from DBusString
6486         for printing.
6487
6488 2004-10-29  Colin Walters  <walters@redhat.com>
6489
6490         * dbus/dbus-glib.h: Update documentation to not
6491         refer to internal APIs.
6492
6493 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6494
6495         * mono/Arguments.cs (GetDBusTypeConstructor):
6496         type.UnderlyingSystemType will return "System.Byte" if you do it
6497         on "byte[]", which is not what we want.  So check the type.IsArray
6498         property and use System.Array instead.
6499
6500 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6501
6502         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6503         the DBusUserInfo structure since this is passed into the function.
6504         This would cause a double free when the function that allocated
6505         the structure would try to free it when an error occured.
6506
6507         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6508         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6509         for service activation to avoid 32bit/64bit parallel install issues
6510
6511 2004-10-21  Colin Walters  <walters@verbum.org>
6512
6513         * AUTHORS: Fix my email address, the @gnu.org one
6514         has been bouncing for some time.  Also add J5.
6515         
6516 2004-10-21  Colin Walters  <walters@verbum.org>
6517
6518         * dbus/dbus-transport-unix.c (do_authentication): Return
6519         authentication status to callers.
6520         (unix_handle_watch): If we completed authentication this round,
6521         don't do another read.  Instead wait until the next iteration,
6522         after we've read any pending data in the auth buffer.
6523         (unix_do_iteration): Ditto.
6524         (unix_handle_watch): Updated for new do_authentication prototype.
6525
6526 2004-10-18  Colin Walters  <walters@verbum.org>
6527
6528         * bus/selinux.c (bus_selinux_enabled): Handle
6529         --disable-selinux case.
6530         
6531 2004-10-18  Colin Walters  <walters@verbum.org>
6532
6533         * bus/selinux.h: Add bus_selinux_enabled.
6534         
6535         * bus/selinux.c (bus_selinux_enabled): Implement it.
6536         
6537         * bus/config-parser.c (struct include): Add
6538         if_selinux_enabled member.
6539         (start_busconfig_child): Parse if_selinux_enabled
6540         attribute for include.
6541         (bus_config_parser_content): Handle it.
6542
6543         * bus/session.conf.in, bus/system.conf.in: Add
6544         inclusion of context mapping to default config files;
6545         conditional on SELinux being enabled.
6546         
6547         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6548         
6549         * test/data/invalid-config-files/badselinux-1.conf, 
6550         test/data/invalid-config-files/badselinux-2.conf:
6551         Test files for bad syntax.
6552         
6553 2004-10-17  Colin Walters  <walters@verbum.org>
6554
6555         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6556         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6557         format specifier mismatches.
6558
6559 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6560
6561         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6562         format string.
6563
6564         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6565         pointer (bug #1540, Leonardo Boiko).
6566
6567 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6568
6569         * mono/BusDriver.cs: Changed BusDriver struct to remove
6570         the ServiceCreated and ServiceDeleted events and replace them
6571         with the new ServiceOwnerChanged event.
6572
6573         * mono/example/BusListener.cs: Added a new example program,
6574         which listens for and reports any ServiceOwnerChanged events
6575         on the bus driver.
6576
6577         * mono/example/Makefile.am (DESTDIR): Build changes for the
6578         new BusListener.cs example.
6579
6580 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6581
6582         * bus/signals.c (bus_match_rule_parse): validate the components of
6583         match rules (bug #1439).
6584
6585         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6586
6587 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6588
6589         * doc/dbus-specification.xml: document ServiceOwnerChanged
6590         signal.
6591         
6592         * bus/driver.c, bus/driver.h, bus/services.c: Use
6593         ServiceOwnerChanged signal instead of ServiceCreated and
6594         ServiceDeleted.
6595         
6596         * bus/dispatch.c: update testcase for the new signal.
6597
6598 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6599
6600         Patch from Nat Friedman <nat@novell.com>
6601
6602         * mono/Makefile.am: A number of small build fixes to allow "make
6603         distcheck" to succeed.
6604
6605         * mono/example/Makefile.am: "make distcheck" fixes.
6606
6607         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6608         key in @srcdir@.
6609
6610         * test/Makefile.am: "make distcheck" fixes.
6611
6612 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6613
6614         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6615
6616         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6617
6618         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6619         messages after the first one (bug #1389).
6620         
6621         * bus/dispatch.c (check_double_hello_message): add a test case for
6622         the double hello message bug.
6623         (check_existent_service_activation): fix check of spawning error.
6624         
6625 2004-09-16  David Zeuthen  <david@fubar.dk>
6626
6627         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6628
6629 2004-09-12  David Zeuthen  <david@fubar.dk>
6630
6631         Patch from Kay Sievers <kay.sievers@vrfy.org>
6632
6633         * bus/bus.c (bus_context_new):
6634         * bus/bus.h:
6635         * bus/main.c (usage)
6636         (main):
6637         Add commandline option --nofork to override configuration file
6638         setting.
6639
6640 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6641
6642         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6643         compilers don't like it (bug #974).
6644
6645 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6646
6647         * qt/connection.*: Applied patch by Jérôme Lodewyck
6648         <lodewyck@clipper.ens.fr> to integrate an existing
6649         connection into the Qt eventloop
6650
6651 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6652
6653         * mono/BusDriver.cs: Added.  This is a class for interacting with
6654         the org.freedesktop.DBus service.
6655
6656         * mono/Message.cs: Added a mechanism to expose the message that is
6657         currently being dispatched via the static Message.Current
6658         property.  Added Message.Sender and Message.Destination
6659         properties.
6660
6661         * mono/Handler.cs: Expose the dispatched message via
6662         Message.Current when handling method calls.
6663
6664         * mono/Service.cs: Expose the dispatched message via
6665         Message.Current when handling signal emissions.
6666         
6667         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6668         Connection.BaseService property.
6669
6670 2004-08-28  Havoc Pennington  <hp@redhat.com>
6671
6672         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6673
6674         More fixes from Steve Grubb
6675         
6676         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6677         (_dbus_listen_tcp_socket): fix fd leak
6678
6679         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6680         EINTR to a bit lower in the code
6681
6682 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6683
6684         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6685         TRUE if we are inquiring about the existence of the built-in
6686         org.freedesktop.DBus service.
6687
6688 2004-08-25  John Palmieri  <johnp@redhat.com>
6689         * bus/config-parser.c:
6690         (struct PolicyType): Add POLICY_CONSOLE
6691         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6692         (start_busconfig_child): Sets up console element when
6693         <policy at_console=""> is encountered in a policy file
6694         (append_rule_from_element): Convert console elements to console
6695         rules.
6696
6697         * bus/policy.c: 
6698         (bus_policy_create_client_policy): Add console rules to the client
6699         policy based on if the client is at the console
6700         (bus_policy_append_console_rule): New function for adding a
6701         console rule to a policy
6702         (bus_policy_merge): Handle console rule merging
6703
6704         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6705         where we check for console user files
6706         
6707         * dbus/dbus-sysdeps.c:
6708         (_dbus_file_exists): New function which checks if the given
6709         file exists
6710         (_dbus_user_at_console): New function which does the system
6711         specific process of checking if the user is at the console
6712
6713         * dbus/dbus-userdb.c:
6714         (_dbus_is_console_user): New function converts a UID to user name
6715         and then calls the system specific _dbus_user_at_console to 
6716         see if the user is at the console and therefor a console user
6717
6718 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6719
6720         * bus/config-parser.c (set_limit):
6721         * bus/dbus-daemon-1.1.in:
6722         * test/data/valid-config-files/many-rules.conf: set the
6723         max_match_rules_per_connection limt from the config file. 
6724
6725         * doc/busconfig.dtd: update the DTD.
6726
6727         * bus/driver.c: remove some unused variables.
6728
6729 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6730
6731         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6732         it's been replaced by dbus_g_bus_get
6733
6734 2004-08-23  Colin Walters  <walters@redhat.com>
6735
6736         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6737
6738         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6739
6740         * bus/selinux.c: Create a thread for policy reload notification.
6741         (bus_selinux_get_policy_root): Implement.
6742
6743         * bus/config-parser.c (start_busconfig_child)
6744         (bus_config_parser_content): Support SELinux-root relative
6745         inclusion.
6746
6747         * configure.in <HAVE_SELINUX>: Add -lpthread.
6748         
6749         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6750         (test_post_hook): Move memory checking into here.
6751         (test_pre_hook, test_post_hook): Move SELinux checks in
6752         here, but conditional on a DBUS_TEST_SELINUX environment
6753         variable.  Unfortunately we can't run the SELinux checks
6754         as a normal user, since they won't have any permissions
6755         for /selinux.  So this will have to be tested manually
6756         for now, until we have virtualization for most of
6757         libselinux.
6758         
6759 2004-08-23  Havoc Pennington  <hp@redhat.com>
6760
6761         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6762         drop supplementary groups, suggested by Steve Grubb
6763
6764 2004-08-20  Colin Walters  <walters@redhat.com>
6765
6766         * bus/config-parser.c (start_busconfig_child): Remove some unused
6767         variables.
6768         
6769         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6770         warning.
6771
6772 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6773
6774         * configure.in: If --enable-mono is passed in, if we can't find
6775         mono error out.
6776
6777         * mono/Makefile.am: Use /gacutil to install assemblies into the
6778         GAC and not /root.
6779
6780 2004-08-12  Havoc Pennington  <hp@redhat.com>
6781
6782         * NEWS: update for 0.22
6783
6784         * configure.in: release 0.22
6785
6786 2004-08-11  Colin Walters  <walters@redhat.com>
6787
6788         * tools/dbus-send.c (main, usage): Add --reply-timeout
6789         argument.
6790
6791 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6792
6793         * bus/bus.c (process_config_first_time_only): get rid of an unused
6794         DBusError that was causing a memoy leak (bug #989).
6795
6796         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6797         fix compilation on Solaris/Forte C (bug #974)
6798
6799         * bus/main.c (main): plug two minuscule memleaks.
6800
6801 2004-08-10  Havoc Pennington  <hp@redhat.com>
6802
6803         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6804
6805 2004-08-09  Havoc Pennington  <hp@redhat.com>
6806
6807         * COPYING: switch to Academic Free License version 2.1 instead of
6808         2.0, to resolve complaints about patent termination clause.
6809
6810 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6811
6812         * README: added documentation for the --enable-python 
6813         configure switch.
6814
6815 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6816
6817         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6818         _unref in the SELinux support.
6819
6820         * doc/busconfig.dtd: update DTD for SELinux support.
6821
6822         * bus/config-loader-libxml.c: fix error handler and parser
6823         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6824
6825         * configure.in: remove the warning about libxml2.
6826
6827         * dbus/dbus-bus.c: silence doxygen warning.
6828
6829 2004-07-31  Colin Walters  <walters@redhat.com>
6830
6831         * configure.in: Move #error in SELinux check to its own line.
6832
6833 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6834
6835         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6836         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6837         dbus_error_set.
6838
6839         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6840         broken by the change in the _SET_OOM macros.
6841
6842 2004-07-31  Colin Walters  <walters@redhat.com>
6843
6844         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6845         BUS_SET_OOM.
6846
6847 2004-07-31  Colin Walters  <walters@redhat.com>
6848
6849         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6850         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6851         AC_MSG_CHECKING.
6852
6853 2004-07-24  Havoc Pennington  <hp@redhat.com>
6854
6855         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6856
6857         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6858         functionality
6859
6860         * configure.in: add --enable-selinux
6861         
6862         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6863
6864         * bus/main.c (main): initialize and shut down selinux
6865
6866         * bus/connection.c: store SELinux ID on each connection, to avoid 
6867         repeated getting of the string context and converting it into 
6868         an ID
6869
6870         * bus/bus.c (bus_context_get_policy): new accessor, though it
6871         isn't used
6872         (bus_context_check_security_policy): check whether the security
6873         context of sender connection can send to the security context of
6874         recipient connection
6875
6876         * bus/config-parser.c: add parsing for <selinux> and <associate>
6877         
6878         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6879         implement dbus_connection_get_unix_fd()
6880
6881         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6882         function, used by the selinux stuff
6883         
6884 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6885
6886         * bus/config-loader-libxml.c: complete the implementation of
6887         libxml backend for config file loader. Doesn't work with full OOM
6888         test yet. 
6889         
6890         * configure.in: change error when selecting libxml into a warning.
6891         
6892         * test/data/invalid-config-files: add two non-well-formed XML
6893         files. 
6894         
6895         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6896         
6897         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6898         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6899         be necessary to read all the buffer. (bug #894)
6900
6901         * bus/activation.c (bus_activation_activate_service): fix a
6902         potential assertion failure (bug #896). Small optimization in the
6903         case of auto-activation messages.
6904
6905         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6906         add test case for byte-through-vararg bug (#901). patch by Kimmo
6907         Hämäläinen. 
6908
6909 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6910
6911         * python/dbus.py:
6912         * python/dbus_bindings.pyx.in:
6913         Add dbus.init_gthreads (), allow emit_signal to pass
6914         arguments to the signal.
6915         
6916 2004-07-24  Havoc Pennington  <hp@redhat.com>
6917
6918         * AUTHORS: add some people, not really comprehensively, let me
6919         know if I missed you
6920
6921 2004-07-24  Havoc Pennington  <hp@redhat.com>
6922
6923         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6924         Owen
6925
6926         * test/Makefile.am (DIST_SUBDIRS): here also
6927
6928 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6929
6930         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6931         breaking build on Solaris, reported by Farhad Saberi on the ML.
6932
6933         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6934         va_arg invocation to account for integer promotion in the case of
6935         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6936
6937         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6938         _dbus_list_get_first_link, not _dbus_list_get_first.
6939
6940         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6941
6942         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6943         handler functions so that the asserts in _dbus_object_subtree_unref
6944         do not fail.
6945
6946         * dbus/dbus-transport-unix.c (do_reading):
6947         _dbus_transport_queue_messages return value is of type
6948         dbus_bool_t, not DBusDispatchStatus.
6949         
6950 2004-07-19  David Zeuthen  <david@fubar.dk>
6951
6952         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6953
6954         * bus/dispatch.c:
6955         (check_get_connection_unix_user): Debug says GetProperty; but the
6956         method is called GetConnectionUnixUser
6957         (check_get_connection_unix_process_id): New function
6958         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6959         also call check_get_connection_unix_process_id()
6960         
6961         * bus/driver.c:
6962         (bus_driver_handle_get_connection_unix_process_id): New function,
6963         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6964         interface
6965         
6966         * dbus/dbus-auth.c:
6967         (handle_server_data_external_mech): Set pid from the credentials
6968         obtained from the socket
6969         
6970         * dbus/dbus-connection.c:
6971         (dbus_connection_get_unix_process_id): New function
6972         
6973         * dbus/dbus-connection.h: 
6974         Add prototype for dbus_connection_get_unix_process_id
6975         
6976         * dbus/dbus-transport.c:
6977         (_dbus_transport_get_unix_process_id): New function
6978         
6979         * dbus/dbus-transport.h:
6980         Add prototype for _dbus_transport_get_unix_process_id
6981         
6982 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6983
6984         * dbus/dbus-message.c: Message counter fix, patch by Christian
6985         Hammond <chipx86@gnupdate.org>
6986
6987 2004-07-18  Seth Nickell  <seth@gnome.org>
6988
6989         * python/dbus.py:
6990         * python/dbus_bindings.pyx.in:
6991         * python/tests/test-client.py:
6992
6993         Add dbus.ByteArray and dbus_bindings.ByteArray
6994         types so that byte streams can be passed back.
6995
6996         Give jdahlin the heaps of credit that are so
6997         rightfully his.
6998         
6999 2004-07-12  Seth Nickell  <seth@gnome.org>
7000
7001         * python/dbus.py:
7002
7003         Add message argument to the default object_method_handler
7004         function.
7005         
7006         * python/dbus_bindings.pyx.in:
7007
7008         Automatically return NIL when passed an empty list
7009         (we can't pass back a list since lists are typed
7010         and we don't have any idea what type the the client
7011         intended the list to be... :-( )
7012         
7013 2004-07-10  Seth Nickell  <seth@gnome.org>
7014
7015         * python/examples/Makefile.am:
7016
7017         Fix distcheck breakage caused by new examples.
7018
7019 2004-07-10  Seth Nickell  <seth@gnome.org>
7020
7021         * python/dbus.py:
7022
7023         Add "message" argument to service-side dbus.Object
7024         methods. This will break existing services written
7025         using the python bindings, but will allow extraction
7026         of all the message information (e.g. who its from).
7027
7028         Add improved "object oriented" signal handling/emission.
7029         
7030         * python/examples/example-service.py:
7031
7032         Nix this example.
7033         
7034         * python/examples/example-signal-emitter.py:
7035         * python/examples/example-signal-recipient.py:
7036
7037         Two new examples that show how to emit and receive
7038         signals using the new APIs.
7039         
7040         * python/examples/example-signals.py:
7041         * python/examples/gconf-proxy-service.py:
7042         * python/examples/gconf-proxy-service2.py:
7043
7044         Add "message" argument to service methods.
7045
7046 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7047
7048         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7049         * dbus/bus.c (dbus_bus_get_unix_user)
7050         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7051         method of org.freedesktop.DBus interface.
7052
7053         * bus/dispatch.c: test case
7054
7055 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7056
7057         * python/Makefile.am: switched include directory from glib/ to dbus/
7058         since dbus-glib.h moved
7059  
7060 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7061
7062         * configure.in: prevent building the gcj stuff and libxml loader
7063         since they are broken.
7064
7065 2004-06-20  Havoc Pennington  <hp@redhat.com>
7066
7067         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7068         codes from the dbus error names
7069         
7070         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7071         as dbus/dbus-glib.h and that breakage is now visible due to 
7072         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7073         
7074         * glib/dbus-glib.h: s/gproxy/g_proxy/
7075
7076         * dbus/dbus-shared.h: new header to hold stuff shared with
7077         binding APIs
7078         
7079         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7080         than dbus-errors.h
7081
7082         * glib/dbus-glib.h (dbus_set_g_error): move to
7083         dbus-glib-lowlevel.h
7084
7085         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7086         of stuff to enable this
7087
7088         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7089
7090         * a bunch of other changes with the same basic "separate glib 
7091         bindings from dbus.h" theme
7092         
7093 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7094
7095         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7096
7097         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7098
7099 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7100
7101         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7102         the reply value of the ServiceExists message.
7103
7104 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7105
7106         * python/dbus_bindings.pyx.in: No longer need to parse path
7107         elements and pass them as arrays of strings.  The C API now
7108         accepts plain path strings.
7109         (_build_parsed_path): removed 
7110
7111 2004-06-07  Havoc Pennington  <hp@redhat.com>
7112
7113         * doc/TODO: remove auto-activation item since it's done; sort
7114         items by importance/milestone
7115
7116 2004-06-07  Havoc Pennington  <hp@redhat.com>
7117
7118         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7119         random signature when using REQUIRED_FIELDS (this hack won't work
7120         in the long term)
7121
7122         * dbus/dbus-message.c: change the signature to be a header field,
7123         instead of message->signature special-case string. Incremental
7124         step forward. Then we can fix up code to send the signature in the
7125         message, then fix up code to validate said signature, then fix up
7126         code to not put the typecodes inline, etc.
7127         (load_one_message): don't make up the signature after the fact
7128         (decode_header_data): require signature field for the known
7129         message types
7130
7131         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7132
7133         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7134
7135 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7136
7137         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7138
7139         * mono/Handler.cs: Updated to follow new path argument for
7140         (un-)registering objects.
7141
7142         * mono/example/Makefile.am:
7143         * mono/Makefile.am:
7144         * configure.in: Bumped required version for mono and use new -pkg
7145         syntax for deps
7146
7147 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7148
7149         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7150         registration functions take the path argument as char* instead of
7151         char**.
7152
7153         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7154         split off the path decompostion part of
7155         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7156         warnings. 
7157
7158         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7159         
7160 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7161  
7162         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7163         machine approach.  A state is implemented as a function that
7164         handles incoming events as specified for that state.
7165         
7166         * doc/dbus-specification.xml: Update auth protocol state machine
7167         specification to match implementation.  Remove some leftover
7168         base64 examples.
7169
7170 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7171
7172         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7173         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7174         quiet doxygen.
7175
7176         * Doxyfile.in: remove deprecated options.
7177
7178         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7179         glib/test-thread.h, glib/test-thread-client.c,
7180         glib/test-thread-server.c, glib/test-profile.c,
7181         glib/test-dbus-glib.c: remove these unused files.
7182
7183 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7184
7185         * dbus/dbus-object-tree.c
7186         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7187         non-fallback handlers (bug #684).
7188         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7189         (find_subtree_recurse): report wether the returned subtree is an
7190         exact match or a "fallback" match higher up in the tree.
7191         (object_tree_test_iteration): update test case.
7192
7193 2004-06-01  Seth Nickell  <seth@gnome.org>
7194
7195         * python/dbus_bindings.pyx.in:
7196         * python/tests/test-client.py:
7197
7198         Round off basic type support. Add dicts (yay!), and 
7199         remaining array types.
7200
7201         Make MessageIter more general so it works for dicts too.
7202
7203         Mark all loop variables as C integers.
7204         
7205 2004-05-31  Havoc Pennington  <hp@redhat.com>
7206
7207         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7208         "in" before "out"
7209
7210         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7211
7212         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7213         option that runs the tests, and start filling in some code
7214         including for starters just dumping the interfaces to stdout
7215
7216         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7217
7218         * test/data/valid-introspection-files/lots-of-types.xml: test of
7219         an example introspection file
7220
7221         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7222         "node" (I think...)
7223
7224 2004-05-31  Seth Nickell  <seth@gnome.org>
7225
7226         * python/dbus_bindings.pyx.in:
7227         * python/tests/test-client.py:
7228
7229         Test Suite: 1
7230         Python Bindings: 0
7231
7232         Fix string array memory trashing bug... oops...
7233
7234 2004-05-30  Seth Nickell  <seth@gnome.org>
7235
7236         * python/dbus.py:
7237
7238         Add a nicer-but-less-flexible alternate API for handling 
7239         calls to virtual objects in dbus.ObjectTree.
7240
7241         Screw up the argument order to the dbus.Object constructor
7242         for consistency with dbus.ObjectTree (and to make dbus_methods
7243         optional for future extension)
7244         
7245         * python/examples/Makefile.am:
7246         * python/examples/gconf-proxy-service.py:
7247         * python/examples/gconf-proxy-service2.py:
7248
7249         Alternate implementation of gconf-proxy-service using the
7250         nicer dbus.ObjectTree API.
7251         
7252         * python/examples/example-service.py:
7253         * python/tests/test-server.py
7254
7255         Reverse the argument order to deal with dbus.Object constructor
7256         changes.
7257         
7258 2004-05-30  Seth Nickell  <seth@gnome.org>
7259
7260         * python/examples/example-client.py:
7261         * python/examples/example-service.py:
7262
7263         Take it back. Lists seem to work but they're broken
7264         in the test suite. Make the base examples use
7265         lists (works fine).
7266
7267 2004-05-30  Seth Nickell  <seth@gnome.org>
7268
7269         * python/dbus_bindings.pyx.in:
7270         * python/tests/test-client.py:
7271
7272         Add some more tests and fix errors that crop up.
7273         Unfortunately, currently it seems like marshalling
7274         and unmarshalling of lists is completely broken :-(
7275
7276 2004-05-30  Seth Nickell  <seth@gnome.org>
7277
7278         * python/dbus_bindings.pyx.in:
7279
7280         Add support for ObjectPath type.
7281
7282         * python/dbus.py:
7283
7284         Refactor message handling code to a common function.
7285         
7286         * python/tests/test-client.py:
7287         * python/tests/test-server.py:
7288
7289         Add tests that check to make sure values of all types
7290         can be echoed from a service w/o mangling.
7291         
7292 2004-05-29  Seth Nickell  <seth@gnome.org>
7293
7294         * python/dbus.py:
7295
7296         Add ObjectTree class which allows implementation
7297         of trees of "virtual" objects. Basically the python
7298         wrapper for "register_fallback".
7299         
7300         * python/examples/Makefile.am
7301         * python/examples/gconf-proxy-client.py:
7302         * python/examples/gconf-proxy-service.py:
7303
7304         Implement a simple GConf proxy service that supports
7305         get/set on string and int GConf keys using the ObjectTree.
7306         
7307 2004-05-29  Seth Nickell  <seth@gnome.org>
7308
7309         * python/dbus.py:
7310         * python/examples/example-client.py:
7311         * python/examples/example-service.py:
7312         * python/examples/list-system-services.py:
7313
7314         Add SessionBus, SystemBus and ActivationBus classes
7315         so you don't need to know the special little BUS_TYPE
7316         flag.
7317         
7318 2004-05-29  Havoc Pennington  <hp@redhat.com>
7319
7320         * bus/config-parser.c (process_test_valid_subdir): temporarily
7321         stop testing config parser OOM handling, since expat has issues
7322         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7323
7324         * bus/dbus-daemon-1.1.in: change requested_reply to
7325         send_requested_reply/receive_requested_reply so we can send the
7326         replies, not just receive them.
7327
7328         * bus/config-parser.c: parse the new
7329         send_requested_reply/receive_requested_reply
7330
7331         * bus/policy.c (bus_client_policy_check_can_send): add
7332         requested_reply argument and use it
7333
7334         * bus/bus.c (bus_context_check_security_policy): pass through
7335         requested_reply status to message send check
7336
7337         * bus/system.conf.in: adapt to requested_reply change
7338         
7339 2004-05-28  Havoc Pennington  <hp@redhat.com>
7340
7341         * test/glib/test-service-glib.c (main): remove unused variable
7342
7343         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7344
7345         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7346         from the enum, no longer in use.
7347
7348         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7349         works right.
7350
7351         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7352         whether error_name passed in is a valid error name.
7353
7354 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7355
7356         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7357         OBJECT_PATH and OBJECT_PATH_ARRAY
7358
7359 2004-05-28  Seth Nickell  <seth@gnome.org>
7360
7361         * python/examples/Makefile.am:
7362
7363         Forget to add Makefile.am. Do not pass go.
7364
7365 2004-05-28  Michael Meeks  <michael@ximian.com>
7366
7367         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7368         fix no int64 case.
7369
7370         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7371
7372         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7373         (_dbus_message_iter_get_basic_type_array): impl.
7374         drastically simplify ~all relevant _get methods to use these.
7375         (_dbus_message_iter_append_basic_array),
7376         (dbus_message_iter_append_basic): impl
7377         drastically simplify ~all relevant _append methods to use these.
7378
7379         * dbus/dbus-message-builder.c (parse_basic_type) 
7380         (parse_basic_array, lookup_basic_type): impl.
7381         (_dbus_message_data_load): prune scads of duplicate /
7382         cut & paste coding.
7383
7384         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7385         (_dbus_demarshal_basic_type): implement,
7386         (demarshal_and_validate_len/arg): beef up debug.
7387         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7388
7389 2004-05-27  Seth Nickell  <seth@gnome.org>
7390
7391         * configure.in:
7392         * python/Makefile.am:
7393
7394         Include the example python apps in the tarball.
7395         
7396         * python/examples/list-system-services.py
7397
7398         Add a python new example that fetches the list of services
7399         from the system bus.
7400         
7401 2004-05-27  Seth Nickell  <seth@gnome.org>
7402
7403         * python/dbus.py:
7404         * python/dbus_bindings.pyx.in:
7405
7406         Fix failure to notify that a signal was not handled,
7407         resulted in hung functions.
7408         
7409 2004-05-25  Colin Walters  <walters@redhat.com>
7410
7411         * tools/dbus-monitor.c (main): Monitor all types of messages.
7412
7413 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7414
7415         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7416         which unregisters the object path and disposes the handler.
7417
7418 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7419  
7420         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7421          
7422         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7423         operands to && so we call dbus_message_iter_next () for the last
7424         argument also.
7425
7426 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7427
7428         * dbus/dbus-object-tree.c
7429         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7430         children even if the requested path isn't registered.
7431         (object_tree_test_iteration): test object_tree_list_registered.
7432
7433         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7434         it to 0.
7435         
7436 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7437
7438         * doc/TODO: Remove resolved items.
7439
7440         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7441         field.
7442         
7443         * bus/connection.c (bus_connections_expect_reply): Enforce the
7444         per-connection limit on pending replies.
7445         
7446         Patch from Jon Trowbridge <trow@ximian.com>:
7447  
7448         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7449         up a watch that triggers a config reload when one end of the pipe
7450         becomes readable.
7451         (signal_handler): Instead of doing the config reload in our SIGHUP
7452         handler, just write to the reload pipe and let the associated
7453         watch handle the reload when control returns to the main loop.
7454  
7455         * bus/driver.c (bus_driver_handle_reload_config): Added.
7456         Implements a ReloadConfig method for requesting a configuration
7457         file reload via the bus driver.
7458  
7459 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7460
7461         * HACKING: Updated release instructions concerning the wiki page.
7462
7463 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7464
7465         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7466         filter against auth->allowed_mechs; we only add allowed mechs in
7467         record_mechanisms().
7468  
7469         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7470         ALLOWED_MECHS to auth-script format so we can set the list of
7471         allowed mechanisms.
7472  
7473         * data/auth/client-out-of-mechanisms.auth-script: New test to
7474         check client disconnects when it is out of mechanisms to try.
7475  
7476         * dbus/dbus-auth.c (process_command): Remove check for lines
7477         longer that 1 MB; we only buffer up maximum 16 kB.
7478  
7479         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7480         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7481         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7482         assume there might be unused bytes.
7483  
7484         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7485         client-out-of-mechs, it is handled in process_reject(). Move check
7486         for max failures to send_rejected(), as it's a server-only thing.
7487
7488         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7489         send_auth(), send_data(), send_rejected(), send_error(),
7490         send_ok(), send_begin() and send_cancel().
7491
7492 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7493
7494         Remove base64 encoding, replace with hex encoding. Original patch
7495         from trow@ximian.com, added error handling.
7496
7497         * dbus/dbus-string.c (_dbus_string_base64_encode)
7498         (_dbus_string_base64_decode): Remove.
7499         (_dbus_string_hex_decode): Add end_return argument so we can
7500         distinguish between OOM and invalid hex encoding.
7501         (_dbus_string_test): Remove base64 tests and add test case for
7502         invalid hex.
7503
7504         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7505         Replace base64 with hex.
7506
7507         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7508         for invalid hex encoded data in auth protocol.
7509
7510 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7511
7512         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7513         leak.
7514
7515 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7516
7517         * mono/dbus-sharp.dll.config.in: Added for GAC
7518         * mono/dbus-sharp.snk: Added for GAC
7519         * mono/Assembly.cs.in: Added for GAC
7520         * mono/Makefile.am: Changes for GAC installation        
7521         * configure.in: Added refs for dbus-sharp.dll.config.in and
7522         Assembly.cs.in. More fixes for mono testing
7523         * mono/example/Makefile.am: Changed var to CSC
7524         * Makefile.am: Changed flag name to DBUS_USE_CSC
7525
7526 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7527
7528         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7529         * mono/doc/*: Added documentation framework
7530         * configure.in: Added monodoc check
7531         * README: Added description of mono configure flags
7532
7533 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7534
7535         * doc/dbus-specification.xml: Added a "Required" column to the 
7536         header fields table and changed the "zero or more" verbage in
7537         the above paragraph to read "The header must contain the required 
7538         named header fields and zero or more of the optional named header 
7539         fields".
7540         * test/data/invalid-messages/*.message: Added the required PATH 
7541         named header field to the tests so that they don't fail on 
7542         'Missing path field'
7543
7544 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7545
7546         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7547         the stack by implicitly defining variable and parameter types and
7548         removing the hack of defining C pointers as python objects and later
7549         casting them.
7550
7551 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7552
7553         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7554
7555 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7556
7557         * mono/DBusType/Dict.cs: Handle empty dicts
7558         * mono/DBusType/Array.cs: Handle empty arrays
7559         * mono/Arguments.cs: Handle empty arguments
7560
7561 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7562
7563         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7564         field
7565
7566 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7567
7568         * test/data/valid-messages/standard-*.message: Update message
7569         test scripts to new header field names.
7570
7571 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7572
7573         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7574         overflow to times_we_did_each_thing array which would chop off the
7575         first character of the failure_dir string. Increased the size of
7576         the array to 7 to reflect the number of random mutation functions
7577         we have.
7578
7579 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7580
7581         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7582         unix_server->watch here, it is unreffed in disconnect.
7583         (_dbus_server_new_for_tcp_socket): convert NULL host to
7584         "localhost" here so we don't append NULL to address.
7585         
7586         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7587         various addresses, including tcp with no explicit host.
7588
7589 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7590
7591         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7592         fix incorrect setting of .name_offset in the HeaderField (it was
7593         off by two bytes, positioned right after the name and typecode)
7594
7595         * bus/bus.c (bus_context_new, bus_context_unref): test before
7596         calling dbus_server_free_data_slot and _dbus_user_database_unref
7597         in case of an error.
7598
7599         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7600         by libdbus-gtool.
7601
7602 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7603
7604         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7605         _dbus_poll() instead of select().
7606
7607 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7608
7609         * bus/main.c (signal_handler): Reload the configuration files
7610         on SIGHUP.
7611         (main): Set up our SIGHUP handler.
7612
7613         * bus/bus.c (struct BusContext): Store the config file, user and
7614         fork flag in the BusContext.
7615         (process_config_first_time_only): Added.  Contains the code
7616         (previously in bus_context_new) for setting up the BusContext from
7617         the BusConfigParser that should only be run the first time the
7618         config files are read.
7619         (process_config_every_time): Added.  Contains the code (previously
7620         in bus_context_new) for setting up the BusContext from the
7621         BusConfigParser that should be run every time the config files are
7622         read.
7623         (load_config): Added.  Builds a BusConfigParser from the config
7624         files and passes the resulting structure off to
7625         process_config_first_time_only (assuming this is the first time)
7626         and process_config_every_time.
7627         (bus_context_new): All of the config-related code has been moved
7628         to process_config_first_time_only and process_config_every_time.
7629         Now this function just does the non-config-related initializations
7630         and calls load_config.
7631         (bus_context_reload_config): Added.
7632
7633 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7634
7635         * bus/driver.c (bus_driver_handle_get_service_owner):
7636         implement a GetServiceOwner method.
7637         * doc/dbus-specification.xml: document it.
7638         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7639         
7640         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7641         implement, using the bus GetServiceOwner method.
7642
7643         * test/glib/test-dbus-glib.c:
7644         use dbus_gproxy_new_for_service_owner so that we can receive the
7645         signal. 
7646
7647 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7648
7649         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7650         dbus/dbus-message.c, dbus/dbus-protocol.h
7651         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7652
7653         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7654         dbus/dbus-message.c, dbus/dbus-protocol.h
7655         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7656
7657         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7658         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7659         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7660
7661         * doc/dbus-specification.xml (Header Fields Table):
7662         s/SERVICE/DESTINATION
7663         s/SENDER_SERVICE/SENDER
7664
7665
7666 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7667
7668         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7669         a few seconds.
7670
7671 2004-04-13  Michael Meeks  <michael@ximian.com>
7672
7673         * glib/dbus-gobject.c (handle_introspect): split out
7674         (introspect_properties): this.
7675         (handle_introspect): implement this.
7676
7677         * test/glib/Makefile.am: use the absolute path so the bus
7678         daemon's chdir ("/") doesn't kill us dead.
7679
7680         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7681
7682 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7683
7684         * bus/config-parser.c (struct BusConfigParser): Added
7685         included_files field.
7686         (seen_include): Added.  Checks whether or not a file has already
7687         been included by any parent BusConfigParser.
7688         (bus_config_parser_new): Copy the parent's included_files.
7689         (include_file): Track which files have been included, and fail on
7690         circular inclusions.
7691         (process_test_valid_subdir): Changed printf to report if we are
7692         testing valid or invalid conf files.
7693         (all_are_equiv): Changed printf to be a bit clearer about
7694         what we are actually doing.
7695         (bus_config_parser_test): Test invalid configuration files.
7696
7697 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7698
7699         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7700         argument.  If non-null, the newly-constructed BusConfigParser will
7701         be initialized with the parent's BusLimits instead of the default
7702         values.
7703         (include_file): When including a config file, pass in
7704         the current parser as the parent and then copy the BusLimits
7705         from the included BusConfigParser pack to the current parser.
7706         (process_test_valid_subdir): Renamed from process_test_subdir.
7707         (process_test_equiv_subdir): Added.  Walks through a directory,
7708         descending into each subdirectory and loading the config files
7709         it finds there.  If any subdirectory contains two config files
7710         that don't produce identical BusConfigParser structs, fail.
7711         For now, the BusConfigParser's BusPolicies are not compared.
7712         (bus_config_parser_test): Call both process_test_valid_subdir and
7713         process_test_equiv_subdir.
7714
7715         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7716         argument and pass it along to the call to bus_config_parser_new.
7717         Also made a few small changes to allow this code to compile.
7718
7719         * bus/config-loader-expat.c (bus_config_load): Take a parent
7720         argument and pass it along to the call to bus_config_parser_new.
7721
7722         * bus/bus.c (bus_context_new): Load the config file
7723         with a NULL parent argument.
7724
7725 2004-03-29  Michael Meeks  <michael@ximian.com>
7726
7727         * glib/dbus-gobject.c (introspect_properties): split
7728         out, fix mangled 'while' flow control.
7729         (introspect_signals): implement.
7730         (handle_introspect): update.
7731
7732 2004-03-29  Michael Meeks  <michael@ximian.com>
7733
7734         * glib/dbus-gobject.c (set_object_property): split out / 
7735         re-work, use the property type, and not the message type(!)
7736         (get_object_property): ditto.
7737
7738         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7739         (dbus_gvalue_marshal): make this code re-usable, needed
7740         for signals too, also on both proxy and server side.
7741         Re-write for more efficiency / readability.
7742
7743 2004-03-29  Michael Meeks  <michael@ximian.com>
7744
7745         * dbus/dbus-message.c
7746         (dbus_message_new_error_printf): impl.
7747
7748         * dbus/dbus-connection.c
7749         (dbus_connection_unregister_object_path): fix warning.
7750
7751         * configure.in: fix no-mono-installed situation.
7752
7753 2004-03-27  Havoc Pennington  <hp@redhat.com>
7754
7755         Patch from Timo Teräs:
7756         
7757         * tools/dbus-send.c (main): if --print-reply, assume type is
7758         method call; support boolean type args
7759         
7760         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7761         bunch of memleak and logic bugs
7762         
7763 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7764
7765         * mono/Arguments.cs:
7766         * mono/Introspector.cs:
7767         * mono/Handler.cs:
7768         * mono/InterfaceProxy.cs:
7769         * mono/Message.cs
7770         * mono/ProxyBuilder.cs:
7771         * mono/Service.cs:
7772         Added InterfaceProxy class to avoid building proxies for every
7773         object.
7774
7775         * dbus-message.h:
7776         * dbus-message.c (dbus_message_append_args_valist)
7777         (dbus_message_iter_get_object_path)
7778         (dbus_message_iter_get_object_path_array)
7779         (dbus_message_iter_append_object_path)
7780         (dbus_message_iter_append_object_path_array):
7781         Added object_path iter functions to handle OBJECT_PATH arguments
7782         
7783 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7784
7785         First checkin of mono bindings.
7786         * configure.in:
7787         * Makefile.am:
7788         Build stuff for the bindings
7789         * dbus-sharp.pc.in: Added for pkgconfig
7790         
7791 2004-03-21  Havoc Pennington  <hp@redhat.com>
7792
7793         * test/test-service.c (main): remove debug spew
7794
7795 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7796
7797         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7798         arrays
7799
7800         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7801         (dbus_message_iter_init_array_iterator)
7802         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7803         indicate whether the iterator is empty
7804
7805         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7806         warnings
7807
7808 2004-03-19  Havoc Pennington  <hp@redhat.com>
7809
7810         * NEWS: 0.21 updates
7811
7812         * configure.in: 0.21
7813
7814         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7815         
7816         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7817         you don't need pyrex to make dist
7818
7819         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7820         sources; run moc
7821         
7822 2004-03-18  Richard Hult  <richard@imendio.com>
7823
7824         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7825         (dbus_message_set_auto_activation): Add doxygen docs.
7826
7827 2004-03-16  Richard Hult  <richard@imendio.com>
7828
7829         * bus/activation.c: (bus_activation_service_created),
7830         (bus_activation_send_pending_auto_activation_messages),
7831         (bus_activation_activate_service):
7832         * bus/activation.h:
7833         * bus/dispatch.c: (bus_dispatch),
7834         (check_nonexistent_service_auto_activation),
7835         (check_service_auto_activated),
7836         (check_segfault_service_auto_activation),
7837         (check_existent_service_auto_activation), (bus_dispatch_test):
7838         * bus/driver.c: (bus_driver_handle_activate_service):
7839         * bus/services.c: (bus_registry_acquire_service):
7840         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7841         (dbus_message_get_auto_activation):
7842         * dbus/dbus-message.h:
7843         * dbus/dbus-protocol.h: Implement auto-activation.
7844         
7845         * doc/dbus-specification.xml: Add auto-activation to the spec.
7846
7847 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7848
7849         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7850         fix a bug with CUSTOM types.
7851
7852         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7853         a unit test for this bug (used to fail).
7854
7855 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7856
7857         * bus/activation.c:
7858         (babysitter_watch_callback): notify all pending activations waiting for
7859           the same exec that the activation failed.
7860         (bus_activation_activate_service): shortcut the activation if we 
7861           already waiting for the same executable to start up.
7862
7863 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7864
7865         * bus/activation.c: 
7866         - Added service file reloading. 
7867           Each service files directory is kept in an hash table in 
7868           BusActivation and each BusActivationEntry knows what .service-file it
7869           was read from. So when you try to activate a service the bus will 
7870           check if it's been updated, removed or if new .service-files has 
7871           been installed.
7872         - Test code at the bottom for the service file reloading.
7873         * bus/test-main.c: (main):
7874         * bus/test.h:
7875         - added service reloading test.
7876         * dbus/dbus-sysdeps.c: 
7877         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7878
7879 2004-03-08  Michael Meeks  <michael@ximian.com>
7880
7881         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7882         bail immediately if disconnected, to avoid busy loop.
7883
7884         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7885         cleanup cut/paste/inefficiency.
7886
7887 2004-03-01  David Zeuthen  <david@fubar.dk>
7888
7889         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7890         bug where args were used twice. This bug resulted in a segfault
7891         on a Debian/PPC system when starting the messagebus daemon. Include
7892         dbus-sysdeps.h for DBUS_VA_COPY
7893
7894         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7895
7896         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7897         appropriate va_copy implementation. From GLib
7898         
7899 2004-02-24  Joe Shaw  <joe@ximian.com>
7900
7901         * bus/services.c (bus_registry_acquire_service): We need to pass
7902         in the service name to dbus_set_error() to prevent a crash.
7903
7904 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7905
7906         * AUTHORS: Reveal my True identity.
7907
7908 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7909
7910         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7911         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7912
7913 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7914
7915         * doc/TODO: Added not about better error check of configuration files.
7916
7917 2003-12-02  Richard Hult  <richard@imendio.com>
7918
7919         * Update AFL version to 2.0 throughout the source files to reflect
7920         the update that was done a while ago.
7921
7922 2003-12-02  Richard Hult  <richard@imendio.com>
7923
7924         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7925         wrote_dict_key to FALSE on the iter that the dict is appended to,
7926         just like when appending other types. Fixes a bug where a dict
7927         couldn't be put inside a dict.
7928         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7929         (message_iter_test, _dbus_message_test): Add test case for dict
7930         inside dict.
7931
7932 2003-12-01  David Zeuthen  <david@fubar.dk>
7933
7934         * python/dbus.py: Add the actual message when calling the reciever
7935         of a signal such that parameters can be inspected. Add the method
7936         remove_signal_receiver
7937         
7938 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7939
7940         * bus/*.[ch]:
7941         * dbus/*.[ch]:
7942         * glib/*.[ch]: Made ref functions return the pointer
7943
7944 2003-11-25  Zack Rusin  <zack@kde.org>
7945
7946         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7947
7948         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7949         wrappers,
7950
7951         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7952         the Integrator and to better fit with the server,
7953
7954 2003-11-24  Zack Rusin  <zack@kde.org>
7955
7956         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7957         the integrator handles it now
7958
7959         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7960         since QTimer wasn't really meant to be used the way DBusTimeout is
7961
7962 2003-11-24  Zack Rusin  <zack@kde.org>
7963
7964         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7965         Integrator class which integrates D-BUS with the Qt event loop,
7966
7967         * qt/connection.h, qt/connection.cpp: Move all the code which
7968         was dealing with D-BUS integration to the Integrator class,
7969         and start using Integrator,
7970
7971 2003-11-23  Zack Rusin  <zack@kde.org>
7972
7973         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7974         wrapper
7975
7976         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7977         switching namespaces to DBusQt, reworking the class,
7978
7979         * Makefile.cvs: switching dependencies so that it matches KDE 
7980         schematics,
7981         
7982         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7983         the library
7984
7985 2003-11-19  Havoc Pennington  <hp@redhat.com>
7986
7987         * NEWS: update
7988
7989         * configure.in: bump version to 0.20
7990
7991         * configure.in (have_qt): add yet another place to look for qt
7992         (someone hand trolltech a .pc file...)
7993
7994 2003-11-01  Havoc Pennington  <hp@redhat.com>
7995
7996         * doc/dbus-specification.xml: add state machine docs on the auth
7997         protocol; just a first draft, I'm sure it's wrong.      
7998
7999 2003-10-28  David Zeuthen  <david@fubar.dk>
8000
8001         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8002         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8003         
8004 2003-10-28  Havoc Pennington  <hp@redhat.com>
8005
8006         * dbus/dbus-message.c (get_next_field): delete unused function
8007
8008 2003-10-28  Havoc Pennington  <hp@redhat.com>
8009
8010         * bus/expirelist.c (do_expiration_with_current_time): detect
8011         failure of the expire_func due to OOM
8012
8013         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8014
8015         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8016         NoReply error that's now created by the bus when the service exits
8017
8018 2003-10-28  Havoc Pennington  <hp@redhat.com>
8019
8020         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8021         tests for set_path, set_interface, set_member, etc.
8022
8023         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8024
8025         * dbus/dbus-message.c (set_string_field): always just delete and
8026         re-append the field; accept NULL for deletion
8027         (re_align_fields_recurse): reimplement
8028         
8029 2003-10-26  Havoc Pennington  <hp@redhat.com>
8030
8031         * dbus/dbus-connection.c: fix docs to properly describe the
8032         disconnected message
8033         (_dbus_connection_notify_disconnected): remove this function; 
8034         we can't synchronously add the disconnected message, we have to 
8035         do it after we've queued any remaining real messages
8036         (_dbus_connection_get_dispatch_status_unlocked): queue the
8037         disconnect message only if the transport has finished queueing all
8038         its real messages and is disconnected.
8039         (dbus_connection_disconnect): update the dispatch status here
8040
8041 2003-10-22  Havoc Pennington  <hp@redhat.com>
8042
8043         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8044
8045         * bus/connection.c (bus_transaction_send_from_driver): set the
8046         destination to the connection's base service
8047
8048 2003-10-20  Havoc Pennington  <hp@redhat.com>
8049
8050         hmm, make check is currently not passing.
8051         
8052         * doc/dbus-specification.xml: add requirement that custom type
8053         names follow the same rules as interface names.
8054
8055         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8056         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8057         'map'
8058
8059         * doc/dbus-specification.xml: update type codes to match
8060         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8061         CUSTOM. Add type OBJECT_PATH to the spec.
8062
8063 2003-10-17  Havoc Pennington  <hp@redhat.com>
8064
8065         * bus/driver.c (create_unique_client_name): use "." as separator
8066         in base service names instead of '-'
8067
8068         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8069         byte at the end of the string
8070
8071         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8072         optimization macros since string validation seems to be a slow
8073         point.
8074         
8075         * doc/dbus-specification.xml: restrict valid
8076         service/interface/member/error names. Add test suite code for the
8077         name validation.
8078
8079         * dbus/dbus-string.c: limit service/interface/member/error names 
8080         to [0-9][A-Z][a-z]_
8081
8082         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8083         format arg to verbose spew
8084
8085         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8086         memory, return instead of g_error
8087
8088         * test/test-service.c (path_message_func): support emitting a
8089         signal on request
8090
8091         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8092         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8093         assuming the activation bus was the session bus so that services
8094         started manually will still register.
8095         (init_connections_unlocked): fix so that in OOM situation we get
8096         the same semantics when retrying the function
8097         
8098         * test/test-service.c (main): change to use path registration, to
8099         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8100         than DBUS_BUS_SESSION
8101
8102 2003-10-16  Havoc Pennington  <hp@redhat.com>
8103
8104         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8105
8106         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8107         coverage of the tests
8108         (coverage-report.txt): don't move the .da and .bbg files around
8109
8110 2003-10-16  Havoc Pennington  <hp@redhat.com>
8111
8112         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8113         to put there
8114
8115 2003-10-16  Havoc Pennington  <hp@redhat.com>
8116
8117         * bus/connection.c (bus_pending_reply_expired): either cancel or
8118         execute, not both
8119         (bus_connections_check_reply): use unlink, not remove_link, as we
8120         don't want to free the link; fixes double free mess
8121
8122         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8123         where no reply was received
8124
8125         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8126         fix a refcount leak
8127
8128         * bus/signals.c (match_rule_matches): add special cases for the
8129         bus driver, so you can match on sender/destination for it.
8130
8131         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8132         DBUS_PRINT_BACKTRACE is set
8133
8134         * dbus/dbus-internals.c: add pid to assertion failure messages
8135
8136         * dbus/dbus-connection.c: add message type code to the debug spew
8137
8138         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8139         sender=foo not service=foo
8140
8141         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8142         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8143         DBUS_ACTIVATION_ADDRESS instead
8144
8145         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8146         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8147
8148         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8149         context struct
8150
8151         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8152         (dbus_message_iter_get_object_path_array): new function (half
8153         finished, disabled for the moment)
8154         
8155         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8156         DBUS_MESSAGE_TYPE_ERROR
8157
8158         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8159         avoid redirecting stderr to /dev/null
8160         (babysit): close stdin if not doing the "exit_with_session" thing
8161
8162         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8163         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8164         stdout/stdin, so things don't get confused
8165         
8166         * bus/system.conf.in: fix to allow replies, I modified .conf
8167         instead of .conf.in again.
8168
8169 2003-10-14  David Zeuthen  <david@fubar.dk>
8170
8171         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8172         argtype to arg_type when raising unknown arg type exception.
8173         Changed type list to reflect the changes in dbus-protocol.h so 
8174         the bindings actually work.
8175
8176 2003-10-14  Havoc Pennington  <hp@redhat.com>
8177
8178         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8179         to have a bug keeping it from outputting the .da files sometimes
8180         (string_get_string): don't append garbage nul bytes to the string.
8181
8182 2003-10-15  Seth Nickell  <seth@gnome.org>
8183
8184         * python/Makefile.am:
8185
8186         Include dbus_h_wrapper.h in the dist tarball.
8187
8188 2003-10-14  Havoc Pennington  <hp@redhat.com>
8189
8190         * bus/bus.c (bus_context_check_security_policy): revamp this to
8191         work more sanely with new policy-based requested reply setup
8192
8193         * bus/connection.c (bus_transaction_send_from_driver): set bus
8194         driver messages as no reply
8195
8196         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8197         requested_reply attribute on allow/deny rules
8198
8199         * bus/system.conf: add <allow requested_reply="true"/>
8200
8201         * bus/driver.c (bus_driver_handle_message): fix check for replies
8202         sent to the bus driver, which was backward. How did this ever work
8203         at all though? I think I'm missing something.
8204
8205         * dbus/dbus-message.c (decode_header_data): require error and
8206         method return messages to have a reply serial field to be valid
8207         (_dbus_message_loader_queue_messages): break up this function;
8208         validate that reply serial and plain serial are nonzero; 
8209         clean up the OOM/error handling.
8210         (get_uint_field): don't return -1 from this
8211         (dbus_message_create_header): fix signed/unsigned bug
8212
8213         * bus/connection.c (bus_connections_expect_reply): save serial of
8214         the incoming message, not reply serial
8215
8216 2003-10-14  Havoc Pennington  <hp@redhat.com>
8217
8218         * bus/connection.c: implement pending reply tracking using
8219         BusExpireList
8220
8221         * bus/bus.c (bus_context_check_security_policy): verify that a
8222         reply is pending in order to allow a reply to be sent. Deny 
8223         messages of unknown type.
8224
8225         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8226
8227         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8228         (bus_context_get_reply_timeout): new
8229
8230 2003-10-13  Seth Nickell  <seth@gnome.org>
8231
8232         * python/Makefile.am:
8233
8234         Pass "make distcheck": remove a couple files from DIST_FILES
8235         that weren't included in the final version.
8236
8237 2003-10-12  Havoc Pennington  <hp@pobox.com>
8238
8239         Added test code that 1) starts an actual bus daemon and 2) uses
8240         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8241         more testing possible, but this is the basic framework.
8242         
8243         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8244         empty proxy lists from the proxy list hash
8245
8246         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8247         couple of return_if_fail checks
8248
8249         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8250         to allocate, so everything is cleared to NULL as it should be.
8251
8252         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8253         source as data to dbus_connection_set_timeout_functions() as the 
8254         timeout functions expected
8255
8256         * test/glib/run-test.sh: add a little script to start up a message
8257         bus and run tests using it
8258
8259         * tools/dbus-launch.1: updates
8260
8261         * tools/dbus-launch.c (main): add --config-file option
8262
8263         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8264         that could never be reached.
8265
8266         * dbus/dbus-message.c (dbus_message_new_method_return) 
8267         (dbus_message_new_error, dbus_message_new_signal): set the
8268         no-reply-expected flag on all these. Redundant, but may
8269         as well be consistent.
8270
8271 2003-10-11  Havoc Pennington  <hp@pobox.com>
8272
8273         * test/decode-gcov.c (function_solve_graph): make broken block
8274         graph a nonfatal error since it seems to be broken. Need to debug
8275         this.
8276
8277         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8278         can't just check type > INVALID < LAST anymore
8279
8280         * dbus/dbus-message.c (dbus_message_get_signature): new function
8281         (dbus_message_has_signature): new function
8282         (struct DBusMessage): add signature field (right now it isn't sent
8283         over the wire, just generated on the fly)
8284         (dbus_message_copy): copy the signature, and init strings to
8285         proper length to avoid some reallocs
8286         (dbus_message_iter_init_array_iterator): return void, since it
8287         can't fail
8288         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8289         (_dbus_message_loader_queue_messages): add silly temporary hack to
8290         fill in message->signature on load
8291
8292         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8293         characters, so they are relatively human-readable.
8294
8295 2003-10-11  Havoc Pennington  <hp@pobox.com>
8296
8297         * dbus/dbus-message.c (_dbus_message_test): add more test
8298         coverage, but #if 0 for now since they uncover a bug 
8299         not fixed yet; I think in re_align_field_recurse()
8300         (re_align_field_recurse): add FIXME about broken assertion
8301
8302         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8303
8304         * bus/connection.c: share a couple code bits with expirelist.c
8305
8306         * bus/expirelist.h, bus/expirelist.c: implement a generic
8307         expire-items-after-N-seconds facility, was going to share between
8308         expiring connections and replies, decided not to use for expiring
8309         connections for now.
8310
8311         * COPYING: include AFL 2.0 (still need to change all the file headers)
8312
8313 2003-10-09  Havoc Pennington  <hp@redhat.com>
8314
8315         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8316         gcc 3.3. Not that we do anything about it yet.
8317
8318         * bus/signals.c (bus_match_rule_parse): impose max length on the
8319         match rule text
8320
8321         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8322
8323 2003-10-09  Havoc Pennington  <hp@redhat.com>
8324
8325         Make matching rules theoretically work (add parser).
8326         
8327         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8328         the case where destination is explicitly specified as bus driver
8329         and someone else is eavesdropping.
8330         
8331         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8332         definition of eavesdropping and assertion
8333
8334         * tools/dbus-send.c (main): use dbus_message_type_from_string
8335
8336         * bus/signals.c (bus_match_rule_parse): implement
8337
8338         * dbus/dbus-message.c (dbus_message_type_from_string): new
8339
8340         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8341
8342 2003-10-02  Havoc Pennington  <hp@pobox.com>
8343
8344         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8345         dbus_gproxy_oneway_call
8346
8347         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8348         (dbus_server_setup_with_g_main): fix to allow calling them more
8349         than once on the same args
8350         (dbus_bus_get_with_g_main): new function
8351
8352 2003-10-02  Havoc Pennington  <hp@redhat.com>
8353
8354         * doc/dbus-tutorial.xml: write some stuff
8355
8356 2003-09-29  Havoc Pennington  <hp@pobox.com>
8357
8358         * configure.in: split checks for Doxygen from XML docs, check for
8359         xmlto
8360
8361         * doc/Makefile.am: XML-ify all the docs, and add a blank
8362         dbus-tutorial.xml
8363
8364 2003-09-29  Havoc Pennington  <hp@pobox.com>
8365
8366         * Merge dbus-object-names branch. To see the entire patch 
8367         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8368         it's huuuuge though.
8369         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8370         
8371 2003-09-28  Havoc Pennington  <hp@pobox.com>
8372
8373         * HACKING: update to reflect new server
8374
8375 2003-09-26  Seth Nickell  <seth@gnome.org>
8376
8377         * python/dbus.py:
8378         * python/examples/example-signals.py:
8379
8380         Start implementing some notions of signals. The API
8381         is really terrible, but they sort of work (with the
8382         exception of being able to filter by service, and to
8383         transmit signals *as* a particular service). Need to
8384         figure out how to make messages come from the service
8385         we registered :-(
8386         
8387         * python/dbus_bindings.pyx.in:
8388
8389         Removed duplicate message_handler callbacks.
8390         
8391 2003-09-25  Havoc Pennington  <hp@redhat.com>
8392
8393         * bus/session.conf.in: fix my mess
8394
8395 2003-09-25  Havoc Pennington  <hp@pobox.com>
8396
8397         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8398
8399 2003-09-25  Seth Nickell  <seth@gnome.org>
8400
8401         * python/examples/example-service.py:
8402
8403         Johan notices complete wrong code in example-service, but
8404         completely wrong in a way that works exactly the same (!).
8405         Johan is confused, how could this possibly work? Example
8406         code fails to serve purpose of making things clear.
8407         Seth fixes.
8408
8409 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8410
8411         * doc/dbus-specification.sgml: don't require header fields
8412         to be 4-byte aligned and specify that fields should be
8413         distinguished from padding by the fact that zero is not
8414         a valid field name.
8415         
8416         * doc/TODO: remove re-alignment item and add item to doc
8417         the OBJECT_PATH type.
8418         
8419         * dbus/dbus-message.c:
8420         (HeaderField): rename the original member to value_offset
8421         and introduce a name_offset member to keep track of where
8422         the field actually begins.
8423         (adjust_field_offsets): remove.
8424         (append_int_field), (append_uint_field),
8425         (append_string_field): don't align the start of the header
8426         field to a 4-byte boundary.
8427         (get_next_field): impl finding the next marhsalled field
8428         after a given field.
8429         (re_align_field_recurse): impl re-aligning a number of
8430         already marshalled fields.
8431         (delete_field): impl deleting a field of any type and
8432         re-aligning any following fields.
8433         (delete_int_or_uint_field), (delete_string_field): remove.
8434         (set_int_field), (set_uint_field): no need to re-check
8435         that we have the correct type for the field.
8436         (set_string_field): ditto and impl re-aligning any
8437         following fields.
8438         (decode_header_data): update to take into account that
8439         the fields aren't 4-byte aligned any more and the new
8440         way to distinguish padding from header fields. Also,
8441         don't exit when there is too much header padding.
8442         (process_test_subdir): print the directory.
8443         (_dbus_message_test): add test to make sure a following
8444         field is re-aligned correctly after field deletion.
8445         
8446         * dbus/dbus-string.[ch]:
8447         (_dbus_string_insert_bytes): rename from insert_byte and
8448         allow the insert of multiple bytes.
8449         (_dbus_string_test): test inserting multiple bytes.
8450
8451         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8452         warning note to docs about having to re-align any
8453         marshalled values following the string.
8454         
8455         * dbus/dbus-message-builder.c:
8456         (append_string_field), (_dbus_message_data_load):
8457         don't align the header field.
8458         
8459         * dbus/dbus-auth.c: (process_test_subdir): print the
8460         directory.
8461         
8462         * test/break-loader.c: (randomly_add_one_byte): upd. for
8463         insert_byte change.
8464         
8465         * test/data/invalid-messages/bad-header-field-alignment.message:
8466         new test case.
8467         
8468         * test/data/valid-messages/unknown-header-field.message: shove
8469         a dict in the unknown field.
8470
8471 2003-09-25  Seth Nickell  <seth@gnome.org>
8472
8473         * python/dbus.py:
8474         * python/dbus_bindings.pyx.in:
8475
8476         Handle return values.
8477         
8478         * python/examples/example-client.py:
8479         * python/examples/example-service.py:
8480
8481         Pass back return values from the service to the client.
8482         
8483 2003-09-24  Seth Nickell  <seth@gnome.org>
8484
8485         * python/dbus.py:
8486
8487         Connect Object methods (when you are sharing an object) up... pass
8488         in a list of methods to be shared. Sharing all the methods just
8489         worked out too weird. You can now create nice Services over the
8490         DBus in Python. :-)
8491         
8492         * python/dbus_bindings.pyx.in:
8493
8494         Keep references to user_data tuples passed into C functions so 
8495         Python doesn't garbage collect on us.
8496
8497         Implement MethodReturn and Error subclasses of Message for creating
8498         DBusMessage's of those types.
8499         
8500         * python/examples/example-client.py:
8501         * python/examples/example-service.py:
8502
8503         Simple example code showing both how create DBus services and objects,
8504         and how to use them.
8505
8506 2003-09-23  Havoc Pennington  <hp@pobox.com>
8507
8508         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8509
8510 2003-09-23  Havoc Pennington  <hp@redhat.com>
8511
8512         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8513         (dbus_gproxy_disconnect_signal): implement
8514         (dbus_gproxy_manager_remove_signal_match): implement
8515         (dbus_gproxy_manager_add_signal_match): implement
8516         (dbus_gproxy_oneway_call): implement
8517
8518 2003-09-23  Havoc Pennington  <hp@pobox.com>
8519
8520         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8521         subclass. This means dropping the transparent thread safety of the
8522         proxy; you now need a separate proxy per-thread, or your own
8523         locking on the proxy. Probably right anyway.
8524         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8525
8526 2003-09-22  Havoc Pennington  <hp@redhat.com>
8527
8528         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8529
8530 2003-09-21  Seth Nickell  <seth@gnome.org>
8531
8532         First checkin of the Python bindings.
8533         
8534         * python/.cvsignore:
8535         * python/Makefile.am:
8536         * python/dbus_bindings.pyx.in:
8537         * python/dbus_h_wrapper.h:
8538
8539         Pieces for Pyrex to operate on, building a dbus_bindings.so
8540         python module for low-level access to the DBus APIs.
8541         
8542         * python/dbus.py:
8543
8544         High-level Python module for accessing DBus objects.
8545
8546         * configure.in:
8547         * Makefile.am:
8548
8549         Build stuff for the python bindings.
8550
8551         * acinclude.m4:
8552
8553         Extra macro needed for finding the Python C header files.
8554
8555 2003-09-21  Havoc Pennington  <hp@pobox.com>
8556
8557         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8558         implementing the proxy manager, didn't get very far.
8559
8560         * dbus/dbus-bus.c (dbus_bus_add_match): new
8561         (dbus_bus_remove_match): new
8562
8563         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8564         path_name argument; adjust the other not-yet-implemented 
8565         gproxy constructors to be what I think they should be.
8566
8567 2003-09-21  Havoc Pennington  <hp@pobox.com>
8568
8569         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8570         by default for message bus connections.
8571
8572         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8573         exit_on_disconnect flag is set and we process the disconnected
8574         signal.
8575         (dbus_connection_set_exit_on_disconnect): new function
8576
8577 2003-09-21  Havoc Pennington  <hp@pobox.com>
8578
8579         Get matching rules mostly working in the bus; only actually
8580         parsing the rule text remains. However, the client side of
8581         "signal connections" hasn't been started, this patch is only the
8582         bus side.
8583         
8584         * dbus/dispatch.c: fix for the matching rules changes
8585         
8586         * bus/driver.c (bus_driver_handle_remove_match)
8587         (bus_driver_handle_add_match): send an ack reply from these
8588         method calls
8589
8590         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8591         arguments, reported by Seth Nickell
8592
8593         * bus/config-parser.c (append_rule_from_element): support
8594         eavesdrop=true|false attribute on policies so match rules 
8595         can be prevented from snooping on the system bus.
8596
8597         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8598         and "destination" in attribute names; fix some docs bugs; 
8599         add eavesdrop=true|false attribute
8600
8601         * bus/driver.c (bus_driver_handle_add_match)
8602         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8603         messages
8604
8605         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8606         rid of broadcast service concept, signals are just always broadcast
8607
8608         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8609         mostly implement matching rules stuff (currently only exposed as signal
8610         connections)
8611
8612 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8613
8614         * doc/dbus-specification.sgml: Change the header field name
8615         to be an enum and update the rest of the spec to reference
8616         the fields using the conventinal name.
8617
8618         * dbus/dbus-protocol.h: update to reflect the spec.
8619
8620         * doc/TODO: add item to remove the 4 byte alignment requirement.
8621         
8622         * dbus/dbus-message.c: Remove the code to generalise the
8623         header/body length and serial number header fields as named
8624         header fields so we can reference field names using the 
8625         protocol values.
8626         (append_int_field), (append_uint_field), (append_string_field):
8627         Append the field name as a byte rather than four chars.
8628         (delete_int_or_uint_field), (delete_string_field): reflect the
8629         fact that the field name and typecode now occupy 4 bytes instead
8630         of 8.
8631         (decode_string_field), (decode_header_data): update to reflect
8632         protocol changes and move the field specific encoding from
8633         decode_string_field() back into decode_header_data().
8634         
8635         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8636         Add utility to aid debugging.
8637         
8638         * dbus/dbus-message-builder.c:
8639         (append_string_field), (_dbus_message_data_load): Update to
8640         reflect protocol changes; Change the FIELD_NAME directive
8641         to HEADER_FIELD and allow it to take the field's conventional
8642         name rather than the actual value.
8643         
8644         * test/data/*/*.message: Update to use HEADER_FIELD instead
8645         of FIELD_NAME; Always align the header on an 8 byte boundary
8646         *before* updating the header length.
8647
8648 2003-09-15  Havoc Pennington  <hp@pobox.com>
8649
8650         * dbus/dbus-pending-call.c: add the get/set object data
8651         boilerplate as for DBusConnection, etc. Use generic object data
8652         for the notify callback.
8653
8654         * glib/dbus-gparser.c (parse_node): parse child nodes
8655
8656         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8657         
8658         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8659         contain functions shared between the convenience lib and the
8660         installed lib
8661
8662         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8663         -export-symbols-regex to the GLib library
8664
8665         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8666         fix the locking in here, and add a default handler for
8667         Introspect() that just returns sub-nodes.
8668
8669 2003-09-14  Havoc Pennington  <hp@pobox.com>
8670
8671         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8672         rather than gfoo consistent
8673
8674         * glib/dbus-gproxy.h: delete for now, move contents to
8675         dbus-glib.h, because the include files don't work right since we
8676         aren't in the dbus/ subdir.
8677         
8678         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8679         (dbus_gproxy_end_call): finish
8680         (dbus_gproxy_begin_call): finish
8681
8682         * glib/dbus-gmain.c (dbus_set_g_error): new
8683
8684         * glib/dbus-gobject.c (handle_introspect): include information
8685         about child nodes in the introspection
8686
8687         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8688         function to help in implementation of introspection
8689
8690         * dbus/dbus-object-tree.c
8691         (_dbus_object_tree_list_registered_and_unlock): new function
8692
8693 2003-09-12  Havoc Pennington  <hp@pobox.com>
8694
8695         * glib/dbus-gidl.h: add common base class for all the foo_info
8696         types
8697
8698         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8699         similar to kdcop
8700
8701         * test/Makefile.am: try test srcdir -ef . in addition to test
8702         srcdir = ., one of them should work (yeah lame)
8703         
8704         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8705         library
8706         
8707         * glib/dbus-gparser.h: make description_load routines return
8708         NodeInfo* not Parser*
8709
8710         * Makefile.am (SUBDIRS): build test dir after all library dirs
8711
8712         * configure.in: add GTK+ detection
8713
8714 2003-09-07  Havoc Pennington  <hp@pobox.com>
8715
8716         * Make Doxygen contented.
8717
8718 2003-09-07  Havoc Pennington  <hp@pobox.com>
8719
8720         * doc/dbus-specification.sgml: more updates
8721
8722 2003-09-06  Havoc Pennington  <hp@pobox.com>
8723
8724         * doc/dbus-specification.sgml: partial updates
8725
8726         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8727         zillionth time; hopefully I edited the right file this time.
8728
8729         * bus/config-parser.c (append_rule_from_element): support
8730         send_type, send_path, receive_type, receive_path
8731
8732         * bus/policy.c: add message type and path to the list of things
8733         that can be "firewalled"
8734
8735 2003-09-06  Havoc Pennington  <hp@pobox.com>
8736
8737         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8738         (dbus_connection_register_object_path): make this not handle
8739         messages to paths below the given path
8740
8741 2003-09-03  Havoc Pennington  <hp@pobox.com>
8742
8743         * test/glib/Makefile.am: add this with random glib-linked test
8744         programs
8745
8746         * glib/Makefile.am: remove the random test programs from here,
8747         leave only the unit tests
8748
8749         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8750         uscore/javacaps conversion, and fix     
8751         (get_object_property, set_object_property): change to .NET
8752         convention for mapping props to methods, set_FooBar/get_FooBar, 
8753         since one language has such a convention we may as well copy it. 
8754         Plus real methods in either getFooBar or get_foo_bar style won't 
8755         collide with this convention.
8756
8757 2003-09-01  Havoc Pennington  <hp@pobox.com>
8758
8759         * glib/dbus-gparser.c: implement
8760
8761         * glib/dbus-gobject.c: start implementing skeletons support
8762
8763         * configure.in: when disabling checks/assert, also define
8764         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8765
8766 2003-09-01  Havoc Pennington  <hp@pobox.com>
8767
8768         * glib/Makefile.am: rearrange a bunch of files and get "make
8769         check" framework set up
8770
8771 2003-08-31  Havoc Pennington  <hp@pobox.com>
8772
8773         * fix build with --disable-tests
8774
8775 2003-08-30  Havoc Pennington  <hp@pobox.com>
8776
8777         * dbus/dbus-connection.c: purge DBusMessageHandler
8778
8779         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8780         use callbacks everywhere
8781
8782 2003-08-30  Havoc Pennington  <hp@pobox.com>
8783
8784         * test/data/valid-config-files/system.d/test.conf: change to 
8785         root for the user so warnings don't get printed
8786
8787         * dbus/dbus-message.c: add dbus_message_get_path,
8788         dbus_message_set_path
8789         
8790         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8791         dispatching to a path
8792
8793         * dbus/dbus-string.c (_dbus_string_validate_path): add
8794
8795         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8796         (_dbus_marshal_object_path): implement
8797
8798         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8799         to contain the path to the target object
8800         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8801         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8802
8803 2003-08-30  Havoc Pennington  <hp@pobox.com>
8804
8805         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8806
8807 2003-08-29  Havoc Pennington  <hp@pobox.com>
8808
8809         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8810         registered
8811         (struct DBusObjectSubtree): shrink this
8812         a lot, since we may have a lot of them
8813         (_dbus_object_tree_free_all_unlocked): implement
8814         (_dbus_object_tree_dispatch_and_unlock): implement
8815
8816 2003-08-29  Havoc Pennington  <hp@pobox.com>
8817
8818         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8819
8820 2003-08-28  Havoc Pennington  <hp@pobox.com>
8821
8822         purge DBusObjectID
8823         
8824         * dbus/dbus-connection.c: port to no ObjectID, create a
8825         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8826
8827         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8828         everything except UnregisterFunction and MessageFunction
8829         
8830         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8831         add DBUS_TYPE_OBJECT_PATH
8832         
8833         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8834         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8835         path-based object IDs
8836
8837 2003-08-25  Havoc Pennington  <hp@pobox.com>
8838
8839         Just noticed that dbus_message_test is hosed, I wonder when I
8840         broke that. I thought make check was passing earlier...
8841         
8842         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8843         container tree, will replace most of dbus-object-registry
8844
8845         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8846         screwup
8847
8848 2003-08-19  Havoc Pennington  <hp@pobox.com>
8849
8850         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8851         (dbus_message_is_error): fix this function
8852
8853         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8854         match
8855
8856         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8857         reflect clarified man page
8858         (bus_client_policy_check_can_send): ditto
8859         
8860         * bus/session.conf.in: fixup
8861
8862         * bus/system.conf.in: fixup
8863
8864 2003-08-18  Havoc Pennington  <hp@redhat.com>
8865
8866         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8867
8868         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8869         dumb bug created earlier (wrong order of args to
8870         decode_header_data())
8871         
8872         * tools/dbus-send.c: port
8873
8874         * tools/dbus-print-message.c (print_message): port
8875
8876         * test/data/*messages: port all messages over
8877         
8878         * dbus/dbus-message-builder.c: support including 
8879         message type
8880         
8881         * bus/driver.c: port over
8882         
8883         * bus/dispatch.c: port over to new stuff
8884
8885         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8886         rename disconnect signal to "Disconnected"
8887
8888 2003-08-17  Havoc Pennington  <hp@pobox.com>
8889
8890         This doesn't compile yet, but syncing up so I can hack on it from
8891         work. What are branches for if not broken code? ;-)
8892         
8893         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8894         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8895         DBUS_HEADER_FIELD_ERROR_NAME
8896         
8897         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8898         for the interface+member pairs
8899         (string_hash): change to use g_str_hash algorithm
8900         (find_direct_function, find_string_function): refactor these to
8901         share most code.
8902         
8903         * dbus/dbus-message.c: port all of this over to support 
8904         interface/member fields instead of name field
8905
8906         * dbus/dbus-object-registry.c: port over
8907         
8908         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8909         from _dbus_string_validate_name
8910
8911         * bus/dbus-daemon-1.1: change file format for the 
8912         <deny>/<allow> stuff to match new message naming scheme
8913
8914         * bus/policy.c: port over
8915
8916         * bus/config-parser.c: parse new format
8917         
8918 2003-08-16  Havoc Pennington  <hp@pobox.com>
8919
8920         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8921         broken assertion
8922
8923         * glib/dbus-gproxy.c: some hacking
8924
8925 2003-08-15  Havoc Pennington  <hp@redhat.com>
8926
8927         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8928
8929         * dbus/dbus-connection.c
8930         (dbus_connection_send_with_reply_and_block): factor out internals;
8931         change to convert any error replies to DBusError instead of 
8932         returning them as a message
8933
8934 2003-08-15  Havoc Pennington  <hp@pobox.com>
8935
8936         * dbus/dbus-connection.c, 
8937         dbus/dbus-pending-call.c: Finish the pending call stuff
8938
8939 2003-08-14  Havoc Pennington  <hp@redhat.com>
8940
8941         * dbus/dbus-pending-call.c: start on new object that will replace
8942         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8943         replies
8944
8945         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8946         with remote interfaces
8947
8948         * dbus/dbus-gidl.c: do the boring boilerplate in here
8949         
8950 2003-08-12  Havoc Pennington  <hp@pobox.com>
8951
8952         * bus/dispatch.c (bus_dispatch): make this return proper 
8953         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8954
8955         * dbus/dbus-errors.c (dbus_set_error): use
8956         _dbus_string_append_printf_valist
8957
8958         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8959         (_dbus_string_append_printf): new
8960
8961         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8962         UNKNOWN_METHOD
8963
8964         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8965         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8966         message is unhandled.
8967
8968 2003-08-11  Havoc Pennington  <hp@pobox.com>
8969
8970         * bus/test.c (client_disconnect_handler): change to return
8971         HANDLED (would have been REMOVE_MESSAGE)
8972
8973         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8974         HANDLED/NOT_YET_HANDLED instead of
8975         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8976         should be used.
8977
8978 2003-08-10  Havoc Pennington  <hp@pobox.com>
8979
8980         * tools/dbus-send.c (main): add --type argument, for now
8981         supporting only method_call and signal types.
8982
8983         * tools/dbus-print-message.c: print message type
8984
8985         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8986         init connection->objects
8987
8988         * doc/dbus-specification.sgml: fix sgml
8989
8990         * bus/*.c: port over to object-instance API changes
8991
8992         * test/test-service.c: ditto
8993         
8994         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8995         name, we will have to fix up the rest of the code to also handle
8996         this
8997         (dbus_message_new): generic message-creation call
8998         (set_string_field): allow appending name field
8999
9000 2003-08-06  Havoc Pennington  <hp@pobox.com>
9001
9002         * dbus/dbus-object-registry.c: implement signal connection 
9003         and dispatch
9004
9005         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9006
9007         * dbus/dbus-internals.c (_dbus_memdup): new function
9008
9009 2003-08-02  Havoc Pennington  <hp@pobox.com>
9010
9011         * dbus/dbus-message.c (dbus_message_get_no_reply)
9012         (dbus_message_set_no_reply): add these and remove
9013         set_is_error/get_is_error
9014
9015         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9016         remove the ERROR flag, since there's now an ERROR type
9017
9018 2003-08-01  Havoc Pennington  <hp@pobox.com>
9019
9020         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9021         implement
9022
9023         * dbus/dbus-message.c (dbus_message_get_type): new function
9024
9025         * doc/dbus-specification.sgml: add "type" byte to messages
9026
9027 2003-08-01  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9030         a message type enum to distinguish kinds of message
9031         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9032         that need not be replied to
9033
9034 2003-08-01  Havoc Pennington  <hp@pobox.com>
9035
9036         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9037         (unpack_8_octets): fix no-64-bit-int bug
9038
9039         * dbus/dbus-object-registry.c (validate_id): validate the 
9040         connection ID bits, not just the instance ID.
9041
9042         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9043         the connection-global 33 bits of the object ID
9044
9045         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9046         object ID in the new way
9047
9048         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9049         define server/client/instance bits.
9050
9051 2003-07-30  Havoc Pennington  <hp@pobox.com>
9052
9053         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9054         build
9055
9056 2003-07-13  Havoc Pennington  <hp@pobox.com>
9057
9058         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9059         fields to DBusObjectVTable and DBusObjectInfo
9060
9061 2003-07-12  Havoc Pennington  <hp@pobox.com>
9062
9063         * dbus/dbus-object-registry.c: implement unit test,
9064         fix bugs discovered in process
9065
9066         * dbus/dbus-connection.c: remove handler_table and
9067         register_handler(), add DBusObjectRegistry usage
9068
9069         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9070         (dbus_object_id_set_null): new functions
9071
9072 2003-07-08  Havoc Pennington  <hp@pobox.com>
9073
9074         * dbus/dbus-object.c: implement some of this
9075
9076         * dbus/dbus-object-registry.c
9077         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9078         param
9079         (_dbus_object_registry_new): handle OOM
9080
9081 2003-07-08  Havoc Pennington  <hp@pobox.com>
9082
9083         * dbus/dbus-object.h: sketch out an API for registering objects
9084         with a connection, that allows us to use as little as 24 bytes
9085         per object and lets application code represent an object in 
9086         any conceivable way.
9087
9088         * dbus/dbus-object-registry.c: implement the hard bits of the
9089         DBusConnection aspect of object API. Not yet wired up.
9090         
9091 2003-07-06  Havoc Pennington  <hp@pobox.com>
9092
9093         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9094         (_dbus_marshal_object_id): new
9095         (_dbus_demarshal_object_id): new
9096         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9097         consolidate identical switch cases. Don't conditionalize handling
9098         of DBUS_TYPE_UINT64, need to handle the type always.
9099         (_dbus_marshal_validate_arg): consolidate identical cases, and
9100         handle DBUS_TYPE_OBJECT_ID
9101
9102         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9103
9104         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9105
9106 2003-09-28  Havoc Pennington  <hp@pobox.com>
9107
9108         * real 0.13 release
9109
9110 2003-09-28  Havoc Pennington  <hp@pobox.com>
9111
9112         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9113         to work with Debian db2html
9114
9115 2003-09-28  Havoc Pennington  <hp@pobox.com>
9116
9117         * configure.in: 0.13
9118
9119         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9120         stylesheet-images for benefit of Debian
9121         
9122         Change back to using filesystem-linked sockets for the system
9123         bus, so only root can create the default system bus address.
9124         
9125         * bus/system.conf.in: change to use
9126         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9127
9128         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9129         from here.
9130
9131         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9132         here, and AC_DEFINE DBUS_SYSTEM_PATH
9133
9134 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9135
9136         * doc/TODO:
9137         * doc/busconfig.dtd:
9138         Add busconfig DTD.
9139         
9140 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9141
9142         * doc/dbus-specification.sgml:
9143         Add activation reply values.
9144         
9145 2003-08-05  Havoc Pennington  <hp@redhat.com>
9146
9147         * configure.in: 0.12
9148
9149 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9150
9151         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9152         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9153         (add_watch), (remove_watch), (create_source):
9154         Refcount fds, fixes some reentrancy issues.
9155         
9156 2003-07-30  Havoc Pennington  <hp@redhat.com>
9157
9158         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9159         bus address to be abstract if we have abstract sockets
9160
9161         * NEWS: update
9162
9163 2003-07-28  Havoc Pennington  <hp@redhat.com>
9164
9165         * bus/messagebus.in: fix to avoid processname/servicename 
9166         confusion, from Michael Kearey
9167         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9168         
9169 2003-07-23  Havoc Pennington  <hp@pobox.com>
9170
9171         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9172         fix from Andy Hanton to remove broken "+1"
9173
9174 2003-07-16  Havoc Pennington  <hp@pobox.com>
9175
9176         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9177         babysitter process, as suggested by Thomas Leonard, so 
9178         an "eval `dbus-launch --exit-with-session`" will actually 
9179         return
9180
9181 2003-07-16  Havoc Pennington  <hp@pobox.com>
9182
9183         * configure.in: print out EXPANDED_* variables in the summary at
9184         the end; clean up the code that computes EXPANDED_ variables and
9185         get the ones using exec_prefix right. Should make things work
9186         when you build without --prefix
9187
9188 2003-06-29  Havoc Pennington  <hp@pobox.com>
9189
9190         * mono/Test.cs (class Test): fire up a main loop and run it
9191
9192         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9193         done once, the app has to do it
9194
9195 2003-06-26  Havoc Pennington  <hp@pobox.com>
9196
9197         * mono/Connection.cs: set up connection with the glib main loop
9198
9199 2003-07-01  Havoc Pennington  <hp@redhat.com>
9200
9201         * doc/dbus-specification.sgml: clarify the format of a type code,
9202         change suggested by Jim Blandy
9203
9204 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9205
9206         * doc/Makefile.am:
9207         * tools/Makefile.am: Don't assume srcdir == builddir.
9208
9209         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9210         the allocated block.
9211         (_dbus_memory_test): New function.
9212         * dbus/dbus-test.h: Add _dbus_memory_test ().
9213         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9214
9215         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9216         of %c%c%c%c.
9217         (dbus_message_new): Remove obsolete @todo.
9218
9219         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9220         (_dbus_marshal_set_uint64): Fix comment.
9221
9222         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9223         hardcode FIELD_REPLY_SERIAL.
9224
9225         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9226         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9227
9228         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9229         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9230
9231 2003-06-24  Havoc Pennington  <hp@pobox.com>
9232
9233         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9234
9235 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9236
9237         * configure.in:
9238         * gcj/.cvsignore:
9239         * gcj/Hello.java:
9240         * gcj/Makefile.am:
9241         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9242         * gcj/org/.cvsignore:
9243         * gcj/org/Makefile.am:
9244         * gcj/org/freedesktop/.cvsignore:
9245         * gcj/org/freedesktop/Makefile.am:
9246         * gcj/org/freedesktop/dbus/.cvsignore:
9247         * gcj/org/freedesktop/dbus/Makefile.am:
9248         * gcj/org/freedesktop/dbus/Message.java: (Message),
9249         (Message.Message):
9250         * gcj/org/freedesktop/dbus/natMessage.cc:
9251         Fix the build system.
9252
9253 2003-06-22  Havoc Pennington  <hp@pobox.com>
9254
9255         * mono/Connection.cs: add more bindings
9256
9257         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9258         more than once.
9259
9260 2003-06-22  Havoc Pennington  <hp@pobox.com>
9261
9262         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9263         Start wrapping more stuff.
9264
9265 2003-06-22  Havoc Pennington  <hp@pobox.com>
9266
9267         * mono/Message.cs: implement Message.Wrap() that ensures we only
9268         have a single C# wrapper per DBusMessage, assuming it works which
9269         it probably doesn't.
9270
9271         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9272         (dbus_message_free_data_slot): new
9273         (dbus_message_set_data): new
9274         (dbus_message_get_data): new
9275
9276 2003-06-22  Havoc Pennington  <hp@pobox.com>
9277
9278         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9279         (_dbus_data_slot_allocator_alloc): rework these to keep a
9280         reference count on each slot and automatically manage a global
9281         slot ID variable passed in by address
9282
9283         * bus/bus.c: convert to new dataslot API
9284
9285         * dbus/dbus-bus.c: convert to new dataslot API
9286
9287         * dbus/dbus-connection.c: convert to new dataslot API
9288
9289         * dbus/dbus-server.c: convert to new dataslot API
9290
9291         * glib/dbus-gmain.c: ditto
9292
9293         * bus/test.c: ditto
9294
9295         * bus/connection.c: ditto
9296
9297 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9298
9299         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9300         after the gcj checks so that the correct configuration tags
9301         will be added to libtool.
9302
9303         * dbus-glib-1.pc.in: No need to specify any includes since
9304         dbus-1.pc.in has those.
9305
9306 2003-06-22  Havoc Pennington  <hp@pobox.com>
9307
9308         * mono/*, gcj/*, configure.in, Makefile.am:
9309         Check in makefiles and subdirs for mono and gcj bindings.
9310         Neither binding actually exists, just trying to get through
9311         all the build and other boring bits.
9312
9313 2003-06-21  Philip Blundell  <philb@gnu.org>
9314
9315         * tools/dbus-monitor.1: Updated.
9316
9317         * tools/dbus-send.1: Likewise.
9318
9319 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9320
9321         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9322         for hangup and error after checking read so we won't discard
9323         pending data if both hangup and read are set.
9324
9325 2003-06-19  Philip Blundell  <philb@gnu.org>
9326
9327         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9328
9329         * tools/dbus-send.c: Accept both --system and --session.
9330
9331         * tools/dbus-monitor.c: Same here.
9332
9333 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9334
9335         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9336         from C++ (Patch by Miloslav Trmac).
9337
9338 2003-06-15  Joe Shaw  <joe@assbarn.com>
9339
9340         * configure.in: Check for socklen_t.
9341
9342         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9343
9344         * test/test-segfault.c: Add #include <sys/time.h>
9345
9346         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9347         dbus-launch needs it.
9348
9349 2003-06-09  Havoc Pennington  <hp@redhat.com>
9350
9351         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9352         SUN_LEN, it breaks abstract socket usage
9353
9354         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9355         starts of lines.
9356
9357 2003-06-04  Havoc Pennington  <hp@pobox.com>
9358
9359         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9360         using unix:abstract=/foo, and when listening in a tmpdir
9361         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9362
9363         * dbus/dbus-transport.c (_dbus_transport_open): support
9364         unix:abstract=/foo
9365
9366         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9367         support abstract sockets
9368
9369         * dbus/dbus-transport-unix.c
9370         (_dbus_transport_new_for_domain_socket): support abstract sockets
9371
9372         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9373         toggle as an argument, implement abstract namespace support
9374         (_dbus_listen_unix_socket): ditto
9375
9376         * configure.in: add --enable-abstract-sockets and implement
9377         a configure check for autodetection of the right value.
9378
9379 2003-06-01  Havoc Pennington  <hp@pobox.com>
9380
9381         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9382         in /tmp (though on Linux this will end up being useless,
9383         when we add abstract namespace support)
9384
9385         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9386         subst'ing it
9387
9388 2003-05-28  Colin Walters  <walters@verbum.org>
9389
9390         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9391
9392 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9393
9394         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9395
9396 2003-05-17  Colin Walters  <walters@gnu.org>
9397
9398         * tools/dbus-send.c: Don't exit with an error code if --help was
9399         passed.  Default to using the session bus instead of the system
9400         one.
9401
9402         * tools/dbus-launch.c: Ditto.
9403
9404         * tools/dbus-monitor.c: Ditto.
9405
9406         * tools/dbus-send.1: Update with new arguments.
9407
9408         * tools/dbus-launch.c: Emit code to export variables.  New
9409         arguments -s and -c to specify shell syntax, and a bit of code to
9410         autodetect syntax.  Also, allow specifying a program to run.
9411
9412         * tools/dbus-launch.1: Update with new arguments.
9413
9414         * tools/dbus-send.1: Ditto.
9415
9416         * tools/dbus-monitor.1: Ditto.
9417
9418 2003-05-17  Havoc Pennington  <hp@pobox.com>
9419
9420         * bus/config-parser.c (merge_included): merge in policies from
9421         child configuration file.
9422
9423         * bus/policy.c (bus_policy_merge): function to merge two policies
9424         together
9425
9426 2003-05-16  Havoc Pennington  <hp@redhat.com>
9427
9428         * dbus/dbus-connection.c: disable verbose lock spew
9429
9430         * tools/dbus-send.c: add --print-reply command line option
9431
9432         * tools/dbus-print-message.h (print_message): new util function
9433         shared by dbus-send and dbus-monitor
9434
9435         * tools/dbus-monitor.c (handler_func): exit on disconnect
9436
9437         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9438         disconnected, don't try to use the read_watch
9439
9440         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9441         so we can find this bug more easily
9442
9443 2003-05-16  Havoc Pennington  <hp@redhat.com>
9444
9445         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9446         NULL as DBusHashTable is annoyingly likely to do.
9447
9448 2003-05-16  Colin Walters  <walters@verbum.org>
9449
9450         * tools/dbus-monitor.c: Add --session argument and usage()
9451         function.
9452
9453         * tools/dbus-monitor.1: Update with new --session arg.
9454
9455         * bus/Makefile.am (install-data-hook): Create
9456         $(libdir)/dbus-1.0/services so that the session bus is happy.
9457
9458 2003-05-15  Havoc Pennington  <hp@redhat.com>
9459
9460         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9461         on non-x86. ifdef's are evil.
9462
9463 2003-05-15  Havoc Pennington  <hp@redhat.com>
9464
9465         * configure.in: 0.11
9466
9467         * NEWS: update
9468
9469         * bus/Makefile.am (initddir): apparently we are supposed to put
9470         init scripts in /etc/rc.d/init.d not /etc/init.d
9471
9472         * bus/Makefile.am: remove the "you must --enable-tests to make
9473         check" as it broke distcheck
9474
9475         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9476
9477 2003-05-13  James Willcox  <jwillcox@gnome.org>
9478
9479         * configure.in:
9480         * bus/activation.c: (bus_activation_service_created),
9481         (bus_activation_activate_service):
9482         * bus/driver.c: (bus_driver_send_service_deleted),
9483         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9484         (bus_driver_send_service_acquired),
9485         (bus_driver_send_welcome_message),
9486         (bus_driver_handle_list_services):
9487         * bus/session.conf.in:
9488         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9489         (dbus_bus_service_exists), (dbus_bus_activate_service):
9490         * dbus/dbus-bus.h:
9491
9492         Add some convenience API which lets you activate a service, and did a
9493         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9494         and dbus_message_get_args()
9495
9496 2003-05-11  Havoc Pennington  <hp@pobox.com>
9497
9498         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9499         calling _dbus_marshal_validate_arg() for every byte in a byte
9500         array, etc.
9501
9502         * dbus/dbus-message-handler.c: use atomic reference counting to
9503         reduce number of locks slightly; the global lock in here sucks
9504
9505         * dbus/dbus-connection.c
9506         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9507         update_dispatch_status that can be called with lock held; then use
9508         in a couple places to reduce locking/unlocking
9509         (dbus_connection_send): hold the lock over the whole function
9510         instead of acquiring it twice.
9511
9512         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9513
9514         * bus/connection.c (bus_connections_setup_connection): fix access
9515         to already-freed memory.
9516
9517         * dbus/dbus-connection.c: keep a little cache of linked list
9518         nodes, to avoid using the global linked list alloc lock in the
9519         normal send-message case. Instead we just use the connection lock
9520         that we already have to take.
9521
9522         * dbus/dbus-list.c (_dbus_list_find_last): new function
9523
9524         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9525         change to use a struct for the atomic type; fix docs,
9526         they return value before increment, not after increment.
9527
9528         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9529         (_dbus_string_append_8_aligned): new functions to try to
9530         microoptimize this operation.
9531         (reallocate_for_length): break this out of set_length(), to
9532         improve profile info, and also so we can consider inlining the
9533         set_length() part.
9534
9535         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9536         strings with some preallocation, cuts down on our calls to realloc
9537         a fair bit. Though if we can get the "move entire string to empty
9538         string" optimization below to kick in here, it would be better.
9539
9540         * dbus/dbus-string.c (_dbus_string_move): just call
9541         _dbus_string_move_len
9542         (_dbus_string_move_len): add a special case for moving
9543         an entire string into an empty string; we can just
9544         swap the string data instead of doing any reallocs.
9545         (_dbus_string_init_preallocated): new function
9546
9547 2003-05-11  Havoc Pennington  <hp@pobox.com>
9548
9549         Write a "test-profile" that does echo client-server with threads;
9550         profile reveals lock contention, memcpy/realloc of buffers, and
9551         UTF-8 validation as hot spots. 20% of lock contention eliminated
9552         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9553         contention is global mempool locks for GList and DBusList.
9554
9555         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9556         x86 implementation
9557
9558         * dbus/dbus-connection.c (struct DBusConnection): use
9559         dbus_atomic_t for the reference count
9560
9561         * dbus/dbus-message.c (struct DBusMessage): declare
9562         dbus_atomic_t values as volatile
9563
9564         * configure.in: code to detect ability to use atomic integer
9565         operations in assembly, from GLib patch
9566
9567         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9568         time, tired of it being wrong in threads and forked processes
9569
9570         * glib/test-profile.c: a little program to bounce messages back
9571         and forth between threads and eat CPU
9572
9573         * dbus/dbus-connection.c: add debug spew macros for debugging
9574         thread locks; include config.h at top; fix deadlock in
9575         dbus_connection_flush()
9576
9577 2003-05-08  Havoc Pennington  <hp@pobox.com>
9578
9579         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9580         data from getting written, and there wasn't a good reason to
9581         use _exit really.
9582
9583         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9584         dbus_verbose lines in test coverage
9585         (main): add list of functions sorted by # of untested blocks
9586         to the coverage report
9587
9588         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9589
9590         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9591
9592         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9593         extend test coverage
9594
9595         * test/data/auth/cancel.auth-script: test canceling an
9596         authentication
9597
9598         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9599         aren't used. in CVS history if we end up needing them.
9600
9601 2003-05-04  Havoc Pennington  <hp@pobox.com>
9602
9603         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9604         unit test
9605
9606         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9607         function, which assumed length was in # of strings, not bytes
9608
9609         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9610         missing coverage
9611
9612         * dbus/dbus-connection.c
9613         (_dbus_connection_queue_received_message): disable function for
9614         now, we are only using it in test mode
9615
9616         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9617         remove a mistaken FIXME
9618
9619 2003-05-04  Havoc Pennington  <hp@pobox.com>
9620
9621         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9622         unlock mutex on successful return, patch from Anders Gustafsson
9623
9624 2003-05-04  Havoc Pennington  <hp@pobox.com>
9625
9626         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9627         Anders Gustafsson
9628
9629 2003-05-04  Havoc Pennington  <hp@pobox.com>
9630
9631         * tools/dbus-launch.c: implement
9632
9633         * bus/main.c (main), bus/bus.c (bus_context_new):
9634         implement --print-pid and --fork
9635
9636 2003-05-03  Havoc Pennington  <hp@redhat.com>
9637
9638         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9639         the address had no value, and add to test suite. Fix and
9640         regression test from Miloslav Trmac
9641
9642 2003-05-03  Havoc Pennington  <hp@pobox.com>
9643
9644         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9645         watch is invalid when handled
9646
9647         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9648         dbus-launch utility to launch the bus from a shell script.  Didn't
9649         actually implement dbus-launch yet, it's just a placeholder still.
9650
9651 2003-05-03  Havoc Pennington  <hp@pobox.com>
9652
9653         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9654         daemon; also documents daemon config file, so replaces
9655         doc/config-file.txt. Corrected some stuff from config-file.txt in
9656         the process of moving it.
9657
9658 2003-05-03  Havoc Pennington  <hp@pobox.com>
9659
9660         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9661         add some man pages
9662
9663 2003-05-03  Colin Walters  <walters@verbum.org>
9664
9665         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9666         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9667
9668         * Makefile.am: Update to use new .pc versioning scheme.
9669
9670 2003-05-02  Havoc Pennington  <hp@redhat.com>
9671
9672         * bus/system.conf.in: allow send/receive to/from message bus
9673         service
9674
9675 2003-04-30  Havoc Pennington  <hp@redhat.com>
9676
9677         * configure.in: print a note when building with unit tests and
9678         without assertions
9679
9680 2003-04-30  Havoc Pennington  <hp@redhat.com>
9681
9682         * Makefile.am: add a check-local that complains if you didn't
9683         configure with --enable-tests
9684
9685 2003-04-29  Havoc Pennington  <hp@redhat.com>
9686
9687         * glib/dbus-gmain.c: docs cleanups
9688
9689         * dbus/dbus-types.h: add docs on int64 types
9690
9691         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9692         public API docs section
9693
9694 2003-04-29  Havoc Pennington  <hp@redhat.com>
9695
9696         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9697         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9698         parallel install API version, not with the D-BUS package version.
9699
9700         * HACKING: move some of README over here
9701
9702         * README: updates, and document API/ABI policy
9703
9704         * configure.in: reindentation
9705
9706 2003-04-29  Havoc Pennington  <hp@redhat.com>
9707
9708         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9709         to use this library" to be sure people have the right
9710         expectations.
9711
9712 2003-04-28  Havoc Pennington  <hp@redhat.com>
9713
9714         * configure.in: add --enable-docs which by default is auto yes if
9715         doxygen and db2html found, no otherwise; but can be forced on/off
9716
9717         * doc/Makefile.am: conditionalize whether to build docs on
9718         --enable-docs
9719
9720 2003-04-28  Havoc Pennington  <hp@redhat.com>
9721
9722         * configure.in: 0.10
9723
9724         * NEWS: update
9725
9726         * bus/system.conf.in: add <includedir>system.d</includedir>
9727
9728         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9729         username was provided but not uid
9730
9731         * bus/config-parser.c (struct BusConfigParser): keep track of
9732         whether the parser is toplevel or was included; change some
9733         of the error handling if it's included.
9734
9735 2003-04-27  Havoc Pennington  <hp@pobox.com>
9736
9737         Unbreak my code...
9738
9739         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9740         report correct status if we finish processing authentication
9741         inside this function.
9742
9743         * bus/activation.c (try_send_activation_failure): use
9744         bus_transaction_send_error_reply
9745
9746         * bus/connection.c (bus_connection_get_groups): return an error
9747         explaining the problem
9748
9749         * bus/bus.c (bus_context_check_security_policy): implement
9750         restriction here that inactive connections can only send the
9751         hello message. Also, allow bus driver to send anything to
9752         any recipient.
9753
9754         * bus/connection.c (bus_connection_complete): create the
9755         BusClientPolicy here instead of on-demand.
9756         (bus_connection_get_policy): don't return an error
9757
9758         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9759         sender field in message being replied to
9760
9761         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9762         causing it to return FALSE always
9763
9764         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9765         we checked sender rather than destination
9766
9767 2003-04-25  Havoc Pennington  <hp@redhat.com>
9768
9769         test suite is slightly hosed at the moment, will fix soon
9770
9771         * bus/connection.c (bus_connections_expire_incomplete): fix to
9772         properly disable the timeout when required
9773         (bus_connection_set_name): check whether we can remove incomplete
9774         connections timeout after we complete each connection.
9775
9776         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9777         probably still broken.
9778
9779         * bus/services.c (bus_registry_acquire_service): implement max
9780         number of services owned, and honor allow/deny rules on which
9781         services a connection can own.
9782
9783         * bus/connection.c (bus_connection_get_policy): report errors here
9784
9785         * bus/activation.c: implement limit on number of pending
9786         activations
9787
9788 2003-04-25  Havoc Pennington  <hp@redhat.com>
9789
9790         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9791         where we used >= 0 instead of != DBUS_UID_UNSET.
9792
9793 2003-04-25  Havoc Pennington  <hp@redhat.com>
9794
9795         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9796         were toggled without add/remove, fix from Anders Gustafsson
9797
9798 2003-04-24  Havoc Pennington  <hp@redhat.com>
9799
9800         * test/data/valid-config-files/basic.conf: add <limit> tags to
9801         this test
9802
9803         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9804         <limit> tag in configuration file.
9805
9806 2003-04-24  Havoc Pennington  <hp@redhat.com>
9807
9808         * bus/dispatch.c: somehow missed some name_is
9809
9810         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9811         (_dbus_timeout_set_interval): new
9812
9813         * bus/connection.c (bus_connections_setup_connection): record time
9814         when each connection is first set up, and expire them after the
9815         auth timeout passes.
9816
9817 2003-04-24  Havoc Pennington  <hp@redhat.com>
9818
9819         * dbus/dbus-message.c (dbus_message_name_is): rename
9820         (dbus_message_service_is): rename
9821         (dbus_message_sender_is): rename
9822         (dbus_message_get_service): rename
9823
9824 2003-04-24  Havoc Pennington  <hp@redhat.com>
9825
9826         * configure.in: add --enable-checks
9827
9828         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9829
9830         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9831         to use thread locks.
9832         (_dbus_connection_handler_destroyed_locked): move some private
9833         functions into proper docs group
9834
9835         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9836         _dbus_return_val_if_fail
9837
9838         Throughout: use dbus_return_if_fail
9839
9840 2003-04-23  James Willcox  <jwillcox@gnome.org>
9841
9842         * glib/dbus-glib.h:
9843         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9844         (dbus_connection_setup_with_g_main),
9845         (dbus_server_setup_with_g_main):
9846         * glib/test-dbus-glib.c: (main):
9847         * glib/test-thread-client.c: (main):
9848         * glib/test-thread-server.c: (new_connection_callback), (main):
9849         * tools/dbus-monitor.c: (main):
9850
9851         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9852         and dbus_server_setup_with_g_main().
9853
9854 2003-04-20  Havoc Pennington  <hp@pobox.com>
9855
9856         * doc/dbus-specification.sgml: document the restrictions on
9857         message and service names
9858
9859 2003-04-22  Havoc Pennington  <hp@redhat.com>
9860
9861         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9862         support, and do some code cleanups to share more code and
9863         speed up array marshal/demarshal.
9864
9865         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9866
9867         * configure.in: generate dbus-arch-deps.h
9868
9869         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9870         64-bit typecodes
9871
9872 2003-04-22  Havoc Pennington  <hp@redhat.com>
9873
9874         * test/data/valid-messages/opposite-endian.message: fix test
9875         to use proper type for rply field
9876
9877         * test/data/invalid-messages: add tests for below validation
9878
9879         * dbus/dbus-message.c (decode_header_data): validate field types,
9880         and validate that named fields are valid names
9881         (decode_name_field): consider messages in the
9882         org.freedesktop.Local. namespace to be invalid.
9883
9884         * dbus/dbus-string.c (_dbus_string_validate_name): new
9885
9886 2003-04-19  Havoc Pennington  <hp@pobox.com>
9887
9888         * bus/driver.c (bus_driver_handle_hello): check limits and
9889         return an error if they are exceeded.
9890
9891         * bus/connection.c: maintain separate lists of active and inactive
9892         connections, and a count of each. Maintain count of completed
9893         connections per user. Implement code to check connection limits.
9894
9895         * dbus/dbus-list.c (_dbus_list_unlink): export
9896
9897         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9898         number of bytes in the message queue for a connection
9899
9900 2003-04-18  Havoc Pennington  <hp@pobox.com>
9901
9902         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9903
9904         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9905         memleaks
9906
9907         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9908         on realloc be sure to update the pointer in the keyring
9909
9910         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9911         offset to avoid writing to unallocated memory
9912
9913         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9914         try the next mechanism, so we properly handle OOM
9915
9916         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9917         on OOM.
9918         (_dbus_keyring_new): fix OOM bug
9919         (_dbus_keyring_new_homedir): always set error; impose a maximum
9920         number of keys we'll load from the file, mostly to speed up the
9921         test suite and make its OOM checks more useful, but also for
9922         general sanity.
9923
9924         * dbus/dbus-auth.c (process_error_server): reject authentication
9925         if we get an error from the client
9926         (process_cancel): on cancel, send REJECTED, per the spec
9927         (process_error_client): send CANCEL if we get an error from the
9928         server.
9929
9930 2003-04-18  Havoc Pennington  <hp@pobox.com>
9931
9932         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9933         debug spew
9934
9935         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9936         handling problem
9937
9938         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9939         about DBUS_TEST_HOMEDIR once
9940
9941         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9942         the environment
9943
9944         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9945         config file so we test the right thing
9946
9947         Throughout: assorted docs improvements
9948
9949 2003-04-18  Havoc Pennington  <hp@pobox.com>
9950
9951         * glib/dbus-gmain.c: adapt to watch changes
9952
9953         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9954
9955         * dbus/dbus-server.h: remove dbus_server_handle_watch
9956
9957         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9958
9959         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9960         like DBusTimeout, so we don't need dbus_connection_handle_watch
9961         etc.
9962
9963 2003-04-17  Havoc Pennington  <hp@redhat.com>
9964
9965         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9966         database usage so it all goes via the DBusUserDatabase cache.
9967
9968 2003-04-17  Havoc Pennington  <hp@redhat.com>
9969
9970         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9971         there was an OOM watch we skipped, we always return TRUE so we
9972         iterate again to have a look at it again. Fixes test suite hang.
9973         Code rearrangement also lets us lose some memset and only iterate
9974         over callbacks once.
9975
9976         * bus/driver.c (bus_driver_handle_message): sense of test for
9977         reply was backward
9978
9979 2003-04-16  Havoc Pennington  <hp@pobox.com>
9980
9981         * doc/dbus-specification.sgml: make spec say serials are unsigned
9982
9983         * dbus/dbus-message.h: change message serials to unsigned
9984
9985         * dbus/dbus-connection.c: adapt to message serials being unsigned
9986
9987 2003-04-15  Havoc Pennington  <hp@pobox.com>
9988
9989         * bus/bus.c: create and keep around a shared DBusUserDatabase
9990         object.
9991
9992         * bus/connection.c (bus_connection_get_groups): don't cache
9993         groups for user in the connection object, since user database
9994         object now does that.
9995
9996 2003-04-16  Havoc Pennington  <hp@redhat.com>
9997
9998         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9999         list of size counters
10000         (_dbus_message_loader_putback_message_link): put back a popped link
10001
10002         * dbus/dbus-connection.c
10003         (dbus_connection_set_max_live_messages_size): rename
10004         max_received_size
10005         (dbus_connection_get_outgoing_size): get size of outgoing
10006         queue
10007         (_dbus_connection_set_connection_counter): remove this cruft
10008
10009 2003-04-14  Havoc Pennington  <hp@redhat.com>
10010
10011         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10012         caching, but at some point we might want to be able to use a
10013         different database.
10014
10015         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10016         SHA1 conf file to test the sha1 auth mechanism, since the regular
10017         test always uses EXTERNAL when available.
10018
10019         * configure.in,
10020         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10021         add conf file that requires use of sha1 auth
10022
10023 2003-04-13  Havoc Pennington  <hp@pobox.com>
10024
10025         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10026         from Philip Blundell to send messages and monitor them.
10027
10028 2003-04-13  Havoc Pennington  <hp@pobox.com>
10029
10030         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10031         callbacks
10032
10033         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10034         users
10035
10036         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10037         fix to only recover unused bytes if we're already authenticated
10038         (_dbus_transport_get_is_authenticated): fix to still mark us
10039         authenticated if there are unused bytes.
10040
10041         * bus/dispatch.c: implement security policy checking
10042
10043         * bus/connection.c (bus_transaction_send_from_driver): new
10044
10045         * bus/bus.c (bus_context_check_security_policy): new
10046
10047         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10048         now we just set the DBusError and it gets converted to an error
10049         reply.
10050
10051         * bus/connection.c (allow_user_function): enable code using actual
10052         data from the config file
10053
10054         * bus/policy.c (list_allows_user): handle wildcard rules for
10055         user/group connection perms
10056
10057 2003-04-13  Havoc Pennington  <hp@pobox.com>
10058
10059         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10060
10061         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10062
10063         * bus/policy.c (bus_policy_append_mandatory_rule)
10064         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10065         (bus_policy_append_group_rule): new functions
10066
10067 2003-04-12  Havoc Pennington  <hp@pobox.com>
10068
10069         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10070
10071         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10072         the pid/gid/uid, just for paranoia.
10073
10074         * test/break-loader.c (randomly_do_n_things): find a byte
10075         containing a type code, and randomly change it to a different
10076         type code.
10077
10078 2003-04-12  Havoc Pennington  <hp@pobox.com>
10079
10080         * bus/policy.h: change BusPolicy to be the thing from the config
10081         file, and rename old BusPolicy to BusClientPolicy
10082
10083         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10084         match change in how policy works
10085
10086         * dbus/dbus-internals.h: mark assert_not_reached as
10087         __attribute((noreturn))__
10088
10089 2003-04-11  Havoc Pennington  <hp@redhat.com>
10090
10091         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10092         the broadcast service. Use boolean return for ServiceExists.
10093
10094 2003-04-11  Havoc Pennington  <hp@redhat.com>
10095
10096         * configure.in: add another directory to look for qt in.
10097
10098 2003-04-11  Havoc Pennington  <hp@redhat.com>
10099
10100         * AUTHORS: add Colin Walters
10101
10102 2003-04-11  Havoc Pennington  <hp@redhat.com>
10103
10104         * NEWS: update
10105
10106         * configure.in: 0.9
10107
10108 2003-04-11  Havoc Pennington  <hp@redhat.com>
10109
10110         * bus/messagebus.in: remove pid file when stopping the
10111         message bus, since the bus won't have privileges to remove it
10112         itself.
10113
10114 2003-04-11  Havoc Pennington  <hp@redhat.com>
10115
10116         * bus/bus.c (bus_context_new): move credentials change after
10117         creating pidfile
10118
10119 2003-04-11  Havoc Pennington  <hp@pobox.com>
10120
10121         * test/decode-gcov.c: add "below average functions" to the
10122         coverage report, and change how some of the code works.
10123
10124         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10125         not in the coverage stats.
10126
10127         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10128         couple places so running the test suite doesn't result in megaspam.
10129
10130 2003-04-11  Havoc Pennington  <hp@pobox.com>
10131
10132         * bus/dispatch.c (check_existent_service_activation): accept a no
10133         memory error in a place we didn't before
10134
10135         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10136         in case the first one failed," since the test suite is less
10137         broken now.
10138
10139 2003-04-10  Havoc Pennington  <hp@pobox.com>
10140
10141         * bus/dispatch.c (check_segfault_service_activation): add test
10142         for launching an executable that just crashes.
10143
10144         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10145         don't leave a million cores. We'll see how portable this is.
10146
10147 2003-04-10  Havoc Pennington  <hp@pobox.com>
10148
10149         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10150         the possible parent failures before we fork, so that we don't
10151         fail to create a babysitter after creating the child.
10152
10153         * bus/activation.c (bus_activation_activate_service): kill child
10154         if we don't successfully complete the activation.
10155
10156 2003-04-10  Havoc Pennington  <hp@redhat.com>
10157
10158         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10159         the connection if it's disconnected
10160
10161         * bus/activation.c (bus_activation_service_created): use new
10162         transaction features to roll back removal of pending activation if
10163         we don't successfully create the service after all. Don't remove
10164         pending activation if the function fails.
10165
10166         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10167         (_dbus_list_insert_after_link): new code to facilitate
10168         services.c fixes
10169
10170         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10171         new functionality, so we can preallocate the ability to insert
10172         into a hash table.
10173
10174         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10175         allowing us to put custom hooks in a transaction to be used for
10176         cancelling said transaction
10177
10178         * doc/dbus-specification.sgml: add some discussion of secondary
10179         service owners, and disallow zero-length service names
10180
10181         * bus/services.c (bus_registry_acquire_service): new function,
10182         splits out part of bus_driver_handle_acquire_service() and fixes
10183         a bug where we didn't remove the service doing the acquiring
10184         from the secondary queue if we failed to remove the current owner
10185         from the front of the queue.
10186
10187 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10188
10189         * doc/dbus-specification.sgml:
10190         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10191
10192 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10193
10194         * bus/.cvsignore:
10195         * glib/.cvsignore:
10196         * test/.cvsignore:
10197         Added files to cvsignore
10198
10199         * dbus/dbus-message.h:
10200         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10201         Make get_named() take two out argument and return a boolean.
10202         (dbus_message_iter_get_args_valist):
10203         Update usage of get_named().
10204         (dbus_message_iter_append_byte):
10205         Fix typo
10206         (dbus_message_iter_append_named)
10207         Fix typo
10208         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10209         More tests.
10210
10211 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10212
10213         * dbus/dbus-marshal.[ch]:
10214         Add array_type_pos argument to _dbus_marshal_validate_arg.
10215         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10216
10217         * dbus/dbus-message.[ch]:
10218         Multi-dimensional arrays have full type specification in the
10219         outermost array. Iter code re-arranged to handle this.
10220         Added some more iter tests.
10221
10222         * doc/dbus-specification.sgml:
10223         Add me to authors.
10224         Remove old FIXME.
10225         Update new array encoding description.
10226         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10227
10228         * test/data/invalid-messages/array-with-mixed-types.message:
10229         * test/data/valid-messages/array-of-array-of-uint32.message:
10230         Change to the new array format.
10231
10232         * test/data/invalid-messages/too-short-dict.message:
10233         Fix bug in test.
10234
10235         * test/data/valid-messages/recursive-types.message:
10236         Fix up and extend test.
10237
10238 2003-04-10  Havoc Pennington  <hp@pobox.com>
10239
10240         * bus/dispatch.c: lots of fixes
10241
10242         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10243         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10244         that was crack, broke the test service.
10245
10246         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10247         handling to avoid piling up errors if we get a failure on the
10248         first address.
10249
10250         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10251         pid in assertion failures.
10252
10253         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10254         to some fixed size of file descriptor array. Don't return TRUE
10255         anytime a timeout exists, that led to lots of busy loop silliness
10256         in the tests.
10257
10258 2003-04-09  Havoc Pennington  <hp@redhat.com>
10259
10260         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10261         I'd checked this in earlier but hadn't.
10262
10263 2003-04-09  Havoc Pennington  <hp@redhat.com>
10264
10265         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10266         the activation test (man this is getting old!)
10267
10268 2003-04-09  Havoc Pennington  <hp@redhat.com>
10269
10270         * test/test-utils.c: use dispatch status function to fix this up
10271
10272         * bus/connection.c (connection_watch_callback): don't dispatch
10273         from here
10274         (connection_timeout_callback): don't dispatch from here
10275         (bus_connections_setup_connection): set the dispatch status function
10276         (bus_connection_disconnected): unset it
10277
10278         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10279         used to add a connection to be dispatched
10280         (_dbus_loop_iterate): do the dispatching at the end of each
10281         iteration
10282
10283         * dbus/dbus-connection.c
10284         (dbus_connection_set_dispatch_status_function): new function
10285         allowing us to fix up main loop usage
10286         (_dbus_connection_last_unref): free all the various function
10287         user data
10288         (dbus_connection_dispatch): call the DispatchStatusFunction
10289         whenever this function returns
10290         (dbus_connection_handle_watch): call DispatchStatusFunction
10291         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10292         (reply_handler_timeout): call DispatchStatusFunction
10293         (dbus_connection_flush): call DispatchStatusFunction
10294
10295 2003-04-09  Havoc Pennington  <hp@redhat.com>
10296
10297         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10298         a memory leak
10299
10300         * bus/dispatch.c (check_service_activated): fix bug in test
10301
10302         * dbus/dbus-mainloop.c (check_timeout): fix this up
10303
10304         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10305         verbose output so we can sort out output from different processes,
10306         e.g. in the activation case.
10307
10308 2003-04-08  Colin Walters  <walters@gnu.org>
10309
10310         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10311         the pid file.
10312         (bus_context_new): Set it.
10313         (bus_context_unref): Use it to delete the pid file.
10314
10315 2003-04-08  Havoc Pennington  <hp@redhat.com>
10316
10317         * test/data/invalid-messages/array-with-mixed-types.message:
10318         regression test that fails for the moment
10319
10320         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10321         tests for convenience
10322
10323         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10324         array of nil, it broke things.
10325
10326         * test/data/invalid-messages/array-of-nil.message: regression test
10327
10328         * test/data/valid-messages/array-of-array-of-uint32.message:
10329         happened to write this so added it to suite
10330
10331 2003-04-08  Havoc Pennington  <hp@redhat.com>
10332
10333         * bus/driver.c (bus_driver_handle_acquire_service): init
10334         retval/reply before checking name
10335
10336         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10337         recursion depth argument
10338
10339         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10340         in the public struct for future extension
10341
10342         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10343         typo
10344
10345         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10346         message
10347
10348         * doc/dbus-specification.sgml: fix typo
10349
10350 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10351
10352         Implemented recursive types, named types and new-style iters
10353
10354         * bus/driver.c:
10355         * glib/test-thread-client.c: (thread_func):
10356         * glib/test-thread-server.c: (handle_test_message):
10357         * test/test-service.c: (handle_echo):
10358         Update to new api
10359
10360         * dbus/Makefile.am:
10361         * dbus/dbus-dict.c:
10362         * dbus/dbus-dict.h:
10363         * dbus/dbus.h
10364         Remove DBusDict
10365
10366         * dbus/dbus-internals.c: (_dbus_type_to_string):
10367         Update for new types.
10368
10369         * dbus/dbus-marshal.[ch]:
10370         Implement recursive types and the new marshalling format.
10371         Remove hardcoded dict marshalling.
10372         Marshal named types.
10373
10374         * dbus/dbus-message-builder.c:
10375         Add BYTE_ARRAY.
10376         Remove references to old types
10377
10378         * dbus/dbus-message.[ch]:
10379         New non-refcounted iter API that supports recursive iters.
10380         Use iters for appending, including support for recursive
10381         iters.
10382         Add byte and named type support.
10383         Update everything to new marshalling formats.
10384         Add tests for new API.
10385
10386         * dbus/dbus-protocol.h:
10387         Remove old array types.
10388         Add types: BYTE, ARRAY, DICT, NAMED
10389
10390         * dbus/dbus-string.c:
10391         * dbus/dbus-sysdeps.c:
10392         Make parse_double locale safe.
10393
10394         * dbus/dbus-test-main.c:
10395         Call setlocale.
10396
10397         * dbus/dbus-test.c:
10398         Kill dict test
10399
10400         * doc/dbus-specification.sgml:
10401         Update spec
10402
10403         * test/data/incomplete-messages/missing-body.message:
10404         * test/data/invalid-messages/bad-boolean.message:
10405         * test/data/invalid-messages/bad-boolean-array.message:
10406         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10407         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10408         * test/data/invalid-messages/too-short-dict.message:
10409         * test/data/valid-messages/dict-simple.message:
10410         * test/data/valid-messages/dict.message:
10411         * test/data/valid-messages/emptiness.message:
10412         * test/data/valid-messages/lots-of-arguments.message:
10413         * test/data/valid-messages/no-padding.message:
10414         * test/data/valid-messages/recursive-types.message:
10415         Add missing NAME fields
10416         Fix up dicts & arrays
10417
10418         * test/data/invalid-messages/dict-with-nil-value.message:
10419         Removed, this is not invalid anymore.
10420
10421         * test/data/valid-messages/recursive-types.message:
10422         Add new test for deeply recursive types.
10423
10424 2003-04-07  Havoc Pennington  <hp@pobox.com>
10425
10426         * bus/driver.c (bus_driver_handle_acquire_service): return an
10427         error if you try to acquire a service that starts with ':'
10428
10429 2003-04-07  Havoc Pennington  <hp@redhat.com>
10430
10431         * doc/dbus-specification.sgml: require that base service names
10432         start with ':' and that the base service is created/deleted
10433         as first and last things a connection does on the bus
10434
10435         * bus/dispatch.c (check_existent_service_activation): lots more
10436         work on the activation test; it doesn't fully pass yet...
10437
10438         * test/test-service.c (main): fix so we don't memleak the
10439         connection to the message bus
10440         (filter_func): accept a message asking us to exit
10441
10442 2003-04-06  Havoc Pennington  <hp@pobox.com>
10443
10444         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10445         from Colin Walters
10446
10447         * configure.in: fixes to Qt detection from Colin Walters
10448
10449         * doc/Makefile.am: Only remove generated docbook dirs if they
10450         exist, from Colin Walters
10451
10452         * dbus/dbus-bus.c: change how we set well-known connections to
10453         NULL, so that it works if a single connection is stored in
10454         two well-known array slots.
10455
10456         * test/Makefile.am: remove a lot of stuff that isn't immediately
10457         useful, it's in CVS history if we want it.
10458
10459         * test/test-service.c: use dbus-mainloop instead of that
10460         watch.[hc] crack
10461
10462 2003-04-06  Havoc Pennington  <hp@pobox.com>
10463
10464         * dbus/Makefile.am: split lists of sources into stuff that goes in
10465         the library, util functions that go in the lib and are also used
10466         elsewhere, and util functions that are used in tests/daemon but
10467         don't go in the lib.
10468
10469         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10470         here so it can be used in test binaries also
10471
10472 2003-04-06  Havoc Pennington  <hp@pobox.com>
10473
10474         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10475         here in the parent process, so we can return an error if it
10476         fails. Also, move some of the code into the child so the parent
10477         is less hosed if we fail midway through.
10478
10479         * bus/bus.c (bus_context_new): move pidfile detection further up
10480         in the function, before we start overwriting sockets and such.
10481
10482         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10483
10484         * configure.in: add --with-system-pid-file and --with-system-socket
10485
10486 2003-04-06  Colin Walters  <walters@verbum.org>
10487
10488         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10489
10490         * bus/system.conf.in: Declare a pidfile.
10491
10492         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10493         create one (if appropriate).
10494
10495         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10496         (struct BusConfigParser) [pidfile]: New.
10497         (element_type_to_name, merge_included, start_busconfig_child)
10498         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10499         (bus_config_parser_unref): Free it.
10500         (bus_config_parser_get_pidfile): New function.
10501
10502         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10503
10504         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10505
10506         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10507
10508         * dbus/dbus-sysdeps.h: Prototype it.
10509
10510 2003-04-06  Havoc Pennington  <hp@pobox.com>
10511
10512         * bus/bus.c (bus_context_new): print the address in here, rather
10513         than in main(), because we need to do it before forking the daemon
10514
10515         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10516         on the service nonexistent error
10517
10518         * bus/driver.c (bus_driver_handle_acquire_service): set the
10519         sender on the AcquireService reply
10520
10521         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10522         server also listen on a UNIX socket so services can connect to it.
10523
10524 2003-04-06  Havoc Pennington  <hp@pobox.com>
10525
10526         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10527         so it detects deadlocks and also we actually init threads when
10528         debugging.
10529
10530 2003-04-06  Havoc Pennington  <hp@pobox.com>
10531
10532         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10533         save the domain socket name, and unlink it when we disconnect the
10534         server. Means that at least when we exit normally, we won't leave
10535         a bunch of junk in /tmp
10536
10537         * dbus/dbus-transport-unix.c
10538         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10539         memory management). (I was making a real change here but then
10540         didn't)
10541
10542 2003-04-06  Havoc Pennington  <hp@pobox.com>
10543
10544         * bus/bus.c (bus_context_new): fix wrong handling of
10545         server_data_slot_unref() in the error case.
10546
10547         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10548         "(condition) != 0" to _dbus_real_assert so that
10549         "_dbus_assert (pointer)" doesn't cause a warning
10550
10551         * bus/main.c (main): accept --print-address option to print out
10552         the message bus address
10553
10554         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10555
10556         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10557         "tmpdir" option to unix: address on client side
10558
10559         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10560         to unix: address
10561
10562         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10563         we can use to create sockets in the test suite.
10564
10565         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10566         cleanly. To be used for testing.
10567
10568         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10569
10570         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10571
10572         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10573         handle trying to call this when there's no servers active
10574
10575 2003-04-05  Havoc Pennington  <hp@pobox.com>
10576
10577         * NEWS: update
10578
10579         * configure.in: 0.8
10580
10581 2003-04-05  Havoc Pennington  <hp@pobox.com>
10582
10583         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10584         crash on startup. Need to get "try starting the daemon"
10585         in the test suite I guess. ;-)
10586
10587         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10588         tracked the number of open connections; it's better done in
10589         application-specific code as you want it to span all servers etc.
10590
10591 2003-04-05  Havoc Pennington  <hp@pobox.com>
10592
10593         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10594         patch from Colin Walters
10595
10596 2003-04-05  Havoc Pennington  <hp@pobox.com>
10597
10598         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10599         reality; in fact multiple mechanisms are allowed.
10600
10601         * dbus/dbus-internals.c (_dbus_real_assert)
10602         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10603         _dbus_assert_not_reached() into functions, so that they don't show
10604         up in basic block counts for test coverage, and don't use up as
10605         much disk space. Does mean slower execution speed though, so
10606         assumes --disable-asserts is the normal production case.
10607
10608 2003-04-05  Havoc Pennington  <hp@pobox.com>
10609
10610         * test/Makefile.am (dist-hook): also dist *.in files
10611
10612         * NEWS: update
10613
10614         * configure.in: 0.7
10615
10616 2003-04-05  Havoc Pennington  <hp@pobox.com>
10617
10618         * dbus/dbus-string.c: docs warning
10619
10620         * dbus/dbus-spawn.c: missing docs
10621
10622         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10623
10624 2003-04-05  Havoc Pennington  <hp@pobox.com>
10625
10626         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10627         magic from GLib
10628
10629         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10630         to -1 once we've reaped the babysitter
10631         (_dbus_babysitter_handle_watch): do as much work as we can, not
10632         just one go of it
10633
10634         * bus/activation.c: add code using DBusBabysitter so that we
10635         handle it when a service fails to start up properly.
10636         (bus_activation_service_created): don't remove the activation
10637         entries as we go, just let them get removed when we free the pending
10638         activation. Unref reply messages after sending them.
10639
10640 2003-04-05  Havoc Pennington  <hp@pobox.com>
10641
10642         * test/decode-gcov.c (main): print per-directory stats in the report
10643
10644         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10645
10646 2003-04-05  Havoc Pennington  <hp@pobox.com>
10647
10648         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10649
10650         * test/decode-gcov.c: hack up a little program to suck data
10651         out of gcov files. Yes this is sort of silly.
10652
10653         * configure.in: define something in config.h and do an
10654         AM_CONDITIONAL when gcov is enabled
10655
10656 2003-04-04  Havoc Pennington  <hp@redhat.com>
10657
10658         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10659         return a "babysitter" object that is used to monitor the status of
10660         the spawned process and reap it when required.
10661
10662         * test/test-segfault.c, test/test-exit.c,
10663         test/test-sleep-forever.c: binaries that do various lame things,
10664         used in the test suite.
10665
10666         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10667
10668 2003-04-03  Havoc Pennington  <hp@pobox.com>
10669
10670         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10671         in preparation for modifying it, dbus-sysdeps is getting
10672         a bit unmanageable.
10673
10674 2003-04-03  Havoc Pennington  <hp@redhat.com>
10675
10676         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10677         have multiple ones
10678
10679         * bus/*.[hc]: adapt to mainloop change
10680
10681 2003-04-03  Havoc Pennington  <hp@redhat.com>
10682
10683         * bus/activation.c (load_directory): fix up memleaks
10684         (bus_activation_entry_free): free the entry
10685
10686         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10687         we get one from the message bus; fix memleaks.
10688
10689         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10690
10691 2003-04-03  Havoc Pennington  <hp@pobox.com>
10692
10693         * bus/config-parser.c (bus_config_parser_unref): free
10694         list of mechanisms, bug discovered by test suite enhancements
10695         (putting system.conf and session.conf into suite)
10696
10697         * test/Makefile.am, test/test-service.c: add placeholder for a
10698         test service that we'll activate as part of test suite. Doesn't
10699         do anything yet.
10700
10701         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10702         setting NULL value, and use system malloc not dbus_malloc()
10703         when we have unavoidable memleakage.
10704
10705         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10706         didn't work, and support DBUS_BUS_ACTIVATION.
10707
10708         * bus/activation.c (child_setup): pass our well-known bus type to
10709         the child
10710
10711         * bus/config-parser.c: support <type> to specify well-known type
10712
10713         * doc/dbus-specification.sgml: document the env variables to
10714         locate well-known buses and find service activator
10715
10716 2003-04-02  Havoc Pennington  <hp@redhat.com>
10717
10718         * test/Makefile.am (all-local): add a rule to copy tests to
10719         builddir, so we can have generated tests. Use this to remove the
10720         silly hack for testing system.conf and session.conf. Will use this
10721         shortly to generate .service files pointing to test binaries.
10722
10723 2003-04-02  Havoc Pennington  <hp@redhat.com>
10724
10725         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10726         current alloc and needed new length, not max of the doubled
10727         allocation and needed new length. Also, when building tests,
10728         don't do the double-allocation stuff, just realloc every time.
10729
10730 2003-04-02  Havoc Pennington  <hp@redhat.com>
10731
10732         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10733         in error messages
10734         (_dbus_string_get_dirname): new
10735         (_dbus_sysdeps_test): new
10736         (_dbus_directory_open): include dirnames in error messages
10737
10738         * bus/config-parser.c: interpret <include> and <includedir> and
10739         <servicedir> relative to config file location if the given
10740         filename is not absolute.
10741
10742         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10743
10744 2003-04-02  Havoc Pennington  <hp@redhat.com>
10745
10746         * bus/connection.c (bus_transaction_send_error_reply): set sender
10747         service for the error, and unref the reply on success
10748
10749         * bus/activation.c: convert to use BusTransaction so OOM can be
10750         handled correctly
10751         (bus_activation_service_created): set sender of the message
10752
10753 2003-04-01  Havoc Pennington  <hp@redhat.com>
10754
10755         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10756         <includedir> (at least mostly)
10757
10758         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10759         first, then the user ID
10760
10761 2003-04-01  Havoc Pennington  <hp@pobox.com>
10762
10763         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10764         function
10765
10766         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10767
10768         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10769
10770         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10771         socket 0777, and unlink any existing socket.
10772
10773         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10774         the configuration file so specifies; set up auth mechanism
10775         restrictions
10776
10777         * bus/config-parser.c (bus_config_parser_content): add support
10778         for <fork> option and fill in code for <auth>
10779
10780         * bus/system.conf.in: add <fork/> to default configuration,
10781         and limit auth mechanisms to EXTERNAL
10782
10783         * doc/config-file.txt (Elements): add <fork>
10784
10785         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10786         (_dbus_change_identity): new function
10787
10788 2003-03-31  Havoc Pennington  <hp@redhat.com>
10789
10790         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10791         (_dbus_listen_unix_socket): fix off-by-one error in null
10792         termination spotted by Nalin
10793
10794 2003-03-31  Havoc Pennington  <hp@redhat.com>
10795
10796         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10797         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10798         having a real home directory available.
10799
10800 2003-03-31  Havoc Pennington  <hp@redhat.com>
10801
10802         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10803
10804         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10805
10806         * configure.in: add support for specifying a style of init script
10807         to install
10808
10809 2003-03-31  Havoc Pennington  <hp@redhat.com>
10810
10811         Fix some annoying DBusString API and fix all affected code.
10812
10813         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10814         max_length argument
10815         (_dbus_string_get_data): change to return string instead of using
10816         an out param
10817         (_dbus_string_get_const_data): ditto
10818         (_dbus_string_get_data_len): ditto
10819         (_dbus_string_get_const_data_len): ditto
10820
10821 2003-03-31  Havoc Pennington  <hp@redhat.com>
10822
10823         * bus/main.c (main): fix up the command line arguments to be nicer
10824
10825 2003-03-31  Havoc Pennington  <hp@redhat.com>
10826
10827         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10828         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10829         final location that lands in the config file
10830
10831         * bus/config-loader-expat.c (bus_config_load): fix type of
10832         XML_Parser variable
10833
10834         * doc/TODO: remove TODO item for dbus_bus_get()
10835
10836         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10837
10838 2003-03-31  Havoc Pennington  <hp@pobox.com>
10839
10840         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10841         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10842         argument since they are always client side
10843
10844         * dbus/dbus-server.c (dbus_server_get_address): new function
10845
10846         * bus/main.c (main): take the configuration file as an argument.
10847
10848         * test/data/valid-config-files/debug-allow-all.conf: new file to
10849         use with dispatch.c tests for example
10850
10851         * bus/test-main.c (main): require test data dir
10852
10853         * bus/bus.c (bus_context_new): change this to take a
10854         configuration file name as argument
10855
10856         * doc/config-file.txt (Elements): add <servicedir>
10857
10858         * bus/system.conf, bus/session.conf: new files
10859
10860         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10861         well-known socket if none set
10862
10863         * configure.in: create system.conf and session.conf
10864
10865 2003-03-30  Havoc Pennington  <hp@pobox.com>
10866
10867         * bus/config-parser.c: hacking
10868
10869         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10870         to shut down, since it could cause weirdness with the DBusList
10871         lock
10872
10873         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10874         link-oriented stack routines
10875         (alloc_link): free the mempool if the first alloc from it fails
10876
10877         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10878
10879         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10880         from GLib
10881         (_dbus_string_skip_white): new
10882
10883         * doc/config-file.txt (Elements): add <includedir>
10884
10885 2003-03-28  Havoc Pennington  <hp@pobox.com>
10886
10887         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10888         (_dbus_string_copy_data): new functions
10889
10890 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10891
10892         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10893         * dbus/dbus-bus.h:
10894         Add dbus_bus_get.
10895
10896         * dbus/dbus-memory.c:
10897         Fix a doc comment.
10898
10899 2003-03-28  Havoc Pennington  <hp@pobox.com>
10900
10901         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10902         I think it may have just been superstition. Not sure.
10903
10904         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10905         failures that were not being handled.
10906
10907         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10908
10909         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10910         row that will fail on out-of-memory.
10911
10912         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10913         function for testing out-of-memory handling.
10914
10915         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10916         allocation functions, they do map exactly to the expat ones.
10917
10918 2003-03-27  Havoc Pennington  <hp@redhat.com>
10919
10920         * bus/config-loader-libxml.c (bus_config_load): add another error
10921         check
10922
10923 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10924
10925         * doc/TODO:
10926         Add note about automatic service activation.
10927
10928         * doc/dbus-specification.sgml:
10929         Rename the specification and clarify a few things.
10930
10931 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10932
10933         * Doxyfile.in:
10934         * dbus/dbus-address.c:
10935         * dbus/dbus-dict.c:
10936         * dbus/dbus-marshal.c:
10937         * dbus/dbus-server-debug-pipe.c:
10938         * dbus/dbus-transport-unix.c:
10939         Fix documentation warnings.
10940
10941 2003-03-26  Havoc Pennington  <hp@pobox.com>
10942
10943         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10944         after every test so it's quick and easy to see which leaked, and
10945         so we test multiple dbus_shutdown() calls
10946
10947         * configure.in: change configure.in XML stuff to also support
10948         expat
10949
10950         * config-loader-libxml.c: some hacking
10951
10952         * config-loader-expat.c: some hacking
10953
10954         * config-parser.c: some hacking, plus tests
10955
10956 2003-03-25  Havoc Pennington  <hp@redhat.com>
10957
10958         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10959
10960         * configure.in: add --with-xml option to specify XML library,
10961         right now only libxml is supported.
10962
10963         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10964         nonworking code between home and work, still just stubs
10965
10966 2003-03-24  Havoc Pennington  <hp@redhat.com>
10967
10968         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10969         file
10970
10971         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10972         NULL argument for "message" if the error is a well-known one,
10973         fill in a generic message in this case.
10974
10975         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10976         favor of DBusError
10977
10978         * bus/test.c (bus_test_flush_bus): add
10979
10980         * bus/policy.c (bus_policy_test): test code stub
10981
10982 2003-03-24  Havoc Pennington  <hp@pobox.com>
10983
10984         * bus/connection.c (bus_connections_setup_connection): set up
10985         the "can this user connect" function, but it always returns
10986         TRUE until we have a config file parser so we can have a config
10987         file that allows connections.
10988
10989 2003-03-23  Havoc Pennington  <hp@pobox.com>
10990
10991         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10992         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10993         the mutex, so we can check for proper memory management
10994         and OOM handling.
10995
10996         * dbus/dbus-dataslot.c: remove the mutex from
10997         DBusDataSlotAllocator and lock it manually when using it,
10998         to simplify fitting it into the global slots framework.
10999
11000         * dbus/dbus-threads.c (init_static_locks): rework how we're
11001         handling global locks so they are easily shut down.
11002
11003         * bus/policy.c (bus_policy_append_rule): fix
11004
11005         * bus/test-main.c (main): check for memleaks
11006
11007         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11008         test suite check for memleaks
11009
11010         * dbus/dbus-memory.c: add support in test mode for tracking
11011         number of outstanding blocks
11012
11013 2003-03-23  Havoc Pennington  <hp@pobox.com>
11014
11015         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11016         policies code
11017
11018         * dbus/dbus-hash.h: add ULONG hash keys
11019
11020         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11021         (_dbus_get_group_id): new function
11022
11023 2003-03-20  Havoc Pennington  <hp@redhat.com>
11024
11025         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11026         new function
11027         (dbus_connection_get_unix_user): new function
11028
11029 2003-03-20  Havoc Pennington  <hp@pobox.com>
11030
11031         * bus/connection.c (bus_connection_send_oom_error): assert that
11032         message has a sender
11033         (connection_execute_transaction): ditto
11034         (bus_connection_preallocate_oom_error): fix to set the sender, and
11035         set recipient to the destination service, not the bus driver
11036
11037         * bus/policy.c: hacking
11038
11039         * dbus/dbus-message.c (dbus_message_service_is): new function
11040         (dbus_message_sender_is): new
11041
11042 2003-03-19  Havoc Pennington  <hp@redhat.com>
11043
11044         * bus/policy.c: start sketching code for policy restrictions on
11045         what connections can do.
11046
11047 2003-03-18  Havoc Pennington  <hp@redhat.com>
11048
11049         * doc/TODO: some notes on high-level todo items. Little nitpick
11050         stuff is all in @todo, so no need to add it here.
11051
11052         * doc/config-file.txt: some notes on how config file might look
11053
11054 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11055
11056         * configure.in: 0.6
11057
11058         * NEWS: Update.
11059
11060 2003-03-17  Havoc Pennington  <hp@redhat.com>
11061
11062         * dbus/dbus-internals.h: add gcc attributes so that
11063         our printf-style functions warn on bad arguments to
11064         format
11065
11066         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11067         format bug
11068
11069         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11070         printf format bug
11071
11072 2003-03-17  Havoc Pennington  <hp@redhat.com>
11073
11074         * bus/test-main.c (main): make it print something as it runs
11075         so make check doesn't look stuck
11076
11077         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11078         from CVS, now obsolete
11079
11080 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11081
11082         * bus/dispatch.c: (bus_dispatch):
11083         Refetch the service name since it may have been reallocated
11084         when dbus_message_set_sender was called.
11085
11086         * dbus/dbus-sysdeps.c: (_dbus_accept):
11087         Add address and address length variables and use them to stop
11088         valgrind from complaining.
11089
11090 2003-03-17  Havoc Pennington  <hp@pobox.com>
11091
11092         All tests pass, no memleaks, no valgrind complaints.
11093
11094         * bus/test.c: refcount handler_slot
11095
11096         * bus/connection.c (bus_connections_new): refcount
11097         connection_data_slot
11098
11099         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11100         bytes so that auth scripts pass.
11101
11102         * bus/dispatch.c: init message_handler_slot so it gets allocated
11103         properly
11104
11105         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11106
11107         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11108         dealloc server_pipe_hash when no longer used for benefit of
11109         leak checking
11110
11111         * dbus/dbus-auth.c (process_command): memleak fix
11112
11113         * bus/dispatch.c (check_hello_message): memleak fix
11114
11115 2003-03-16  Havoc Pennington  <hp@pobox.com>
11116
11117         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11118
11119 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11120
11121         * bus/activation.c (bus_activation_activate_service): Append
11122         the pending activation entry to the list of pending activations.
11123
11124 2003-03-16  Havoc Pennington  <hp@pobox.com>
11125
11126         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11127         connections
11128
11129         * dbus/dbus-address.c (create_entry): fix OOM handling when
11130         failing to alloc entry->method
11131
11132 2003-03-16  Havoc Pennington  <hp@pobox.com>
11133
11134         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11135         the watch
11136
11137         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11138         add some missing dbus_set_result
11139
11140         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11141         alloc the DBusMessageHandler
11142
11143         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11144         the transport here, since we call this from the finalizer; it
11145         resulted in a double-finalize.
11146
11147         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11148         where we tried to use transport->connection that was NULL,
11149         happened when transport was disconnected early on due to OOM
11150
11151         * bus/*.c: adapt to handle OOM for watches/timeouts
11152
11153         * dbus/dbus-transport-unix.c: port to handle OOM during
11154         watch handling
11155
11156         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11157         reference to unused bytes instead of a copy
11158
11159         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11160         out of memory
11161
11162         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11163         FALSE on OOM
11164
11165         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11166         of memory
11167
11168 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11169
11170         * doc/dbus-specification.sgml:
11171         Document reply message for ActivateService.
11172
11173 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11174
11175         * bus/activation.c: (bus_pending_activation_entry_free),
11176         (bus_pending_activation_free), (bus_activation_new),
11177         (bus_activation_unref), (bus_activation_service_created),
11178         (bus_activation_activate_service):
11179         * bus/activation.h:
11180         * bus/bus.c: (bus_context_new):
11181         * bus/desktop-file.c: (new_section):
11182         * bus/driver.c: (bus_driver_send_service_deleted),
11183         (bus_driver_handle_activate_service):
11184         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11185         * bus/services.h:
11186         * dbus/dbus-connection.c:
11187         (dbus_connection_send_with_reply_and_block):
11188         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11189         * dbus/dbus-protocol.h:
11190         Make activation work better. Now pending activations will be queued
11191         and the daemon won't try to activate services that are already registered.
11192
11193 2003-03-16  Havoc Pennington  <hp@pobox.com>
11194
11195         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11196         connection data
11197
11198         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11199         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11200
11201 2003-03-16  Havoc Pennington  <hp@pobox.com>
11202
11203         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11204         this. always run the test suite before commit...
11205
11206         * bus/*: adapt to DBusConnection API changes
11207
11208         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11209         requires renaming stuff to avoid dbus_connection_dispatch name
11210         conflict.
11211
11212         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11213         function
11214
11215         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11216         separate from _dbus_message_loader_return_buffer()
11217
11218         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11219         this, because it's now always broken to use; the number of
11220         messages in queue vs. the number still buffered by the message
11221         loader is undefined/meaningless. Should use
11222         dbus_connection_get_dispatch_state().
11223         (dbus_connection_dispatch): rename from
11224         dbus_connection_dispatch_message
11225
11226 2003-03-16  Havoc Pennington  <hp@pobox.com>
11227
11228         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11229         implementation
11230
11231 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11232
11233         * dbus/dbus-connection.c:
11234         (dbus_connection_send_with_reply_and_block):
11235         Decrease connection->n_incoming when removing an entry
11236         from the list.
11237         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11238         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11239         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11240         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11241         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11242         (dbus_dict_get_byte_array):
11243         Handle NULL arrays and strings. Also add support for byte arrays.
11244
11245         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11246         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11247         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11248         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11249         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11250         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11251         * dbus/dbus-marshal.h:
11252         Add support for marshalling and demarshalling empty arrays and strings.
11253
11254         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11255         (dbus_message_append_string_array),
11256         (dbus_message_iter_get_boolean),
11257         (dbus_message_iter_get_boolean_array),
11258         (dbus_message_iter_get_int32_array),
11259         (dbus_message_iter_get_uint32_array),
11260         (dbus_message_iter_get_double_array),
11261         (dbus_message_iter_get_byte_array),
11262         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11263         (check_message_handling):
11264         Add support for getting empty arrays and dicts.
11265
11266         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11267         Don't do any validation at all for now, that's better than just checking
11268         for ASCII.
11269
11270         * test/data/valid-messages/emptiness.message:
11271         New test message with lots of empty arrays.
11272
11273 2003-03-16  Havoc Pennington  <hp@pobox.com>
11274
11275         * dbus/dbus-connection.c
11276         (_dbus_connection_queue_received_message_link): new function that
11277         can't fail due to OOM
11278
11279         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11280         new function pops a message together with a list link
11281         containing it.
11282
11283         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11284         message queuing functions to avoid needing to alloc memory
11285
11286 2003-03-16  Havoc Pennington  <hp@pobox.com>
11287
11288         Oops - test code was only testing failure of around 30 of the
11289         mallocs in the test path, but it turns out there are 500+
11290         mallocs. I believe this was due to misguided linking setup such
11291         that there was one copy of dbus_malloc etc. in the daemon and one
11292         in the shared lib, and only daemon mallocs were tested. In any
11293         case, the test case now tests all 500+ mallocs, and doesn't pass
11294         yet, though there are lots of fixes in this patch.
11295
11296         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11297         this so that it doesn't need to allocate memory, since it
11298         has no way of indicating failure due to OOM (and would be
11299         annoying if it did).
11300
11301         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11302
11303         * bus/Makefile.am: rearrange to create two self-contained
11304         libraries, to avoid having libraries with overlapping symbols.
11305         that was resulting in weirdness, e.g. I'm pretty sure there
11306         were two copies of global static variables.
11307
11308         * dbus/dbus-internals.c: move the malloc debug stuff to
11309         dbus-memory.c
11310
11311         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11312         empty.
11313
11314         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11315
11316         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11317         on failure.
11318
11319         * bus/dispatch.c (bus_dispatch_add_connection): free
11320         message_handler_slot when no longer using it, so
11321         memory leak checkers are happy for the test suite.
11322
11323         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11324
11325         * bus/bus.c (new_connection_callback): disconnect in here if
11326         bus_connections_setup_connection fails.
11327
11328         * bus/connection.c (bus_connections_unref): fix to free the
11329         connections
11330         (bus_connections_setup_connection): if this fails, don't
11331         disconnect the connection, just be sure there are no side
11332         effects.
11333
11334         * dbus/dbus-string.c (undo_alignment): unbreak this
11335
11336         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11337         leaking
11338         (_dbus_auth_new): fix the order in which we free strings
11339         on OOM failure
11340
11341         * bus/connection.c (bus_connection_disconnected): fix to
11342         not send ServiceDeleted multiple times in case of memory
11343         allocation failure
11344
11345         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11346         get the base service name
11347         (dbus_bus_register_client): don't return base service name,
11348         instead store it on the DBusConnection and have an accessor
11349         function for it.
11350         (dbus_bus_register_client): rename dbus_bus_register()
11351
11352         * bus/dispatch.c (check_hello_message): verify that other
11353         connections on the bus also got the correct results, not
11354         just the one sending hello
11355
11356 2003-03-15  Havoc Pennington  <hp@pobox.com>
11357
11358         Make it pass the Hello handling test including all OOM codepaths.
11359         Now to do other messages...
11360
11361         * bus/services.c (bus_service_remove_owner): fix crash when
11362         removing owner from an empty list of owners
11363         (bus_registry_ensure): don't leave service in the list of
11364         a connection's owned services if we fail to put the service
11365         in the hash table.
11366
11367         * bus/connection.c (bus_connection_preallocate_oom_error): set
11368         error flag on the OOM error.
11369
11370         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11371         handle _dbus_transport_set_connection failure
11372
11373         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11374         to create watches up front and simply enable/disable them as
11375         needed.
11376         (unix_connection_set): this can now fail on OOM
11377
11378         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11379         of enabling/disabling a watch or timeout.
11380
11381         * bus/loop.c (bus_loop_iterate): don't touch disabled
11382         watches/timeouts
11383
11384         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11385
11386 2003-03-15  Havoc Pennington  <hp@pobox.com>
11387
11388         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11389         write useful test code, after all that futzing around ;-)
11390
11391         Test does not yet pass because we can't handle OOM in
11392         _dbus_transport_messages_pending (basically,
11393         dbus_connection_preallocate_send() does not prealloc the write
11394         watch). To fix this, I think we need to add new stuff to
11395         set_watch_functions, namely a SetEnabled function so we can alloc
11396         the watch earlier, then enable it later.
11397
11398         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11399         dbus-memory.c to the convenience lib
11400
11401         * bus/test.c: rename some static functions to keep them clearly
11402         distinct from stuff in connection.c. Handle client disconnection.
11403
11404 2003-03-14  Havoc Pennington  <hp@pobox.com>
11405
11406         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11407         transport, tests more of the real codepath. Set up clients
11408         with bus_setup_debug_client.
11409
11410         * bus/test.c (bus_setup_debug_client): function to set up debug
11411         "clients" on the main loop
11412
11413         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11414         support
11415
11416         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11417         server type
11418
11419         * dbus/dbus-server-debug.c: support a debug server based on pipes
11420
11421         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11422         (_dbus_close): new function
11423
11424         * configure.in: check for socketpair
11425
11426 2003-03-14  Havoc Pennington  <hp@redhat.com>
11427
11428         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11429         cheesy hack
11430
11431         * dbus/dbus-transport-debug.c: rework this a good bit to be
11432         less complicated. hopefully still works.
11433
11434         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11435         manually
11436
11437         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11438         after running it
11439
11440         * dbus/dbus-message.c (dbus_message_copy): rename from
11441         dbus_message_new_from_message, fix it up to copy
11442         all the message fields, add test case
11443
11444         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11445         not quite passing yet
11446
11447 2003-03-14  Havoc Pennington  <hp@pobox.com>
11448
11449         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11450         until no work remains" in test code. (the large diff here
11451         is just code movement, no actual changes)
11452
11453         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11454         1, no point waiting around for test code.
11455         (_dbus_server_debug_accept_transport): unref the timeout
11456         after adding it (right?)
11457
11458         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11459
11460 2003-03-13  Havoc Pennington  <hp@redhat.com>
11461
11462         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11463         out of memory
11464
11465         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11466         of memory
11467
11468         * dbus/dbus-connection.h: Make AddWatchFunction and
11469         AddTimeoutFunction return a bool so they can fail on out-of-memory
11470
11471         * bus/bus.c (bus_context_new): set up timeout handlers
11472
11473         * bus/connection.c (bus_connections_setup_connection): set up
11474         timeout handlers
11475
11476         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11477         can fail
11478
11479         * bus/bus.c (bus_context_new): adapt to changes
11480
11481         * bus/connection.c: adapt to changes
11482
11483         * test/watch.c: adapt to DBusWatch changes
11484
11485         * bus/dispatch.c (bus_dispatch_test): started adding this but
11486         didn't finish
11487
11488 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11489
11490         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11491
11492 2003-03-13  Havoc Pennington  <hp@pobox.com>
11493
11494         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11495         set up a test framework as for the library
11496
11497 2003-03-12  Havoc Pennington  <hp@pobox.com>
11498
11499         Throughout: purge global variables, introduce BusActivation,
11500         BusConnections, BusRegistry, etc. objects instead.
11501
11502         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11503         message bus object
11504
11505         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11506         going to redo this a bit differently I think
11507
11508 2003-03-12  Havoc Pennington  <hp@redhat.com>
11509
11510         Mega-patch that gets the message bus daemon initially handling
11511         out-of-memory. Work still needed. Also lots of random
11512         moving stuff to DBusError instead of ResultCode.
11513
11514         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11515
11516         * dbus/dbus-connection.c
11517         (dbus_connection_send_with_reply_and_block): use DBusError
11518
11519         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11520         DBusResultCode
11521
11522         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11523         code here, as the only failure possible is OOM.
11524
11525         * bus/connection.c (bus_connection_disconnect):
11526         rename bus_connection_disconnected as it's a notification only
11527
11528         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11529         "name" on get_args failure, should be done by get_args;
11530         don't disconnect client for bad args, just return an error.
11531         (bus_driver_handle_service_exists): ditto
11532
11533         * bus/services.c (bus_services_list): NULL-terminate returned array
11534
11535         * bus/driver.c (bus_driver_send_service_lost)
11536         (bus_driver_send_service_acquired): send messages from driver to a
11537         specific client to the client's unique name, not to the broadcast
11538         service.
11539
11540         * dbus/dbus-message.c (decode_header_data): reject messages that
11541         contain no name field
11542         (_dbus_message_get_client_serial): rename to
11543         dbus_message_get_serial and make public
11544         (_dbus_message_set_serial): rename from set_client_serial
11545         (_dbus_message_set_reply_serial): make public
11546         (_dbus_message_get_reply_serial): make public
11547
11548         * bus/connection.c (bus_connection_foreach): allow stopping
11549         iteration by returning FALSE from foreach function.
11550
11551         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11552         (dbus_connection_free_preallocated_send)
11553         (dbus_connection_preallocate_send): new API for sending a message
11554         without possibility of malloc failure.
11555         (dbus_connection_send_message): rename to just
11556         dbus_connection_send (and same for whole function family)
11557
11558         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11559
11560         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11561
11562         * bus/activation.c: handle/return errors
11563
11564         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11565
11566         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11567         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11568         (_dbus_result_from_errno): move to this file
11569
11570 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11571
11572         * dbus/dbus-marshal.c:
11573         (_dbus_marshal_set_string):
11574         Take a length argument so we can marshal the correct string
11575         length.
11576
11577         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11578         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11579         (_dbus_marshal_test):
11580         * dbus/dbus-marshal.h:
11581         Add support for marshalling and demarshalling dicts.
11582
11583         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11584         Add support for TYPE DICT.
11585
11586         * dbus/dbus-message.c: (set_string_field):
11587         Adjust header padding.
11588
11589         (dbus_message_append_args_valist), (dbus_message_append_dict),
11590         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11591         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11592         (check_message_handling), (check_have_valid_message):
11593         * dbus/dbus-message.h:
11594         Add functions for setting and getting dicts.
11595
11596         * dbus/dbus-protocol.h:
11597         Add DBUS_TYPE_DICT.
11598
11599         * dbus/dbus.h:
11600         Add dbus-dict.h
11601
11602         * doc/dbus-specification.sgml:
11603         Add information about how dicts are marshalled.
11604
11605         * test/data/invalid-messages/dict-with-nil-value.message:
11606         * test/data/invalid-messages/too-short-dict.message:
11607         * test/data/valid-messages/dict-simple.message:
11608         * test/data/valid-messages/dict.message:
11609         Add sample messages containing dicts.
11610
11611 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11612
11613         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11614
11615 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11616
11617         * dbus/Makefile.am:
11618         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11619         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11620         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11621         (dbus_dict_set_double), (dbus_dict_set_string),
11622         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11623         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11624         (dbus_dict_set_string_array), (_dbus_dict_test):
11625         * dbus/dbus-dict.h:
11626         Fix according to comments from Havoc.
11627
11628 2003-03-06  Michael Meeks  <michael@server.home>
11629
11630         * configure.in: if we don't have kde-config, disable have_qt.
11631
11632 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11633
11634         * dbus/Makefile.am:
11635         Add dbus-dict.[ch]
11636
11637         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11638         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11639         (dbus_dict_remove), (dbus_dict_get_value_type),
11640         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11641         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11642         (dbus_dict_put_double), (dbus_dict_put_string),
11643         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11644         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11645         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11646         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11647         (dbus_dict_get_double), (dbus_dict_get_string),
11648         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11649         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11650         (dbus_dict_get_string_array), (_dbus_dict_test):
11651         * dbus/dbus-dict.h:
11652         Add DBusDict implementation
11653
11654         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11655         * dbus/dbus-test.h:
11656         Add _dbus_dict_test
11657
11658 2003-03-04  Havoc Pennington  <hp@pobox.com>
11659
11660         * test/data/auth/*: adapt to changes
11661
11662         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11663         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11664         userid
11665
11666         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11667         more stuff from being in a context name, to make the protocol
11668         simpler to deal with
11669
11670         * dbus/dbus-errors.c (dbus_error_has_name): new function
11671         (dbus_error_is_set): new function
11672
11673         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11674         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11675
11676         * dbus/dbus-connection.c (dbus_connection_flush): also read
11677         messages during a flush operation
11678
11679         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11680
11681 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11682
11683         * configure.in: Check for gethostbyname on Solaris.
11684
11685         * dbus/dbus-transport.c: (_dbus_transport_open):
11686         Remove duplicate "tcp" entry.
11687
11688         * doc/dbus-specification.sgml:
11689         Clarify some things.
11690
11691 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11692
11693         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11694         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11695         (_dbus_keyring_test):
11696         * dbus/dbus-md5.c: (_dbus_md5_compute):
11697         * dbus/dbus-sha.c: (_dbus_sha_compute):
11698         Plug memory leaks.
11699
11700 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11701
11702         * README: Add some things.
11703
11704 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11705
11706         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11707         after case DBUS_TYPE_BOOELAN.
11708
11709 2003-03-02  Havoc Pennington  <hp@pobox.com>
11710
11711         * test/break-loader.c (randomly_set_extreme_ints): add test that
11712         sets really huge and small integers
11713
11714         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11715         that length of boolean array fits in the string, and that
11716         string has room for boolean value in single-bool case.
11717
11718         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11719         optional value to "ALIGN" command which is what to fill the
11720         alignment with.
11721
11722         * test/data/valid-messages/no-padding.message: add regression
11723         test for the message padding problem
11724
11725 2003-03-02  Havoc Pennington  <hp@pobox.com>
11726
11727         * dbus/dbus-message.c (decode_header_data): fix to always init
11728         message_padding, from Benjamin Dauvergne
11729
11730 2003-03-02  Havoc Pennington  <hp@pobox.com>
11731
11732         * configure.in: 0.5
11733
11734         * NEWS: Update.
11735
11736 2003-03-01  Joe Shaw  <joe@assbarn.com>
11737
11738         * configure.in: Check for "struct cmsgcred" and try to access its
11739         members for BSD-like unices.
11740
11741         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11742         _dbus_read_credentials_unix_socket().
11743         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11744         read() for reading the credential byte off the unix socket.  Use
11745         struct cmsgcred on systems that support it.
11746
11747 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11748
11749         * glib/Makefile.am:
11750         * configure.in:
11751         Make gthreads-2.0 dependency optional. Don't build thread test if
11752         its not found.
11753
11754 2003-02-27  Havoc Pennington  <hp@pobox.com>
11755
11756         * dbus/dbus-connection.c
11757         (dbus_connection_send_message_with_reply_and_block): fix doh!
11758         doh! doh! bug that resulted in never removing a reply from the
11759         queue, no wonder we called get_reply_serial so much ;-)
11760
11761         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11762         and client serial instead of demarshaling them every time
11763
11764 2003-02-27  Havoc Pennington  <hp@pobox.com>
11765
11766         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11767         more inlined, using dbus-string-private.h, speeds things up
11768         substantially
11769
11770         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11771         when freeing the string
11772         (_dbus_string_steal_data): fix for align offset
11773         (undo_alignment): new function
11774
11775 2003-02-26  Havoc Pennington  <hp@redhat.com>
11776
11777         All kinds of audit fixes from Owen, plus initial attempt to
11778         handle unaligned memory returned from malloc.
11779
11780         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11781         leave room for align_offset and nul byte
11782         (fixup_alignment): function to track an align_offset and
11783         ensure real->str is aligned
11784         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11785         to allow a nul byte plus align offset
11786         (_dbus_string_lock): fix overflow issue
11787         (_dbus_string_init_const_len): add assertions on sanity of len,
11788         assign allocated to be ALLOCATION_PADDING larger than len
11789         (set_length): fixup the overflow handling
11790         (_dbus_string_get_data_len): fix overflow in assertion
11791         (open_gap): detect overflow in size of gap to be opened
11792         (_dbus_string_lengthen): add overflow check
11793         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11794         (_dbus_string_append): add overflow check
11795         (_dbus_string_append_unichar): overflow
11796         (_dbus_string_delete): fix overflow in assertion
11797         (_dbus_string_copy_len): overflow in assertion
11798         (_dbus_string_replace_len): overflows in assertions
11799         (_dbus_string_find): change to implement in terms of
11800         _dbus_string_find_to
11801         (_dbus_string_find_to): assorted fixage
11802         (_dbus_string_equal_c_str): assert c_str != NULL,
11803         fix logic so the function works
11804         (_dbus_string_ends_with_c_str): fix overflow thingy
11805         (_dbus_string_base64_encode): overflow fix
11806         (_dbus_string_validate_ascii): overflow
11807         (_dbus_string_validate_nul): overflow
11808
11809 2003-02-26  Havoc Pennington  <hp@redhat.com>
11810
11811         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11812
11813 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11814
11815         * configure.in:
11816         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11817
11818         * dbus/dbus-connection.c:
11819         * dbus/dbus-connection.h:
11820         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11821         Add dbus_connection_set_wakeup_main_function and use it when queueing
11822         incoming and outgoing messages.
11823
11824
11825         * dbus/dbus-dataslot.c:
11826         Threadsafe usage of DBusDataSlotAllocator
11827
11828         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11829         dbus_new can fail.
11830
11831         * dbus/dbus-server-unix.c:
11832         Add todo comment
11833
11834         * glib/dbus-gmain.c:
11835         Implement the new wakeup functions for glib.
11836
11837         * glib/Makefile.am:
11838         * glib/test-thread-client.c:
11839         * glib/test-thread-server.c:
11840         * glib/test-thread.h:
11841         Initial cut at some thread test code. Not really done yet.
11842
11843 2003-02-26  Havoc Pennington  <hp@pobox.com>
11844
11845         * dbus/dbus-connection.c
11846         (dbus_connection_send_message_with_reply_and_block): fix crash
11847         where we ref'd the outgoing message instead of the returned reply
11848
11849         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11850         at the end of this function, so if we didn't need to read for
11851         authentication, we reinstall it for receiving messages
11852
11853         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11854         a NULL sender for peer-to-peer case
11855
11856         * dbus/dbus-transport-unix.c (check_read_watch): handle
11857         !authenticated case correctly
11858
11859         * glib/dbus-gmain.c: add support for DBusServer
11860
11861         * dbus/dbus-server.c: add data slot support
11862
11863         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11864         return values and handle errors
11865
11866         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11867         DBusConnection
11868
11869         * Doxyfile.in (INPUT): add glib subdir
11870
11871         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11872         setup_with_g_main instead of hookup_with_g_main; write docs
11873
11874 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11875
11876         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11877         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11878         * dbus/dbus-message.c: (dbus_message_append_boolean),
11879         (dbus_message_append_boolean_array),
11880         (dbus_message_get_args_valist), (_dbus_message_test):
11881         * dbus/dbus-message.h:
11882         * doc/dbus-specification.sgml:
11883         Various fixes as pointed out by Havoc.
11884
11885         * test/data/invalid-messages/bad-boolean-array.message:
11886         * test/data/invalid-messages/bad-boolean.message:
11887         Add invalid boolean value test cases.
11888
11889 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11890
11891         * dbus/dbus-internals.c: (_dbus_type_to_string):
11892         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11893         (_dbus_marshal_validate_arg):
11894         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11895         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11896         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11897         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11898         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11899         (dbus_message_iter_get_double),
11900         (dbus_message_iter_get_boolean_array), (message_iter_test):
11901         * dbus/dbus-message.h:
11902         * dbus/dbus-protocol.h:
11903         * doc/dbus-specification.sgml:
11904         * test/data/valid-messages/lots-of-arguments.message:
11905         Add support for boolean and boolean array types.
11906
11907 2003-02-23  Havoc Pennington  <hp@pobox.com>
11908
11909         * dbus/dbus-keyring.c: finish most of this implementation and
11910         simple unit test
11911
11912         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11913         these barf if the error isn't cleared to NULL
11914
11915         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11916         (_dbus_create_directory): new function
11917
11918         * dbus/dbus-errors.c (dbus_set_error): fix warning
11919
11920         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11921         (_dbus_string_hex_decode): new function
11922         (test_hex_roundtrip): test code
11923
11924         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11925
11926         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11927
11928         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11929         the save-to-temp/rename trick to atomically write the new file
11930         (_dbus_string_parse_uint): new function
11931
11932 2003-02-22  Havoc Pennington  <hp@pobox.com>
11933
11934         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11935
11936 2003-02-22  Havoc Pennington  <hp@pobox.com>
11937
11938         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11939         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11940
11941         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11942
11943         * dbus/test/data/sha-1: add US government test suite for SHA-1
11944
11945 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11946
11947         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11948         Make string arrays NULL-terminated.
11949
11950         * dbus/dbus-memory.c: (dbus_free_string_array):
11951         * dbus/dbus-memory.h:
11952         New function for freeing NULL-terminated string arrays.
11953
11954         * dbus/dbus-message-builder.c: (append_quoted_string),
11955         (_dbus_message_data_load):
11956         Add support for array types.
11957
11958         * dbus/dbus-message.c: (check_message_handling):
11959         Add more types as test cases.
11960
11961         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11962         (_dbus_string_parse_double):
11963         Add the start offset to the end offset.
11964
11965         * test/data/valid-messages/lots-of-arguments.message:
11966         New test message with lots of arguments.
11967
11968 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11969
11970         * dbus/dbus-message.c: (dbus_message_append_nil),
11971         (dbus_message_append_int32), (dbus_message_append_uint32),
11972         (dbus_message_append_double), (dbus_message_append_string),
11973         (dbus_message_append_int32_array),
11974         (dbus_message_append_uint32_array),
11975         (dbus_message_append_double_array),
11976         (dbus_message_append_byte_array),
11977         (dbus_message_append_string_array):
11978         Fix all out-of-memory handling in these functions.
11979
11980 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11981
11982         * dbus/dbus-message.c: (dbus_message_append_nil):
11983         Fix a silly.
11984
11985 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11986
11987         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11988         (dbus_message_append_nil), (dbus_message_append_int32_array),
11989         (dbus_message_append_uint32_array),
11990         (dbus_message_append_double_array),
11991         (dbus_message_append_byte_array),
11992         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11993         (dbus_message_iter_get_int32_array),
11994         (dbus_message_iter_get_uint32_array),
11995         (dbus_message_iter_get_double_array),
11996         (dbus_message_iter_get_byte_array),
11997         (dbus_message_iter_get_string_array):
11998
11999         * dbus/dbus-message.h:
12000         Add functions for appending and getting arrays.
12001
12002 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12003
12004         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12005         element size at least 8 bytes, fixes mempool tests on
12006         64-bit machines.
12007
12008 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12009
12010         * dbus/dbus-transport-unix.c (unix_do_iteration):
12011         Unlock the connection mutex during a blocking select call.
12012         Add todo about how we need a way to wake up the select.
12013
12014         * dbus/dbus-connection-internal.h:
12015         * dbus/dbus-connection.c:
12016         Add _dbus_connection_lock and _dbus_connection_unlock.
12017
12018 2003-02-19  Havoc Pennington  <hp@pobox.com>
12019
12020         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12021         Doxyfile.in, not Doxyfile
12022
12023         * dbus/dbus-keyring.c: do some hacking on this
12024
12025         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12026
12027         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12028         dbus_error_init
12029         (dbus_set_error): remove dbus_error_init, check for message ==
12030         NULL *before* we sprintf into it, and add @todo about including
12031         system headers in this file
12032
12033         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12034
12035         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12036
12037         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12038         get various bits of user information based on either username
12039         or user ID
12040         (_dbus_homedir_from_username): new function
12041
12042 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12043
12044         * configure.in:
12045         Add check for nonposix getpwnam_r
12046
12047         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12048         Align the pool element size to a sizeof (void *) boundary.
12049
12050         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12051         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12052         General Solaris fixes.
12053
12054         * test/data/valid-messages/simplest-manual.message:
12055         Explicitly state that we want little-endian packing.
12056
12057 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12058
12059         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12060
12061         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12062         Added to create a transport connecting using a tcp/ip socket.
12063
12064         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12065         to a tcp socket at given host and port.
12066         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12067         hostname and port.
12068
12069         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12070
12071         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12072         Added to create a server listening on a TCP/IP socket.
12073
12074 2003-02-19  Havoc Pennington  <hp@pobox.com>
12075
12076         Throughout: mop up all the Doxygen warnings and undocumented
12077         stuff.
12078
12079         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12080         to search any paths.
12081
12082         * dbus/dbus-threads.c: move global mutex initializers to
12083         dbus-internals.h, multiple prototypes was confusing doxygen
12084         besides being kind of ugly
12085
12086         * Doxyfile (PREDEFINED): have Doxygen define
12087         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12088         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12089         (do not abuse the feature! it's for stuff like the autogenerated
12090         macros in dbus-md5.c, not just for things you don't feel like
12091         documenting...)
12092
12093 2003-02-18  Havoc Pennington  <hp@pobox.com>
12094
12095         * dbus/dbus-string.c (_dbus_string_zero): new function
12096
12097         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12098         wrap it in some dbus-friendly API
12099
12100         * dbus/dbus-types.h: add 16-bit types
12101
12102 2003-02-18  Joe Shaw  <joe@assbarn.com>
12103
12104         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12105         credentials from our currently running process.
12106         (get_word): Fix a buglet where we were copying the entire length
12107         instead of relative to our position.
12108
12109         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12110         keys on the stack... it's 640k of data.
12111
12112         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12113         read the credentials byte off the socket, even if we don't have
12114         SO_PEERCRED.
12115         (_dbus_poll): Implement poll() using select() for systems which
12116         don't have it.
12117
12118         * glib/test-dbus-glib.c (main): Print out an error if no
12119         parameters are given.
12120
12121         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12122         can fallback to a secondary auth mechanism if the first fails.
12123
12124 2003-02-18  Havoc Pennington  <hp@pobox.com>
12125
12126         * AUTHORS: add Alex
12127
12128 2003-02-17  Havoc Pennington  <hp@pobox.com>
12129
12130         * doc/dbus-specification.sgml: lots of cosmetic
12131         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12132         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12133         s/server/bus/ (except in authentication section). Add a section
12134         "Message Bus Message Routing"
12135
12136 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12137
12138         Release 0.4
12139
12140         * NEWS: Update
12141
12142 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12143
12144         * doc/dbus-specification.sgml:
12145         Specification updates.
12146
12147 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12148
12149         * bus/activation.c: (bus_activation_init), (child_setup),
12150         (bus_activation_activate_service):
12151         * bus/activation.h:
12152         * bus/main.c: (main):
12153         Set DBUS_ADDRESS environment variable.
12154
12155         * dbus/dbus-errors.c: (dbus_set_error):
12156         Don't use va_copy since that's a C99 feature.
12157
12158         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12159         (_dbus_spawn_async):
12160         * dbus/dbus-sysdeps.h:
12161         Add child_setup_func to _dbus_spawn_async.
12162
12163         * doc/dbus-specification.sgml:
12164         Update specification.
12165
12166         * test/spawn-test.c: (setup_func), (main):
12167         Fix test.
12168
12169 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12170
12171         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12172         Added todo.
12173
12174 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12175
12176         * doc/.cvsignore:
12177         * doc/Makefile.am:
12178         * doc/dbus-test-plan.sgml:
12179         Add test plan document.
12180
12181         * test/Makefile.am:
12182         Fix distcheck.
12183
12184 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12185
12186         * dbus/dbus-message.c: (decode_header_data),
12187         (_dbus_message_loader_return_buffer):
12188         Set the header padding amount when loading a message.
12189
12190 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12191
12192         * bus/dispatch.c: (send_one_message):
12193         Only send broadcast messages to registered connections.
12194
12195         * dbus/dbus-message.c: (dbus_message_name_is):
12196         * dbus/dbus-message.h:
12197         New convenience function.
12198
12199         * dbus/dbus-transport-debug.c: (do_reading):
12200         Only dispatch one message per run.
12201
12202         * test/Makefile.am:
12203         * test/bus-test.c: (new_connection_callback), (die),
12204         (test_hello_client1_handler), (test_hello_client2_handler),
12205         (test_hello_replies), (main):
12206
12207         * test/bus-test-loop.[ch]:
12208         Add these.
12209
12210 2003-02-16  Havoc Pennington  <hp@pobox.com>
12211
12212         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12213         backward conditional
12214
12215 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12216
12217         * dbus/dbus-connection.c:
12218         Implement sent_message_with_reply. (with_reply_and block is still
12219         busted).
12220         Made dispatch_message not lose message if OOM.
12221
12222         * dbus/dbus-errors.h:
12223         Add NoReply error (for reply timeouts).
12224
12225 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12226
12227         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12228         Actually free keys and values when destroying hashtable.
12229
12230 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * dbus/dbus-auth.c: (client_try_next_mechanism):
12233         Plug a leak.
12234
12235         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12236         Return TRUE if there's no thread implementation around.
12237
12238         * glib/dbus-gmain.c: (free_source),
12239         (dbus_connection_hookup_with_g_main):
12240         Make sure to remove the GSource when the connection is finalized.
12241
12242 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12243
12244         * bus/dispatch.c: (bus_dispatch_message_handler):
12245         * dbus/dbus-errors.h:
12246         Return an error if someone tries to send a message to a service
12247         that doesn't exist.
12248
12249 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12250
12251         * bus/activation.c: (load_directory), (bus_activation_init),
12252         (bus_activation_activate_service):
12253         * bus/activation.h:
12254         * bus/driver.c:
12255         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12256         More work on the activation handling.
12257
12258         * dbus/dbus-errors.h:
12259         Add some error messages
12260
12261         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12262         * dbus/dbus-message.h:
12263         New function that creates an error message.
12264
12265         * dbus/dbus-protocol.h:
12266         Add ACTIVATE_SERVER message.
12267
12268         * dbus/dbus-server-unix.c: (unix_handle_watch),
12269         (_dbus_server_new_for_domain_socket):
12270         Call _dbus_fd_set_close_on_exec.
12271
12272         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12273         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12274         (_dbus_fd_set_close_on_exec):
12275         * dbus/dbus-sysdeps.h:
12276         Add _dbus_fd_set_close_on exec function. Also add function that checks
12277         that all open fds are set to close-on-exec and warns otherwise.
12278
12279         * dbus/dbus-transport-unix.c:
12280         (_dbus_transport_new_for_domain_socket):
12281         Call _dbus_fd_set_close_on_exec.
12282
12283 2003-02-16  Havoc Pennington  <hp@pobox.com>
12284
12285         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12286         allow people to avoid setting SIGPIPE to SIG_IGN
12287         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12288         we've been asked not to
12289
12290 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12291
12292         * dbus/dbus-list.c: (_dbus_list_append_link),
12293         (_dbus_list_prepend_link):
12294         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12295         (dbus_realloc):
12296         Warning fixes.
12297
12298 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * bus/Makefile.am:
12301         * bus/activation.c: (bus_activation_entry_free),
12302         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12303         * bus/activation.h:
12304         * bus/main.c: (main):
12305         Add simple activation support, doesn't work yet though.
12306
12307 2003-02-15   Zack Rusin  <zack@kde.org>
12308
12309         * qt/dbus-qthread.cpp:  small casting fix
12310
12311 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12312
12313         * dbus/dbus-errors.c: (dbus_set_error):
12314         * dbus/dbus-errors.h:
12315         Add a few errors and make dbus_set_error void.
12316
12317         * dbus/dbus-sysdeps.c:
12318         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12319         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12320         * dbus/dbus-sysdeps.h:
12321         Add _dbus_spawn_async.
12322
12323         * test/spawn-test.c: (main):
12324         Test for _dbus_spawn_async.
12325
12326 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12327
12328         * dbus/dbus-internals.h:
12329         Fix build without tests.
12330
12331         * dbus/dbus-list.c: (alloc_link):
12332         Fix a segfault when a malloc fails.
12333
12334         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12335         (dbus_malloc0), (dbus_realloc):
12336         Add support for malloc debugging.
12337
12338 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12339
12340         * dbus/dbus-threads.c:
12341         * dbus/dbus-threads.h:
12342         Add condvars. Remove static mutext from API.
12343         Implement static mutexes by initializing them from threads_init.
12344
12345         * glib/dbus-gthread.c:
12346         * qt/dbus-qthread.cpp:
12347         Update with the thread api changes.
12348
12349
12350         * dbus/dbus-list.c:
12351         * dbus/dbus-list.h:
12352         Turn StaticMutex into normal mutex + init function.
12353         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12354         _dbus_list_append_link, _dbus_list_prepend_link
12355
12356
12357         * dbus/dbus-sysdeps.c:
12358         * dbus/dbus-sysdeps.h:
12359         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12360         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12361
12362         * dbus/dbus-protocol.h:
12363         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12364
12365         * dbus/dbus-message.c:
12366         Make ref/unref atomic.
12367         Fix some docs.
12368
12369         * dbus/dbus-connection-internal.h:
12370         * dbus/dbus-connection.c:
12371         * dbus/dbus-connection.h:
12372         Make threadsafe.
12373         Change _peek to _borrow,_return & _steal_borrowed.
12374         Change disconnect callback to event.
12375         Make dbus_connection_dispatch_messages reentrant.
12376
12377         * dbus/dbus-transport.c:
12378         Don't ref the connection on calls to the transport
12379         implementation.
12380
12381         * dbus/dbus-message-handler.c:
12382         Make threadsafe.
12383
12384         * glib/dbus-gmain.c:
12385         Don't use peek_message anymore
12386
12387         * test/Makefile.am:
12388         * test/debug-thread.c:
12389         * test/debug-thread.h:
12390         Simple thread implementation that asserts() on deadlocks in
12391         single-threaded code.
12392
12393         * test/bus-test.c:
12394         (main) Call debug_threads_init.
12395
12396         * test/watch.c:
12397         Use disconnect message instead of disconnect callback.
12398
12399         * bus/connection.c:
12400         * bus/connection.h:
12401         Don't call dbus_connection_set_disconnect_function. Instead export
12402         bus_connection_disconnect.
12403
12404         * bus/dispatch.c:
12405         Call bus_connection_disconnect when we get a disconnected message.
12406
12407 2003-02-15  Havoc Pennington  <hp@pobox.com>
12408
12409         * dbus/dbus-message.c (dbus_message_new): fool around with the
12410         docs
12411
12412 2003-02-14  Havoc Pennington  <hp@pobox.com>
12413
12414         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12415
12416         * dbus/dbus-memory.c: fail if the debug functions indicate we
12417         should
12418
12419         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12420         (_dbus_decrement_fail_alloc_counter): debug functions to
12421         simulate memory allocation failures
12422
12423 2003-02-14  Havoc Pennington  <hp@pobox.com>
12424
12425         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12426         to DBusError
12427
12428 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12429
12430         * bus/driver.c: (bus_driver_handle_hello):
12431         * bus/driver.h:
12432         * bus/services.c: (bus_service_lookup):
12433         Reorder message sending so we get a more sane order.
12434
12435         * test/bus-test.c: (message_handler):
12436         Fix tyop.
12437
12438 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12439
12440         * bus/driver.c: (bus_driver_send_service_deleted),
12441         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12442         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12443         (bus_driver_send_welcome_message),
12444         (bus_driver_handle_list_services),
12445         (bus_driver_handle_acquire_service),
12446         (bus_driver_handle_service_exists):
12447         * dbus/dbus-bus.c: (dbus_bus_register_client),
12448         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12449         * dbus/dbus-errors.c: (dbus_result_to_string):
12450         * dbus/dbus-errors.h:
12451         * dbus/dbus-message.c: (dbus_message_append_args),
12452         (dbus_message_append_args_valist), (dbus_message_get_args),
12453         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12454         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12455         (dbus_message_iter_get_byte_array),
12456         (dbus_message_iter_get_string_array), (message_iter_test),
12457         (check_message_handling), (_dbus_message_test):
12458         * dbus/dbus-message.h:
12459         * test/bus-test.c: (main):
12460         Change fields to arguments in messages, so that they won't be
12461         confused with header fields.
12462
12463         * glib/test-dbus-glib.c: (main):
12464         Remove append_fields from hello message.
12465
12466 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * dbus/dbus-errors.c:
12469         * dbus/dbus-message.c:
12470         * dbus/dbus-string.c:
12471         Documentation fixes.
12472
12473 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12474
12475         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12476         (remove_timeout):
12477         Implement support for timeouts in dbus-glib.
12478
12479 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12480
12481         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12482         * dbus/dbus-message.c: (process_test_subdir):
12483         * test/break-loader.c: (find_breaks_based_on):
12484         Plug some memory leaks.
12485
12486 2003-02-13  Richard Hult  <rhult@codefactory.se>
12487
12488         * bus/main.c: Fix build.
12489
12490         * dbus/dbus-errors.h:
12491         * dbus/dbus-errors.c: Fix copyright for Anders.
12492
12493 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12494
12495         * bus/Makefile.am:
12496         Add utils.[ch]
12497
12498         * bus/connection.c: (bus_connection_foreach):
12499         Fix a warning.
12500
12501         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12502         (unescape_string), (new_section), (parse_section_start),
12503         (parse_key_value), (report_error), (bus_desktop_file_load),
12504         (bus_desktop_file_get_string):
12505         * bus/desktop-file.h:
12506         Use DBusError for error reporting.
12507
12508         * bus/dispatch.c: (send_one_message),
12509         (bus_dispatch_message_handler):
12510         * bus/driver.c: (bus_driver_send_service_deleted),
12511         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12512         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12513         (bus_driver_send_welcome_message),
12514         (bus_driver_handle_list_services),
12515         (bus_driver_handle_acquire_service),
12516         (bus_driver_handle_service_exists):
12517         * bus/loop.c: (bus_loop_run):
12518         * bus/main.c:
12519         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12520
12521         * bus/utils.c: (bus_wait_for_memory):
12522         * bus/utils.h:
12523         New files with general utility functions.
12524
12525         * dbus/dbus-internals.h:
12526         Remove _DBUS_HANDLE_OOM.
12527
12528 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12529
12530         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12531         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12532         * dbus/dbus-errors.h:
12533         Add DBusError structure.
12534
12535 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12536
12537         * test/data/valid-messages/standard-acquire-service.message:
12538         * test/data/valid-messages/standard-hello.message:
12539         * test/data/valid-messages/standard-list-services.message:
12540         * test/data/valid-messages/standard-service-exists.message:
12541         Add some standard messages.
12542
12543 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12544
12545         * bus/driver.c: (bus_driver_send_welcome_message),
12546         (bus_driver_handle_list_services),
12547         (bus_driver_handle_acquire_service),
12548         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12549         Update for API changes in libdbus.
12550
12551         * dbus/dbus-message.c: (dbus_message_new_reply):
12552         * dbus/dbus-message.h:
12553         Remove the name argument. The spec states that replies shouldn't
12554         have a name.
12555
12556 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12557
12558         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12559         (report_error), (bus_desktop_file_load), (lookup_section),
12560         (lookup_line), (bus_desktop_file_get_raw),
12561         (bus_desktop_file_get_string):
12562         * bus/desktop-file.h:
12563         Some fixes, and new functions for getting a key value from a section.
12564
12565 2003-02-13  Havoc Pennington  <hp@pobox.com>
12566
12567         * test/data/auth/fail-after-n-attempts.auth-script: new test
12568
12569         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12570         reject the client.
12571
12572 2003-02-13  Havoc Pennington  <hp@pobox.com>
12573
12574         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12575         dbus_credentials_match were backward
12576
12577         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12578         NO_CREDENTIALS and ROOT_CREDENTIALS
12579
12580         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12581         into here. Never process more commands after we've reached an
12582         end state; store further data as unused bytes.
12583
12584         * test/data/auth/*: add more auth tests
12585
12586         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12587         command to match exact string and EXPECT_UNUSED to match unused
12588         bytes
12589
12590         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12591
12592 2003-02-12  Havoc Pennington  <hp@pobox.com>
12593
12594         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12595         \r off of popped lines
12596
12597         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12598         scripts
12599
12600         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12601         SEND, append \r\n
12602
12603 2003-02-12  Havoc Pennington  <hp@pobox.com>
12604
12605         * dbus/Makefile.am: remove break-loader from the build, since it
12606         moved.
12607
12608         * configure.in: add --enable-gcov to turn on coverage profiling
12609         flags and disable optimization
12610
12611 2003-02-10  Havoc Pennington  <hp@pobox.com>
12612
12613         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12614         initial cut at test framework for DBusAuth from laptop.
12615         Doesn't quite work yet but it compiles and I need to get
12616         it off the 266mhz laptop. ;-)
12617
12618         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12619         fix a memleak in error case
12620
12621 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12622
12623         * bus/Makefile.am:
12624         * bus/desktop-file.c:
12625         * bus/desktop-file.h:
12626         Add a desktop file parser.
12627
12628 2003-02-11  Zack Rusin  <zack@kde.org>
12629
12630         * qt/message.[h|cpp]: sample implementation
12631         of the KDE wrapper for DBusMessage
12632
12633 2003-02-09  Zack Rusin  <zack@kde.org>
12634
12635         * test/bus-test.c: make_it_compile
12636         * doc/dbus-specification.sgml: minimal semantic fix
12637
12638 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12639
12640         Release 0.3
12641
12642         * NEWS: Update
12643
12644 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12645
12646         * dbus/Makefile.am:
12647         * dbus/dbus-break-loader.c:
12648         * test/Makefile.am:
12649         * test/break-loader.c:
12650         Move dbus-break-loader to test/ and rename it to break-loader.
12651
12652 2003-02-02  Havoc Pennington  <hp@pobox.com>
12653
12654         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12655         for code to manage cookies in your home directory
12656
12657         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12658
12659         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12660         to authenticate, then disconnect the client.
12661
12662 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12663
12664         * dbus/dbus-message.c (dbus_message_append_fields):
12665         Correct docs.
12666
12667 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12668
12669         * doc/dbus-specification.sgml:
12670         Update address format section.
12671
12672 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * test/Makefile.am:
12675         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12676         (message_handler), (new_connection_callback), (loop_quit),
12677         (loop_run), (main):
12678         Add bus test.
12679
12680 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12681
12682         * bus/driver.c: (bus_driver_handle_service_exists):
12683         Simplify the code a bit.
12684
12685         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12686         Fix a silly.
12687
12688 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12689
12690         * bus/Makefile.am:
12691         Add libdbus-daemon.la and link to it.
12692
12693 2003-02-01  James Willcox  <jwillcox@gnome.org>
12694
12695         * bus/driver.c: (bus_driver_handle_own_service):
12696         Actually include the service reply code in the message.
12697
12698 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12699
12700         * bus/driver.c: (bus_driver_handle_service_exists):
12701         Don't unref the incoming message.
12702
12703 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12704
12705         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12706
12707 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12708
12709         * dbus/dbus-server.c: (dbus_server_listen):
12710         * dbus/dbus-transport.c: (_dbus_transport_open):
12711         ifdef out the calls to the debug transport and server.
12712
12713 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12714
12715         * dbus/dbus-watch.c (dbus_watch_get_flags):
12716         Add note in the docs that ERROR or HANGUP won't be returned
12717         and are assumed always on.
12718
12719         * glib/dbus-gmain.c (add_watch):
12720         Always add IO_ERR | IO_HUP
12721
12722         * dbus/dbus-message.h:
12723         Add semicolon after dbus_message_iter_get_string_array().
12724         Makes qt code build again
12725
12726 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12727
12728         * bus/driver.c: (create_unique_client_name),
12729         (bus_driver_handle_hello):
12730         Don't take a name, just use a numeric id to identify
12731         each client.
12732
12733         * dbus/Makefile.am:
12734         * dbus/dbus-bus.c: (dbus_bus_register_client),
12735         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12736         * dbus/dbus-bus.h:
12737         Add new convenience functions for communicating with the bus.
12738
12739         * dbus/dbus-message.h:
12740
12741         * dbus/dbus-protocol.h:
12742         Fix a typo.
12743
12744 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12745
12746         * dbus/dbus-message.c (dbus_message_append_fields):
12747         Add some more doc comments.
12748
12749 2003-02-01  Havoc Pennington  <hp@pobox.com>
12750
12751         * dbus/dbus-break-loader.c (randomly_modify_length): change
12752         a 4-byte value in the message as if it were a length
12753
12754         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12755         execute bit on saved files
12756
12757 2003-02-01  Havoc Pennington  <hp@pobox.com>
12758
12759         * dbus/dbus-break-loader.c (main): new program to find messages
12760         that break the loader.
12761
12762         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12763         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12764
12765         * dbus/dbus-string.c (_dbus_string_set_byte): new
12766
12767 2003-01-31  Havoc Pennington  <hp@pobox.com>
12768
12769         * dbus/dbus-message.c: refactor the test code to be more general,
12770         in preparation for writing a "randomly permute test cases to
12771         try to break the loader" program.
12772
12773 2003-01-31  Havoc Pennington  <hp@pobox.com>
12774
12775         * doc/dbus-specification.sgml: work on the specification
12776
12777         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12778         the protocol version of the message.
12779
12780         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12781         no longer specifies that.
12782         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12783         1/2/3/4)
12784
12785         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12786         "break" for DBUS_TYPE_NIL, remove @todo
12787
12788 2003-01-31  Havoc Pennington  <hp@pobox.com>
12789
12790         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12791         just set_is_error/get_is_error as this is a commonly-used
12792         function, and write docs.
12793
12794 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12795
12796         * dbus/dbus-address.c: (dbus_address_entry_free):
12797         Free key and value lists.
12798
12799         * dbus/dbus-internals.c: (_dbus_type_to_string):
12800         Add the types we didn't have.
12801
12802         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12803         (_dbus_marshal_validate_arg):
12804         Add NIL types.
12805
12806         * dbus/dbus-message.c: (dbus_message_set_sender):
12807         Remove todo about being able to set sender to NULL.
12808
12809         (dbus_message_set_is_error_reply),
12810         (dbus_message_get_is_error_reply):
12811         * dbus/dbus-message.h:
12812         New functions.
12813
12814         * dbus/dbus-protocol.h:
12815         Add error reply flag.
12816
12817         * test/data/valid-messages/opposite-endian.message:
12818         Add NIL type to test.
12819
12820 2003-01-31  Havoc Pennington  <hp@pobox.com>
12821
12822         * doc/dbus-specification.sgml: fully specify the header.  Add
12823         flags and major protocol version, and change header/body len to
12824         unsigned.
12825
12826         * dbus/dbus-message-builder.c (append_saved_length): append length
12827         as uint32
12828
12829         * dbus/dbus-message.c (dbus_message_create_header): change header
12830         length and body length to unsigned. Add the new fields from the
12831         spec
12832         (_dbus_message_loader_return_buffer): unsigned header/body len
12833
12834 2003-01-30  Havoc Pennington  <hp@pobox.com>
12835
12836         * dbus/dbus-auth.c: rework to use only REJECTED, no
12837         MECHANISMS
12838
12839         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12840         use REJECTED, suggested by Mark McLoughlin
12841
12842 2003-01-30  Havoc Pennington  <hp@pobox.com>
12843
12844         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12845         a better way to report errors here. e.g.  "unix address lacks
12846         path" or something. also "no such file" when the path doesn't
12847         exist, etc.
12848
12849         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12850         leaking list nodes
12851         (dbus_parse_address): add @todo about documenting address format,
12852         and allowing , and ; to be escaped
12853
12854 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12855
12856         * dbus/Makefile.am:
12857         Add dbus-address.[ch]
12858
12859         * dbus/dbus-address.c: (dbus_address_entry_free),
12860         (dbus_address_entries_free), (create_entry),
12861         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12862         (dbus_parse_address), (_dbus_address_test):
12863         * dbus/dbus-address.h:
12864         New files for dealing with address parsing.
12865
12866         * dbus/dbus-connection.c:
12867         Document timeout functions.
12868
12869         * dbus/dbus-message.c:
12870         Document dbus_message_new_from_message.
12871
12872         * dbus/dbus-server-debug.c:
12873         Document.
12874
12875         * dbus/dbus-server.c: (dbus_server_listen):
12876         Parse address and use correct server implementation.
12877
12878         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12879         * dbus/dbus-string.h:
12880         New function with test.
12881
12882         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12883         * dbus/dbus-test.h:
12884         Add address tests.
12885
12886         * dbus/dbus-transport-debug.c:
12887         Document.
12888
12889         * dbus/dbus-transport.c: (_dbus_transport_open):
12890         Parse address and use correct transport implementation.
12891
12892 2003-01-30  Havoc Pennington  <hp@pobox.com>
12893
12894         * dbus/dbus-message.c: use message->byte_order instead of
12895         DBUS_COMPILER_BYTE_ORDER throughout.
12896         (dbus_message_create_header): pad header to align the
12897         start of the body of the message to 8-byte boundary
12898
12899         * dbus/dbus-marshal.h: make all the demarshalers take const
12900         DBusString arguments.
12901
12902         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12903         validate message args here, so we don't have to do slow validation
12904         later, and so we catch bad messages as they are incoming. Also add
12905         better checks on header_len and body_len. Also fill in
12906         message->byte_order
12907
12908         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12909         implemented properly)
12910         (_dbus_string_validate_nul): new function to check all-nul
12911
12912         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12913         get_arg_end_pos and remove all validation
12914         (_dbus_marshal_validate_arg): actually do validation here.
12915
12916 2003-01-29  Havoc Pennington  <hp@pobox.com>
12917
12918         * dbus/dbus-message.c (check_message_handling): fix assertion
12919         failure on set_client_serial
12920
12921 2003-01-28  Havoc Pennington  <hp@pobox.com>
12922
12923         * dbus/dbus-server-debug.c: Add doc section comments
12924
12925         * dbus/dbus-transport-debug.c: add doc section comments
12926
12927 2003-01-28  Havoc Pennington  <hp@redhat.com>
12928
12929         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12930         the reverse order from how I had it
12931         (_dbus_string_base64_encode): reverse encoding order. I was
12932         basically byteswapping everything during encoding.
12933
12934 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12935
12936         * dbus/dbus-connection-internal.h:
12937         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12938         (_dbus_connection_remove_timeout):
12939         Add functions for adding and removing timeouts.
12940
12941         * dbus/dbus-message.c: (dbus_message_new_from_message):
12942         Add new function that takes a message and creates an exact
12943         copy of it, but with the refcount set to 1.
12944         (check_message_handling):
12945         Fix build error.
12946
12947         * dbus/dbus-server-protected.h:
12948         * dbus/dbus-server.c: (_dbus_server_init_base),
12949         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12950         (dbus_server_set_timeout_functions):
12951         (_dbus_server_remove_timeout):
12952         New functions so that a server can add and remove timeouts.
12953
12954         (dbus_server_listen):
12955         Add commented out call to dbus_server_debug_new.
12956
12957         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12958         Actually set the handler, doh.
12959
12960         * dbus/dbus-transport.c: (_dbus_transport_open):
12961         Add commented out call to dbus_transport_debug_client_new.
12962
12963         * dbus/Makefile.am:
12964         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12965
12966 2003-01-28  Havoc Pennington  <hp@pobox.com>
12967
12968         * dbus/dbus-message.c (check_message_handling): function to check
12969         on the loaded message, iterates over it etc.
12970
12971 2003-01-28  Havoc Pennington  <hp@pobox.com>
12972
12973         * test/Makefile.am (dist-hook): fix make distdir
12974
12975         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12976
12977 2003-01-27  Havoc Pennington  <hp@pobox.com>
12978
12979         * dbus/dbus-mempool.c (time_for_size): replace printf with
12980         _dbus_verbose
12981
12982         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12983         empty lines; fix the SAVE_LENGTH stuff to be
12984         START_LENGTH/END_LENGTH so it actually works; couple other
12985         bugfixes
12986
12987         * test/Makefile.am (dist-hook): add dist-hook for .message files
12988
12989         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12990         can be constant or locked.
12991         (_dbus_string_free): allow freeing a const string as
12992         documented/intended
12993
12994         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12995
12996         * dbus/dbus-test-main.c (main): take an argument which is the
12997         directory containing test data
12998
12999         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13000         argument to this and load all the messages in test/data/
13001         checking that they can be loaded or not loaded as appropriate.
13002
13003 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13004
13005         * bus/dispatch.c: (bus_dispatch_message_handler):
13006         Dispatch messages sent to services.
13007
13008         * bus/driver.c: (bus_driver_send_service_deleted),
13009         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13010         (bus_driver_send_service_acquired):
13011         Add helper functions for sending service related messages.
13012
13013         (bus_driver_send_welcome_message):
13014         Send HELLO_REPLY instead of WELCOME.
13015
13016         (bus_driver_handle_list_services):
13017         Send LIST_SERVICES_REPLY instead of SERVICES.
13018
13019         (bus_driver_handle_own_service),
13020         (bus_driver_handle_service_exists):
13021         New message handlers.
13022
13023         (bus_driver_handle_message):
13024         Invoke new message handlers.
13025
13026         (bus_driver_remove_connection):
13027         Don't remove any services here since that's done automatically
13028         by bus_service_remove_owner now.
13029
13030         * bus/driver.h:
13031         New function signatures.
13032
13033         * bus/services.c: (bus_service_add_owner):
13034         Send ServiceAcquired message if we're the only primary owner.
13035
13036         (bus_service_remove_owner):
13037         Send ServiceAcquired/ServiceLost messages.
13038
13039         (bus_service_set_prohibit_replacement),
13040         (bus_service_get_prohibit_replacement):
13041         Functions for setting prohibit replacement.
13042
13043         (bus_service_has_owner):
13044         New function that checks if a connection is in the owner queue of
13045         a certain service.
13046
13047         * bus/services.h:
13048         Add new function signatures.
13049
13050         * dbus/dbus-list.c: (_dbus_list_test):
13051         Add tests for _dbus_list_remove_last and traversing the list backwards.
13052
13053         * dbus/dbus-list.h:
13054         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13055         go any further, so return NULL then.
13056
13057         * dbus/dbus-protocol.h:
13058         Add new messages, service flags and service replies.
13059
13060 2003-01-26  Havoc Pennington  <hp@pobox.com>
13061
13062         * dbus/dbus-message-builder.c: implement, completely untested.
13063
13064         * test/data/*: add data to be used in testing.
13065         ".message" files are our simple loadable text format.
13066         ".message-raw" will be binary dumps of messages.
13067
13068         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13069
13070 2003-01-26  Havoc Pennington  <hp@pobox.com>
13071
13072         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13073
13074         * dbus/dbus-errors.c (dbus_result_to_string): add
13075         file errors
13076
13077         * dbus/dbus-message-builder.c: new file, will contain code to load
13078         up messages from files. Not implemented yet.
13079
13080 2003-01-26  Havoc Pennington  <hp@pobox.com>
13081
13082         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13083         the sender by setting to NULL
13084
13085 2003-01-26  Havoc Pennington  <hp@pobox.com>
13086
13087         The unit tests pass, but otherwise untested.  If it breaks, the
13088         tests should have been better. ;-)
13089
13090         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13091         the connection.
13092
13093         * dbus/dbus-message.c: redo everything so we maintain
13094         message->header as the only copy of the various fields.
13095         This avoids the possibility of out-of-memory in some cases,
13096         for example dbus_message_lock() can't run out of memory anymore,
13097         and avoids extra copying. Figured I may as well go ahead and do
13098         this since it was busted for dbus_message_lock to not return
13099         failure on OOM, and dbus_message_write_header was totally
13100         unchecked for OOM. Also fixed some random other bugs.
13101
13102         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13103         that strings are nul-terminated. Also, end_pos can be equal
13104         to string length just not greater than, I think.
13105         (_dbus_marshal_set_int32): new function
13106         (_dbus_marshal_set_uint32): new function
13107         (_dbus_marshal_set_string): new function
13108
13109         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13110         a warning, init timeout_list to NULL
13111         (dbus_connection_send_message): don't use uninitialized variable
13112         "serial"
13113
13114         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13115
13116 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13117
13118         * bus/driver.c: (bus_driver_handle_hello),
13119         (bus_driver_send_welcome_message):
13120         Plug leaks
13121
13122 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13123
13124         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13125         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13126         (dbus_connection_unref):
13127         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13128         * dbus/dbus-message.c: (dbus_message_unref),
13129         Plug memory leaks.
13130
13131         (dbus_message_get_fields):
13132         Remove debugging printout.
13133
13134         (_dbus_message_loader_return_buffer):
13135         Don't store the header string.
13136
13137         (_dbus_message_test):
13138         Plug leaks.
13139
13140 2003-01-26  Richard Hult  <rhult@codefactory.se>
13141
13142         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13143         the file descriptor list, since it can change under us.
13144
13145 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13146
13147         * glib/dbus-gmain.c: (dbus_connection_prepare),
13148         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13149         (remove_watch), (dbus_connection_hookup_with_g_main):
13150         Rewrite the glib handling to use its own GSource instead of a
13151         GIOChannel so we can catch messages put in the queue while waiting
13152         for a reply.
13153
13154 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13155
13156         * bus/Makefile.am:
13157         * bus/connection.c: (connection_disconnect_handler),
13158         (connection_watch_callback), (bus_connection_setup):
13159         * bus/dispatch.c: (send_one_message),
13160         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13161         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13162         * bus/dispatch.h:
13163         * bus/driver.c: (bus_driver_send_service_deleted),
13164         (bus_driver_send_service_created), (bus_driver_handle_hello),
13165         (bus_driver_send_welcome_message),
13166         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13167         (bus_driver_handle_message):
13168         * bus/driver.h:
13169         Refactor code, put the message dispatching in its own file. Use
13170         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13171         is disconnected.
13172
13173 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * dbus/dbus-internals.h:
13176         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13177
13178         * dbus/dbus-message.c: (dbus_message_get_sender):
13179         * dbus/dbus-message.h:
13180         Implement dbus_message_get_sender.
13181
13182         * dbus/dbus-protocol.h:
13183         Add message and service defines.
13184
13185 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * dbus/dbus-connection.c: (dbus_connection_send_message):
13188         * dbus/dbus-message-internal.h:
13189         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13190         (dbus_message_write_header):
13191         Remove _dbus_messag_unlock and don't set the client serial on a
13192         message if one already exists.
13193
13194 2003-01-24  Havoc Pennington  <hp@pobox.com>
13195
13196         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13197         list_pool
13198
13199         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13200         on OOM
13201
13202 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13203
13204         * dbus/dbus-list.c: (alloc_link), (free_link):
13205         Use a memory pool for the links.
13206
13207 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13208
13209         * bus/connection.c: (bus_connection_foreach):
13210         * bus/connection.h:
13211         Add new bus_connection_foreach function.
13212
13213         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13214         Add function that broadcasts a message to all clients.
13215
13216         (bus_driver_send_service_created), (bus_driver_handle_hello),
13217         (bus_driver_send_welcome_message),
13218         (bus_driver_handle_list_services), (bus_driver_message_handler):
13219         Implement functions that take care of listing services, and notifying
13220         clients when new services are created.
13221
13222         * bus/services.c: (bus_services_list):
13223         * bus/services.h:
13224         Add new function that returns an array of strings with the currently
13225         registered services.
13226
13227         * glib/dbus-glib.h:
13228         * glib/dbus-gmain.c:
13229         Update copyright year.
13230
13231 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13232
13233         * dbus/dbus-connection.c: (dbus_connection_send_message):
13234         Unlock the message in case it was sent earlier.
13235
13236         (dbus_connection_send_message_with_reply_and_block):
13237         Remove the reply message from the list.
13238
13239         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13240         Set array_len and new_pos correctly.
13241
13242         (_dbus_marshal_test):
13243         Remove debug output.
13244
13245         * dbus/dbus-message-internal.h:
13246         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13247         New function that returns the reply serial.
13248
13249         (_dbus_message_unlock):
13250         New function that unlocks a message and resets its header.
13251
13252         (dbus_message_append_string_array),
13253         (dbus_message_get_fields_valist),
13254         (dbus_message_iter_get_field_type),
13255         (dbus_message_iter_get_string_array),
13256         (dbus_message_get_fields),
13257         (dbus_message_append_fields_valist):
13258         Handle string arrays.
13259
13260         (dbus_message_set_sender):
13261         Make this function public since the bus daemon needs it.
13262
13263         (decode_header_data):
13264         Set the reply serial to -1 initially.
13265
13266         * dbus/dbus-message.h:
13267         Add dbus_message_set_sender.
13268
13269 2003-01-24  Havoc Pennington  <hp@pobox.com>
13270
13271         * doc/dbus-specification.sgml: add some stuff
13272
13273 2003-01-22  Havoc Pennington  <hp@pobox.com>
13274
13275         * doc/dbus-specification.sgml: Start to document the protocol.
13276
13277 2003-01-22  Havoc Pennington  <hp@pobox.com>
13278
13279         * dbus/dbus-connection.c
13280         (dbus_connection_send_message_with_reply_and_block): add some @todo
13281
13282         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13283
13284 2003-01-21  Havoc Pennington  <hp@pobox.com>
13285
13286         (patch untested because can't compile)
13287
13288         * bus/driver.c (create_unique_client_name): make this function
13289         never recycle client names. Also, caller should initialize
13290         the DBusString.
13291
13292         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13293
13294 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13295
13296         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13297         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13298         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13299         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13300         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13301         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13302         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13303         * dbus/dbus-marshal.h:
13304         * dbus/dbus-protocol.h:
13305         Add support for marshalling and demarshalling integer, double
13306         and string arrays.
13307
13308 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13309
13310         * bus/Makefile.am:
13311         Add driver.[ch]
13312
13313         * bus/connection.c: (connection_disconnect_handler):
13314         Remove the connection from the bus driver's list.
13315
13316         (connection_watch_callback): Dispatch messages.
13317
13318         (free_connection_data): Free connection name.
13319
13320         (bus_connection_setup): Add connection to the bus driver's list.
13321         (bus_connection_remove_owned_service):
13322         (bus_connection_set_name), (bus_connection_get_name):
13323         Add functions for setting and getting the connection's name.
13324
13325         * bus/connection.h:
13326         Add function headers.
13327
13328         * bus/driver.c: (create_unique_client_name),
13329         (bus_driver_handle_hello_message),
13330         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13331         (bus_driver_add_connection), (bus_driver_remove_connection):
13332         * bus/driver.h:
13333         * bus/main.c:
13334         * bus/services.c: (bus_service_free):
13335         * bus/services.h:
13336         New file that handles communication and registreation with the bus
13337         itself.
13338
13339 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13340
13341         * dbus/dbus-connection.c: (dbus_connection_send_message):
13342         Add a new client_serial parameter.
13343
13344         (dbus_connection_send_message_with_reply):
13345         Remove a @todo since we've implemented the blocking function.
13346
13347         (dbus_connection_send_message_with_reply_and_block):
13348         New function that sends a message and waits for a reply and
13349         then returns the reply.
13350
13351         * dbus/dbus-connection.h:
13352         Add new functions.
13353
13354         * dbus/dbus-errors.c: (dbus_result_to_string):
13355         * dbus/dbus-errors.h:
13356         Add new DBUS_RESULT.
13357
13358         * dbus/dbus-message-internal.h:
13359         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13360         (_dbus_message_set_sender), (dbus_message_write_header),
13361         (dbus_message_new_reply), (decode_header_data),
13362         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13363         * dbus/dbus-message.h:
13364         Add new functions that set the reply serial and sender.
13365         Also marshal and demarshal them correctly and add test.
13366
13367         * dbus/dbus-protocol.h:
13368         Add new DBUS_MESSAGE_TYPE_SENDER.
13369
13370         * glib/dbus-glib.h:
13371         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13372         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13373         (dbus_connection_hookup_with_g_main):
13374         * glib/test-dbus-glib.c: (main):
13375         Rewrite to use GIOChannel and remove the GSource crack.
13376
13377         * test/echo-client.c: (main):
13378         * test/watch.c: (check_messages):
13379         Update for changed APIs
13380
13381 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13382
13383         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13384
13385         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13386         Create a DBusTimeoutList.
13387         (dbus_connection_set_timeout_functions): Add new function to
13388         set timeout callbacks
13389
13390         * dbus/dbus-connection.h: Add public DBusTimeout API.
13391
13392         * dbus/dbus-message.c: (dbus_message_get_service):
13393         * dbus/dbus-message.h:  New function.
13394
13395         * dbus/dbus-server.c: Fix small doc typo.
13396
13397         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13398
13399 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13400
13401         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13402         of the string, just as long as specified.
13403
13404 2003-01-19  Havoc Pennington  <hp@pobox.com>
13405
13406         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13407         new function
13408
13409         * dbus/dbus-server.c (dbus_server_set_max_connections)
13410         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13411         keep track of current number of connections, and add API for
13412         setting a max (but haven't implemented enforcing the max yet)
13413
13414 2003-01-18  Havoc Pennington  <hp@pobox.com>
13415
13416         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13417         reading/writing if read_watch != NULL or write_watch != NULL.
13418
13419         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13420         the message loader code to actually load message->header and
13421         message->body into the newly-created message.
13422
13423         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13424         in OOM case
13425
13426         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13427         (dbus_connection_get_max_message_size)
13428         (dbus_connection_set_max_live_messages_size)
13429         (dbus_connection_get_max_live_messages_size): implement some
13430         resource limitation functions
13431
13432         * dbus/dbus-resources.c: new file implementing some of the
13433         resource limits stuff
13434
13435         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13436         missing docs, add @todo to handle OOM etc.
13437
13438         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13439         docs
13440
13441 2003-01-18  Havoc Pennington  <hp@pobox.com>
13442
13443         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13444         connection if it hasn't been already.
13445
13446         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13447         replace with DisconnectFunction.
13448
13449 2003-01-18  Havoc Pennington  <hp@pobox.com>
13450
13451         Building --disable-verbose-mode --disable-asserts --disable-tests
13452         cuts the library from 112K to 45K or so
13453
13454         * configure.in: check for varargs macro support,
13455         add --enable-verbose-mode, --enable-asserts.
13456
13457         * dbus/dbus-internals.h (_dbus_assert): support
13458         DBUS_DISABLE_ASSERT
13459         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13460
13461 2003-01-18  Havoc Pennington  <hp@pobox.com>
13462
13463         * dbus/dbus-test.c: include config.h so that tests actually run
13464
13465         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13466         so the failure mode when that assumption fails will be plenty
13467         obvious.
13468
13469 2003-01-18  Havoc Pennington  <hp@pobox.com>
13470
13471         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13472
13473         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13474         the distribution
13475
13476         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13477         since we don't want to use those in make check
13478
13479 2003-01-15  Havoc Pennington  <hp@redhat.com>
13480
13481         Release 0.2
13482
13483         * NEWS: update
13484
13485 2003-01-15  Havoc Pennington  <hp@redhat.com>
13486
13487         * test/Makefile.am: fix so that test source code ends up in the
13488         distribution on make distcheck
13489
13490 2003-01-15  Havoc Pennington  <hp@redhat.com>
13491
13492         Release 0.1.
13493
13494         * NEWS: update
13495
13496 2003-01-15  Havoc Pennington  <hp@redhat.com>
13497
13498         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13499         fix build when --disable-tests
13500
13501         * Makefile.am (EXTRA_DIST): put HACKING in here
13502
13503         * HACKING: document procedure for making a tarball release.
13504
13505 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13506
13507         * bus/connection.c: (connection_error_handler),
13508         (bus_connection_setup):
13509         * bus/main.c: (main):
13510         Make sure that the DBusConnectionData struct is NULLed
13511         out to prevent a segfault.
13512
13513         * dbus/dbus-errors.c: (dbus_result_to_string):
13514         * dbus/dbus-errors.h:
13515         * dbus/dbus-message.c: (dbus_message_get_fields),
13516         (dbus_message_get_fields_valist), (_dbus_message_test):
13517         * dbus/dbus-message.h:
13518         Make dbus_message_get_fields return a result code so we can
13519         track invalid fields as well as oom.
13520
13521 2003-01-11  Havoc Pennington  <hp@pobox.com>
13522
13523         * configure.in: change --enable-test/--enable-ansi action-if-given
13524         to enable_foo=$enableval instead of enable_foo=yes
13525
13526 2003-01-08  Havoc Pennington  <hp@pobox.com>
13527
13528         * dbus/dbus-string.c (_dbus_string_align_length): new function
13529
13530         * dbus/dbus-test-main.c: move main() for test app here
13531         * dbus/dbus-test.c
13532         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13533         symbol to run tests, because dbus-test isn't in the main
13534         library
13535
13536         Code review nitpicks.
13537
13538         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13539         for people with narrow emacs ;-). Assert client_serial was filled
13540         in. Assert message->name != NULL.
13541         (dbus_message_append_fields): have "first_field_type" arg separate
13542         from va list, needed for C++ binding that also uses varargs IIRC
13543         and helps with type safety
13544         (dbus_message_new): add @todo about using DBusString to store
13545         service/name internally
13546         (dbus_message_new): don't leak ->service and ->name on OOM later
13547         in the function
13548         (dbus_message_unref): free the service name
13549         (dbus_message_get_fields): same change to varargs
13550         i.e. first_field_type
13551         (_dbus_message_loader_return_buffer): assert that the message data
13552         is aligned (if not it's a bug in our code). Put in verbose griping
13553         about why we set corrupted = TRUE.
13554         (decode_header_data): add FIXME that char* is evil.  Was going to
13555         add FIXME about evil locale-specific string.h strncmp, but just
13556         switched to wacky string-as-uint32 optimization. Move check for
13557         "no room for field name" above get_const_data_len() to avoid
13558         assertion failure in get_const_data_len if we have trailing 2
13559         bytes or the like. Check for service and name fields being
13560         provided twice. Don't leak service/name on error. Require field
13561         names to be aligned to 4 bytes.
13562
13563         * dbus/dbus-marshal.c: move byte swap stuff to header
13564         (_dbus_pack_int32): uscore-prefix
13565         (_dbus_unpack_int32): uscore-prefix
13566         (_dbus_unpack_uint32): export
13567         (_dbus_demarshal_string): add @todo complaining about use of
13568         memcpy()
13569         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13570         handling allowing corrupt data to go unchecked
13571
13572 2003-01-08  Havoc Pennington  <hp@redhat.com>
13573
13574         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13575         to the select() as needed for authentication. (should be using
13576         _dbus_poll() not select, but for another day)
13577
13578         * dbus/dbus.h: include dbus/dbus-protocol.h
13579
13580 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13581
13582         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13583         dbus-connection.h
13584
13585 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * dbus/dbus-internals.c: (_dbus_type_to_string):
13588         New function that returns a string describing a type.
13589
13590         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13591         * dbus/dbus-marshal.h:
13592         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13593         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13594         (dbus_message_iter_get_byte_array):
13595         * dbus/dbus-message.h:
13596         Add new convenience functions for appending and getting message fields.
13597         Also add demarshalling routines for byte arrays.
13598
13599 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13600
13601         * dbus/dbus-connection-internal.h:
13602         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13603         (_dbus_connection_get_next_client_serial),
13604         (dbus_connection_send_message):
13605         * dbus/dbus-internals.h:
13606         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13607         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13608         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13609         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13610         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13611         (_dbus_verbose_bytes), (_dbus_marshal_test):
13612         * dbus/dbus-marshal.h:
13613         * dbus/dbus-message-internal.h:
13614         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13615         (dbus_message_write_header), (_dbus_message_lock),
13616         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13617         (dbus_message_get_name), (dbus_message_append_int32),
13618         (dbus_message_append_uint32), (dbus_message_append_double),
13619         (dbus_message_append_string), (dbus_message_append_byte_array),
13620         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13621         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13622         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13623         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13624         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13625         (decode_header_data), (_dbus_message_loader_return_buffer),
13626         (message_iter_test), (_dbus_message_test):
13627         * dbus/dbus-message.h:
13628         * dbus/dbus-protocol.h:
13629         * dbus/dbus-test.c: (main):
13630         * dbus/dbus-test.h:
13631         * glib/test-dbus-glib.c: (message_handler), (main):
13632         * test/echo-client.c: (main):
13633         * test/watch.c: (check_messages):
13634         Make messages sendable and receivable for real.
13635
13636 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13637
13638         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13639         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13640         * dbus/dbus-message.c: (dbus_message_append_int32),
13641         (dbus_message_append_uint32), (dbus_message_append_double),
13642         (dbus_message_append_string), (dbus_message_append_byte_array):
13643         Handle OOM restoration.
13644
13645 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13646
13647         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13648         (_dbus_demarshal_string), (_dbus_marshal_test):
13649         * dbus/dbus-marshal.h:
13650         * dbus/dbus-message.c: (dbus_message_get_name),
13651         Document these functions.
13652
13653         (dbus_message_append_int32), (dbus_message_append_uint32),
13654         (dbus_message_append_double), (dbus_message_append_string),
13655         (dbus_message_append_byte_array):
13656         * dbus/dbus-message.h:
13657         Add functions for adding message fields of different types.
13658
13659         * dbus/dbus-protocol.h:
13660         Add the different types.
13661
13662 2003-01-05  Havoc Pennington  <hp@pobox.com>
13663
13664         * bus/connection.c: implement routines for handling connections,
13665         first thing is keeping a list of owned services on each connection
13666         and setting up watches etc.
13667
13668         * bus/services.c: implement a mapping from service names to lists
13669         of connections
13670
13671         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13672
13673         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13674         to use static mutexes for global data
13675
13676         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13677         collection of functions to set/get application-specific data
13678         on the DBusConnection.
13679
13680 2003-01-04  Havoc Pennington  <hp@pobox.com>
13681
13682         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13683         (_dbus_poll): new function
13684
13685         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13686         copied from GLib
13687
13688         * bus/loop.c: initial code for the daemon main loop
13689
13690 2003-01-04  Havoc Pennington  <hp@pobox.com>
13691
13692         * test/watch.c (error_handler): make it safe if the error handler
13693         is called multiple times (if we s/error handler/disconnect
13694         handler/ we should just guarantee it's called only once)
13695
13696         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13697         error handler on disconnect (it's quite possible we should
13698         just change the error handler to a "disconnect handler," I'm
13699         not sure we have any other meaningful errors)
13700
13701         * configure.in: check for getpwnam_r
13702
13703         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13704         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13705         mechanism as in SASL spec, using socket credentials
13706
13707         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13708         (_dbus_send_credentials_unix_socket): new function
13709
13710         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13711         dbus_accept()
13712         (_dbus_write): only check errno if <0 returned
13713         (_dbus_write_two): ditto
13714
13715 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13716
13717         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13718         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13719         (_dbus_marshal_test):
13720         * dbus/dbus-marshal.h:
13721         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13722         to _dbus_marshal_utf8_string. Also fix some tests.
13723
13724 2002-12-28  Harri Porten  <porten@kde.org>
13725
13726         * configure.in: added check for C++ compiler and a very cheesy
13727         check for the Qt integration
13728
13729         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13730
13731         * qt/Makefile.am: added
13732
13733         * qt/.cvsignore: added
13734
13735         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13736         latter, added #ifdef QT_THREAD_SUPPORT guard.
13737
13738         * dbus/Makefile.am: added missing headers for make dist
13739
13740 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13741
13742         * dbus/Makefile.am: fixup export-symbols-regex.
13743
13744 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13745
13746         * acinclude.m4: Add this file and put the
13747         PKG_CHECK_MODULE macro in it.
13748
13749 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13750
13751         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13752         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13753         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13754         (_dbus_marshal_test):
13755         Make the demarshalling routines align the pos argument.
13756         Add string marshalling tests and fix the obvious bugs
13757         discovered.
13758
13759 2002-12-26  Havoc Pennington  <hp@pobox.com>
13760
13761         * dbus/dbus-auth.c: fixes fixes fixes
13762
13763         * dbus/dbus-transport-unix.c: wire up support for
13764         encoding/decoding data on the wire
13765
13766         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13767         (_dbus_auth_decode_data): append to target string
13768         instead of nuking it.
13769
13770 2002-12-26  Havoc Pennington  <hp@pobox.com>
13771
13772         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13773         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13774         doh
13775
13776         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13777         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13778         now). Main point is because I wanted unpack_uint32 to implement
13779         _dbus_verbose_bytes
13780         (_dbus_verbose_bytes): new function
13781
13782         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13783
13784         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13785         mechanism to handle a corrupt message stream
13786         (_dbus_message_loader_new): fix preallocation to only prealloc,
13787         not prelengthen
13788
13789         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13790         (_dbus_string_test): enhance tests for copy/move and fix the
13791         functions
13792
13793         * dbus/dbus-transport-unix.c: Hold references in more places to
13794         avoid reentrancy problems
13795
13796         * dbus/dbus-transport.c: ditto
13797
13798         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13799         leak reference count in no-message case
13800
13801         * test/watch.c (do_mainloop): handle adding/removing watches
13802         during iteration over the watches. Also, ref the connection/server
13803         stored on a watch, so we don't try to mangle a destroyed one.
13804
13805         * dbus/dbus-transport-unix.c (do_authentication): perform
13806         authentication
13807
13808         * dbus/dbus-auth.c (get_state): add a state
13809         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13810         (_dbus_auth_get_unused_bytes): append the unused bytes
13811         to the passed in string, rather than prepend
13812
13813         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13814         the auth conversation DBusAuth
13815
13816         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13817         (_dbus_transport_new_for_domain_socket): when creating a
13818         transport, pass in whether it's a client-side or server-side
13819         transport so we know which DBusAuth to create
13820
13821 2002-12-03  Havoc Pennington  <hp@pobox.com>
13822
13823         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13824         _after_ finalizing the derived members
13825         (unix_connection_set): unref watch if we fail to add it
13826
13827         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13828         transport first, so that the connection owned by the
13829         transport will be valid as the transport finalizes.
13830
13831         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13832         if necessary, and remove watches from the connection.
13833
13834         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13835
13836 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13837
13838         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13839         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13840         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13841         (_dbus_marshal_test):
13842         * dbus/dbus-marshal.h:
13843         Add string marshal functions and have the demarshal functions
13844         return the new position.
13845
13846 2002-12-25  Havoc Pennington  <hp@pobox.com>
13847
13848         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13849         it is a simple protocol that just maps directly to SASL.
13850
13851         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13852         initial implementation, not actually used yet.
13853
13854         * dbus/dbus-string.c (_dbus_string_find): new function
13855         (_dbus_string_equal): new function
13856         (_dbus_string_base64_encode): new function
13857         (_dbus_string_base64_decode): new function
13858
13859 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13860
13861         * dbus/Makefile.am:
13862         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13863         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13864         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13865         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13866         * dbus/dbus-marshal.h:
13867         * dbus/dbus-protocol.h:
13868         * dbus/dbus-test.c: (main):
13869         * dbus/dbus-test.h:
13870         Add un-optimized marshalling/demarshalling routines.
13871
13872 2002-12-25  Harri Porten  <porten@kde.org>
13873
13874         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13875
13876 2002-12-24  Zack Rusin  <zack@kde.org>
13877
13878         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13879         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13880         main loop stuff
13881
13882 2002-12-24  Havoc Pennington  <hp@pobox.com>
13883
13884         * glib/dbus-gthread.c: fix include
13885
13886         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13887         I think glib API needs to change, though, as you don't
13888         want to use DBusMessageFunction, you want to use the
13889         DBusMessageHandler object. Probably
13890         dbus_connection_open_with_g_main_loop()
13891         and dbus_connection_setup_g_main_loop() or something like that
13892         (but think of better names...) that just create a connection
13893         that has watch/timeout functions etc. already set up.
13894
13895         * dbus/dbus-connection.c
13896         (dbus_connection_send_message_with_reply): new function just to
13897         show how the message handler helps us deal with replies.
13898
13899         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13900
13901         * dbus/dbus-string.c (_dbus_string_test): free a string that
13902         wasn't
13903
13904         * dbus/dbus-hash.c: use memory pools for the hash entries
13905         (rebuild_table): be more paranoid about overflow, and
13906         shrink table when we can
13907         (_dbus_hash_test): reduce number of sprintfs and write
13908         valid C89. Add tests for case where we grow and then
13909         shrink the hash table.
13910
13911         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13912
13913         * dbus/dbus-connection.c (dbus_connection_register_handler)
13914         (dbus_connection_unregister_handler): new functions
13915
13916         * dbus/dbus-message.c (dbus_message_get_name): new
13917
13918         * dbus/dbus-list.c: fix docs typo
13919
13920         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13921         an object representing a handler for messages.
13922
13923 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13924
13925         * glib/dbus-glib.h:
13926         * glib/dbus-gthread.c: (dbus_gthread_init):
13927         Don't use the gdbus prefix for public functions.
13928
13929 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13930
13931         * Makefile.am:
13932         * configure.in:
13933         Add GLib checks and fixup .pc files
13934
13935         * glib/Makefile.am:
13936         * glib/dbus-glib.h:
13937         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13938         (gdbus_connection_check), (gdbus_connection_dispatch),
13939         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13940         (dbus_connection_gsource_new):
13941         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13942         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13943         * glib/test-dbus-glib.c: (message_handler), (main):
13944         Add GLib support.
13945
13946 2002-12-15  Harri Porten  <porten@kde.org>
13947
13948         * autogen.sh: check for libtoolize before attempting to use it
13949
13950         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13951         struct.
13952
13953         * .cvsignore: ignore more stamp files
13954
13955         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13956
13957         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13958         without make install.
13959
13960 2002-12-15  Havoc Pennington  <hp@pobox.com>
13961
13962         * dbus/dbus-threads.c: add thread stubs that a higher library
13963         layer can fill in. e.g. the GLib wrapper might fill them in with
13964         GThread stuff. We still need to use this thread API to
13965         thread-safe-ize the library.
13966
13967 2002-12-12  Havoc Pennington  <hp@pobox.com>
13968
13969         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13970         below new interfaces and include fewer system headers.
13971
13972         * dbus/dbus-sysdeps.c (_dbus_read): new function
13973         (_dbus_write): new function
13974         (_dbus_write_two): new function
13975         (_dbus_connect_unix_socket): new function
13976         (_dbus_listen_unix_socket): new function
13977
13978         * dbus/dbus-message-internal.h: change interfaces to use
13979         DBusString
13980
13981 2002-12-11  Havoc Pennington  <hp@pobox.com>
13982
13983         * dbus/dbus-types.h: add dbus_unichar
13984
13985         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13986
13987         * dbus/dbus-connection.c (dbus_connection_send_message): return
13988         TRUE on success
13989
13990         * dbus/dbus-transport.c: include dbus-watch.h
13991
13992         * dbus/dbus-connection.c: include dbus-message-internal.h
13993
13994         * HACKING: add file with coding guidelines stuff.
13995
13996         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13997         handling here, for security purposes (as in vsftpd). Not actually
13998         using this class yet.
13999
14000         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14001         system/libc usage here, as in vsftpd, for ease of auditing (and
14002         should also simplify portability). Haven't actually moved all the
14003         system/libc usage into here yet.
14004
14005 2002-11-25  Havoc Pennington  <hp@pobox.com>
14006
14007         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14008         always print the first verbose message.
14009
14010 2002-11-24  Havoc Pennington  <hp@pobox.com>
14011
14012         * test/echo-client.c, test/echo-server.c: cheesy test
14013         clients.
14014
14015         * configure.in (AC_CHECK_FUNCS): check for writev
14016
14017         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14018         function
14019
14020         * dbus/dbus-list.c (_dbus_list_foreach): new function
14021
14022         * dbus/dbus-internals.c (_dbus_verbose): new function
14023
14024         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14025         representing a server that listens for connections.
14026
14027         * dbus/.cvsignore: create
14028
14029         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14030         public API for reporting errors
14031
14032         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14033         public object representing a connection that
14034         sends/receives messages. (Same object used for
14035         both client and server.)
14036
14037         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14038         Basic abstraction for different kinds of stream
14039         that we might read/write messages from.
14040
14041 2002-11-23  Havoc Pennington  <hp@pobox.com>
14042
14043         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14044         _DBUS_INT_MAX
14045
14046         * dbus/dbus-test.c (main): add list test, and include
14047         dbus-test.h as intended
14048
14049         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14050         (_dbus_hash_table_remove_int): return value indicates
14051         whether the entry existed to remove
14052
14053         * dbus/dbus-list.c: add linked list utility class,
14054         with docs and tests
14055
14056         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14057         array sometimes.
14058
14059 2002-11-23  Havoc Pennington  <hp@pobox.com>
14060
14061         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14062         DBUS_END_DECLS to nothing, that should fix this once and for all
14063
14064         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14065
14066         * dbus/dbus-message.c, dbus/dbus-hash.c:
14067         add some missing @brief
14068
14069 2002-11-23  Havoc Pennington  <hp@pobox.com>
14070
14071         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14072         to avoid confusing Doxygen
14073
14074         * dbus/dbus-hash.c: @} not }@
14075
14076         * dbus/dbus-message.c (struct DBusMessage): split out
14077         internals docs
14078
14079 2002-11-23  Havoc Pennington  <hp@pobox.com>
14080
14081         * configure.in: pile on more warning flags if using gcc
14082
14083         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14084         to document static functions
14085
14086         * configure.in: add summary to end of configure so it
14087         looks nice and attractive
14088
14089         * dbus/dbus-hash.c: finish implementation and write unit
14090         tests and docs
14091
14092         * configure.in: add --enable-tests to enable unit tests
14093
14094         * dbus/dbus-test.c: test program to run unit tests
14095         for all files in dbus/*, initially runs a test for
14096         dbus-hash.c
14097
14098         * dbus/dbus-internals.h: file to hold some internal utility stuff
14099
14100 2002-11-22  Havoc Pennington  <hp@redhat.com>
14101
14102         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14103         "ported" away from Tcl
14104
14105         * dbus/dbus-types.h: header for types such as dbus_bool_t
14106
14107 2002-11-22  Havoc Pennington  <hp@redhat.com>
14108
14109         * dbus/dbus.h: fixups for doc warnings
14110
14111         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14112         macros
14113         (QUIET): make it quiet so we can see warnings
14114
14115         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14116
14117 2002-11-22  Havoc Pennington  <hp@redhat.com>
14118
14119         * Makefile.am: include "Doxyfile" target in all-local
14120
14121         * configure.in: generate the Doxyfile
14122
14123         * Doxyfile.in: move Doxyfile here, so we can use
14124         configure to generate a Doxyfile with the right
14125         version number etc.
14126
14127 2002-11-22  Havoc Pennington  <hp@redhat.com>
14128
14129         * dbus/dbus-message.c: move inline docs into .c file
14130
14131         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14132         so all docs are under doc/
14133         (MAN_EXTENSION): generate man pages. Use extension
14134         ".3dbus" which matches ".3qt" on my system,
14135         I guess this is OK, I don't know really.
14136         (FILE_PATTERNS): look for .c files not .h, makes sense
14137         for plain C I think
14138
14139 2002-11-22  Havoc Pennington  <hp@pobox.com>
14140
14141         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14142         because any app can be a server, and any app can be a client,
14143         the bus is a special kind of server.
14144
14145 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14146
14147         * Doxyfile : adding. Still needs Makefile rules to be generated
14148         automatically (just run "doxygen" in the toplevel dir for now to
14149         generate docs)
14150
14151         * dbus/dbus-message.h : Adding sample docs (javadoc since
14152         resembles gtk-doc a little more)
14153
14154         * dbus/dbus.h : Adding sample docs
14155
14156 2002-11-21  Havoc Pennington  <hp@redhat.com>
14157
14158         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14159         so we can allow ourselves to include files directly,
14160         instead of having to use dbus.h
14161
14162         * dbus/dbus.h: fill in
14163
14164         * dbus/dbus-message.h: sketch out a sample header file.
14165         Include griping if you include it directly instead of
14166         via dbus.h
14167
14168         * dbus/dbus-macros.h: new file with macros for extern "C",
14169         TRUE/FALSE, NULL, etc.
14170
14171         * doc/file-boilerplate.c: put include guards in here
14172
14173 2002-11-21  Havoc Pennington  <hp@redhat.com>
14174
14175         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14176
14177         * COPYING: include the GPL as well, and license code
14178         under both AFL and GPL.
14179
14180 2002-11-21  Havoc Pennington  <hp@redhat.com>
14181
14182         * acconfig.h: get rid of this
14183
14184         * autogen.sh (run_configure): add --no-configure option
14185
14186         * configure.in: remove AC_ARG_PROGRAM to make
14187         autoconf complain less. add AC_PREREQ.
14188         add AC_DEFINE third arg.
14189
14190 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14191
14192         * doc/Makefile.am:
14193         Fix references so we can distcheck.
14194
14195 2002-11-21  Havoc Pennington  <hp@redhat.com>
14196
14197         * Initial module creation
14198