2006-08-29 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-29  Havoc Pennington  <hp@redhat.com>
2
3         * test/test-service.c (path_message_func): fix lack of return value
4
5         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
6         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
7         any more sense than on anything else in this file.
8         (_dbus_get_tmpdir): add const to return value, and keep the
9         results of the various getenv around in a static variable.
10
11 2006-08-29  Havoc Pennington  <hp@redhat.com>
12
13         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
14         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
15
16 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
17
18         * test/Makefile.am: change find to use syntax that works with non
19         gnu versions of find
20
21 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
22
23         * dbus/dbus-transport.c: fix invalid deref when checking if
24         a vtable method exists (Patch from Christian Ehrlicher 
25         <ch dot ehrlicher at gmx dot de>)
26
27 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
28
29         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
30         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
31         to build with builddir != srcdir (Taken from a patch by Bernard Leak
32         <bernard at brenda-arkle dot demon dot co dot uk>)
33
34 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
35
36         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
37         default case
38
39 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
40
41         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
42         it works on any system providing this interface, not only FreeBSD.
43         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
44
45 2006-08-20  Havoc Pennington  <hp@redhat.com>
46
47         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
48         the docs
49
50 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
51
52         * Released 0.92 
53
54 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
55
56         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
57         to reflect the init late change
58
59         * bus/bus.c (bus_context_new): Check user before we fork so we can
60         print out an error message a user will be able to see
61
62 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
63
64         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
65
66         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
67         Add two more global locks for use on windows platforms.  These are
68         unused on non-windows platforms but are not ifdefed out to avoid
69         potential bugs (i.e. the few bytes lost does not warrent the extra
70         maintanence and complexity that having seperate sets of locks would
71         cause)
72
73 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
74
75         * bus/services.c (bus_registry_acquire_service): Return an error
76         when an application tries to register the org.freedesktop.DBus Bus Name
77
78         * bus/services.c (bus_registry_release_service): Return an error
79         when an application tries to release the org.freedesktop.DBus Bus Name
80
81 2006-08-17  Alp Toker  <alp@atoker.com>
82
83         * doc/dbus-specification.xml: Fix some minor typos.
84
85 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
86
87         * configure.in: use $with_init_scripts instead of $operating_system
88         to determine where to store the pid since the init scripts manipulate 
89         the pid file (patch from Marcelo Ricardo Leitner 
90         <marcelo dot leitner at terra dot com dot br>.  
91
92 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
93
94         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
95         static DBusList *uninitialized_condvar_list to support new late 
96         initialization threading model.  In this model threads can be initialized
97         even after the D-Bus API has been used but still needs to be initialized 
98         before the second thread has been started.  Mutexes and condvar addresses
99         are stored in the two static lists and are replaced with actuall locks
100         when threads are initalized.
101         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
102         the location into the static list
103         (_dbus_mutex_free_at_location): New method for removing a mutex location 
104         from the static list and freeing the mutex
105         (_dbus_condvar_new_at_location): New method for creating a conditional 
106         variable and placing the location into the static list
107         (_dbus_condvar_free_at_location): New method for removing a conditional
108         variable location from the static list and freeing the conditional variable 
109         (init_uninitialized_locks): Atomic method which goes through the static 
110         lists of mutex and condvar location and updates them with actuall locks
111         (init_global_locks): changed to init_locks
112         
113         * dbus/dbus-connection.c:
114         (_dbus_connection_test_get_locks): New method for tests to check connections
115         (_dbus_connection_new_for_transport): Use the new at_location mutex and
116         condvar API
117         (dbus_connection_allocate_data_slot): Pass in the global lock address
118         to _dbus_data_slot_allocator_alloc
119
120         * dbus/dbus-dataslot.c:
121         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
122         instead of the mutex itself
123
124         * dbus/dbus-message.c:
125         (dbus_message_allocate_data_slot): Pass in the global lock address
126         to _dbus_data_slot_allocator_alloc
127
128         * dbus/dbus-pending-call.c:
129         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
130         to _dbus_data_slot_allocator_alloc
131
132         * dbus/dbus-server.c:
133         (_dbus_server_init_base): Use the new at_location mutex API
134         (dbus_server_allocate_data_slot): Pass in the global lock address
135         to _dbus_data_slot_allocator_alloc
136
137         * test/name-test/test-threads-init.c: New test case for late thread
138         initialization
139
140 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
141
142         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
143         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
144         causes compile problems when asserts are turned off
145         Keeping _dbus_warn for printing out the message so even if
146         asserts are turned off the user gets the messages that something is 
147         wrong 
148
149 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
150
151         Patches by Kjartan Maraas <kmaraas at gnome dot org>
152
153         * bus/services.c (bus_service_list_queued_owners):
154         Add a pointer cast to fix compiler warning
155
156         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
157         return a NULL instead of FALSE since the return type
158         is not expecting a boolean
159
160         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
161         Remove unused variable
162
163         * dbus/dbus-marshal-recursive-util.c (node_new):
164         return a NULL instead of FALSE since the return type
165         is not expecting a boolean
166
167         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
168         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
169         because we are expecting a pointer not a boolean
170
171         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
172         add void as the parameter so some compilers
173         don't complain
174
175         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
176           _dbus_transport_new_for_tcp_socket):
177         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
178         because we are expecting a pointer not a boolean
179
180         * test/shell-test.c (test_command_line):
181         cast the second argument to _dbus_list_append to avoid compiler
182         warnings
183
184         * test/test-names.c (main): remove unused variable
185
186         * test/test-service.c (check_hello_from_self_reply):
187         Initialize echo_message and echo_reply to NULL
188         
189         * test/test-shell-service.c (handle_echo):
190         Remove unused variable and cast the third parameter passed to
191         dbus_connection_get_object_path_data to avoid compiler warrnings
192
193         * test/name-test/test-names.c (clear_message_queue):
194         Remove unused function
195
196         * test/name-test/test-pending-call-dispatch.c:
197         Fix format string in printf
198
199
200 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
201
202         * dbus/dbus-bus.c:
203         * test/name-test/test-names.c:
204         Remove test method dbus_bus_connection_get_unique_name because 
205         we already have public method dbus_bus_get_unique_name that 
206         does the exact same thing
207
208 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
209
210         * dbus/dbus-signature.c:
211         fix typos in Julio's previous patch which cause make check to fail
212
213 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
214
215         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
216         In any case it was wrong since this is a test checking to see if
217         address parsing is correct.  There was no need to get the true
218         tmp directory.  
219
220 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
221
222         * dbus/dbus-macros.h: Revert the addition of stddef.h
223         as we should not be adding it to library headers 
224
225 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
226
227         * dbus/dbus-signature.c:
228         Fix the unit tests so that they work if assertions are not enabled.
229         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
230
231 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
232
233         * tools/run-with-tmp-session-bus.sh:
234         * test/name-test/run-test.sh:
235         Remove bashisms (patch from Julio M. Merino Vidal
236         <jmmv at NetBSD dot org>)
237
238 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
239
240         * configure.in: add a version (>= 2.6.0) check for libxml2
241
242 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
243
244         * configure.in: make sure the compiler supports -Wfloat-equal
245         
246         * bus/dir-watch-dnotify.c: move functional code after 
247         variable declerations (C99 fix)  (patches from Jens Granseuer
248         <jensgr at gmx dot net>
249
250 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
251
252         * dbus/dbus-macros.h:
253         add #include <stddef.h> so that Sun compilers don't complain about
254         the defining NULL
255
256 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
257
258         * dbus/dbus-sysdeps.c:
259         * dbus/dbus-address.c:
260         * bus/activation.c:
261         * test/shell-test.c:
262         don't hardcode tmp directory (patch from Dave Meikle 
263         <dmk at davemeikle dot co dot uk>)
264
265 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
266
267         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
268         Change an assert to a detailed warning and abort.  
269         When allocator->lock != mutex it indicates that the user has failed
270         to initalize threads before using the D-Bus library.  This warning
271         helps the user identify the issue and fix their app.
272
273 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
274
275         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
276         with cleanups of bugs found from Coverity reports:
277
278         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
279         close the file on error to avoid a leak
280
281         * bus/expirelist.c (bus_expire_list_test):
282         Check for NULL on dbus_new0
283
284         * bus/activation.c (update_directory):
285         remove dead code
286
287         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
288         Fix some leaks
289
290         * bus/bus.c (process_config_every_time):
291         Fixed a leak
292
293         * bus/desktop-file.c (parse_key_value):
294         Fixed leak
295
296         * bus/selinux.c (bus_selinux_id_table_insert):
297         Fixed leak
298
299 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
300
301         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
302         remove dead code
303
304 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
305
306         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
307         #!/bin/bash
308
309 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
310
311         * Doxyfile.in: fix the INPUT line so we can generate docs 
312         when sourcedir != builddir (patch from Cygwin Ports maintainer
313         <yselkowitz at users dot sourceforge dot net>
314
315 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
316
317         * dbus/dbus-sysdeps.h:
318         * dbus/dbus-sysdeps.c: 
319         * dbus/dbus-string.c: 
320         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
321         GLib's function which does the same thing
322
323         * configure.in:
324         * bus/Makefile.am:
325         * bus/dir-watch-default.c:
326         * bus/dir-watch-dnotify.c:
327         * bus/dir-watch-kqueue.c:
328         Add kqueue directory watching for freebsd and split the directory
329         watching code into seperate files per method/arch
330         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
331
332 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
333
334         * configure.in:
335         * tools/Makefile.am:
336         * tools/dbus-launch.c:
337         * bus/Makefile.am:
338         allow --with-dbus-daemondir switch to be used to make the
339         daemon install to a seperate bindir like /usr/libexec
340         (patch from Brian Cameron <brian dot cameron at sun dot com)
341
342 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
343
344         * bus/Makefile.am (install-data-hook): removed the slash after 
345         $(DESTDIR) so we don't get the double slash which does not work
346         in windows (patch from Andras Porjesz 
347         <andras dot porjesz at siemens dot com>)
348
349 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
350
351         * dbus/dbus-sysdeps.h:
352         * dbus/dbus-sysdeps.c: 
353           add _dbus_printf_length (patch from Peter Kümmel 
354           <syntheticpp at gmx dot net>)
355
356 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
357
358         * dbus/dbus-internals.c: unistd.h is not used 
359         (_dbus_verbose_real): only enable verbose printing 
360         if DBUS_VERBOSE environment var is set to '1'
361         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
362
363 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
364
365         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
366         so we still compile on older gcc (patch from Frederic Peters 
367         <fpeters at 0d dot be>
368
369 2006-08-04  Havoc Pennington  <hp@redhat.com>
370
371         * configure.in: add -Wdeclaration-after-statement
372
373         * dbus/dbus-connection.c: change all the pending call stuff to
374         reflect the fact that pending call operations use the connection
375         lock
376
377         * dbus/dbus-pending-call.c: add locking here
378
379         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
380         field const consistent with how message field is done
381
382 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
383
384         * s/D-BUS/D-Bus/g
385
386 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
387
388         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
389         <in7y118 at public.uni-hamburg dot de> - fix invalid
390         read/write reported by valgrind
391
392 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
393
394         * Released 0.91
395
396 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
397
398         * dbus/dbus-connection.c:
399         (_dbus_connection_attach_pending_call_unlocked):
400         (connection_timeout_and_complete_all_pending_calls_unlocked):
401         Make sure we set timeout_added on pending calls to FALSE when
402         we remove the timeout from the connection
403
404 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
405
406         * Removed some extra bindings stuff lingering around (thanks timo)
407         * dbus-pendingcall.c (_dbus_pending_call_new): 
408         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
409         when we tried to take a lock on an already locked connection
410
411 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
412
413         * Released 0.90
414
415 2006-07-17  Havoc Pennington  <hp@redhat.com>
416
417         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
418         ints, reported by Owen Taylor
419
420 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
421
422         * doc/TODO:
423         * dbus/dbus-bus.c:
424         * dbus-errors.c:
425         * dbus/dbus-marshal-validate.c:
426           Removed TODO items which were fixed or are no longer relevent
427
428 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
429
430         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
431         Remove stray files from the stripped bindings
432
433 2006-07-16  Havoc Pennington  <hp@redhat.com>
434
435         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
436         Improve the error message on reply timeout
437
438 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
439
440         * Remove all bindings
441
442 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
443
444         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
445         and set pending_reply out arg to NULL is connection is disconnected
446         (connection_timeout_and_complete_all_pending_calls_unlocked): New
447         static method for cleaning up pending calls on disconnect
448         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
449         calls queued timeouts on disconnect 
450
451          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
452         Remove 
453
454 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
455
456         * bus/activation.[ch] (bus_activation_list_services): new function to 
457         get the list of services that can be activated
458
459         * bus/dispatch.c: test coverage for the new bus method
460         ListActivatableNames
461
462         * bus/driver.c: new bus method ListActivatableNames to get the list of
463         services that can be activated
464
465         * doc/dbus-specification.xml: ListActivatableNames method documentation
466
467 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
468         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
469         source files
470
471 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
472         * dbus/dbus-message-factory.c:
473         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
474
475 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
476         * dbus/dbus-connection-internal.h:
477         * dbus/dbus-connection.c:
478         * file dbus/dbus-pending-call.c:
479         * dbus/dbus-pending-call.h:
480         Make DBusPendingCall an opaque type even to D-Bus internals
481
482 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
483
484         * dbus/dbus-connection.h: remove connection_disconnect and replace with
485         connection_close
486
487         * dbus/dbus-connection.c: include dbus-bus.h
488         (_dbus_connection_read_write_dispatch): make static
489
490 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
491
492         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
493         function
494         (dbus_connection_dispatch): On disconnect unref any shared connections
495
496         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
497         for cleaning up shared connections on disconnect
498         (internal_bus_get): get a hard refrence to shared connections when
499         they are created
500         
501         * doc/TODO: Remove items which are no longer relevent or have been fixed
502         Split 1.0 todo items with a 0.90 freeze todo list
503  
504 2006-06-14  Ross Burton  <ross@openedhand.com>
505
506         * glib/dbus-gobject.c:
507         Free a leaking GArray (surely not!) in dbus_g_method_return.
508
509 2006-06-14  Ross Burton  <ross@openedhand.com>
510
511         * tools/Makefile.am:
512         * tools/dbus-monitor.c:
513         Don't use the GLib bindings in dbus-monitor (patch from Ralf
514         Habacker).
515         
516 2006-06-14  Ross Burton  <ross@openedhand.com>
517
518         * tools/dbus-print-message.c:
519         Also print the object path when outputting signals or method calls.
520
521 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
522
523         * qt/src/Makefile.am: install the qdbus.h header.
524         This allows people to actually use the installed code.
525
526 2006-06-12  Ross Burton  <ross@openedhand.com>
527
528         * glib/dbus-gproxy.c:
529         Don't leak a GArray when firing signals (thank Rob Taylor for review).
530
531 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
532
533         * Released 0.62
534
535 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
536
537         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
538         break pedantic builds. Closes bug 6043 (patch approved by
539         Havoc back in February).
540
541 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
542
543         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
544         that took a QDBusMessage parameter.
545         * qt/src/qdbusbus.h: Add a default flag for RequestName.
546         * qt/tools/dbus.cpp: Don't use automatic call because we might
547         be calling an async method: request a reply.
548
549 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
550
551         * test/qt/*: Update the testcases, including testing the new
552         functionality of sending null QByteArray and QString over the
553         bus. Add new headertest test and restore the old
554         qdbusxmlparser test.
555
556 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
557
558         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
559         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
560
561         * qt/examples/Makefile.am:
562         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
563         form.
564
565         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
566         QByteArray() (nulls) over the bus.
567         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
568         the one that has the signature suffix stripped.
569         * qt/src/qdbusreply.h: Make some methods const.
570
571 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
572
573         Patch from Timo Hoenig <thoenig@suse.de>.
574
575         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
576         required during build to EXTRA_DIST.
577         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
578         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
579         * configure.in: Fix "make dist", take care that the Makefile for
580         qt/dbus is being generated.
581
582 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
583
584         * bus/bus.c: Fix eavesdropping on method calls
585
586 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
587
588         * configure.in:
589         * dbus/dbus-userdb-util.c:
590         Add Solaris console owner patch from Artem Kachitchkine
591
592 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
593
594         * qt/Makfile.am:
595         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
596         reorganisation. Thanks to Timo Hoenig for pointing this out.
597
598 2006-06-06  Robert McQueen  <robot101@debian.org>
599
600         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
601           call to dbus_g_type_get_struct.
602
603 2006-06-06  Robert McQueen  <robot101@debian.org>
604
605         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
606           pointers were put into a GPtrArray-based specialised collection, and
607           then freed along with the array. GValues which you add into
608           collections or maps which have the NOCOPY flag set are assumed to not
609           belong to the caller, so rather than the existing pointer-stealing
610           semantics, they are copied instead. Given that the main consumers of
611           this abstraction are the bindings themselves, I don't think this is
612           too bad, but others should watch their choice of take vs set_static.
613
614 2006-06-06  Robert McQueen  <robot101@debian.org>
615
616         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
617           of g_slist_prepend not being used. Fixed copying of slist-based
618           specialised collections, then wrote a test case and found that it was
619           all broken. Went on to fix iterating and appending too. Good thing
620           nobody uses this code yet.
621
622 2006-06-06  Robert McQueen  <robot101@debian.org>
623
624         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
625           the iterators use gvalue_take_ptrarray_value (the GValues themselves
626           are discarded without unsetting, so it makes no difference whether
627           we take or set_static). Remove cases for G_TYPE_POINTER because
628           there really is nothing useful we can do with them in our
629           specialised types - we *need* boxed copy/free functions at the very
630           least.
631
632 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
633
634         * qt/dbus: Add directory. I had forgotten to add this
635         yesterday after the move...
636
637         * qt/examples/Makefile.am:
638         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
639
640         * qt/tools/Makefile.am:
641         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
642         Added feature to get and set properties.
643         Added validation of service, object path and interface names.
644
645         * qt/tools/dbusidl2cpp.cpp: Two new features:
646         1) Allow specifying both the header and the source file names,
647         by separating them with a colon.
648         2) Don't write an interface output if the -p switch wasn't
649         given, but the -a was.
650
651         * qt/src/*: Fix usage of Iterators and ConstIterators.
652         Fix shadowing of variables by other variables (-Wshadow).
653         Fix keyword-cleanliness in headers.
654         Fix ASCII-cast (QLatin1String, QLatin1Char).
655         Fix validation of member names.
656         Add extra checking of introspection data during XML parsing.
657         Various bug fixes.
658
659 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
660
661         * dbus/Makefile.am:
662         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
663         qt/dbus/qdbus.h now.
664
665 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
666
667         * configure.in: Make --disable-qt actually do
668           something. Patch inspired by Zack Rusin.
669
670 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
671
672         * qt/: Update to Subversion r548032.
673         This includes a big reorganisation of the files inside the
674         subdir.
675
676 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
677
678         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
679         clear:  
680         "Failed to connect to socket <host>:<port> <error>" instead of
681         "Failed to connect to socket <host>: <error>:<port>"
682
683         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
684         for a tcp transport. 
685
686 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
687
688         * qt/*: Update the QtDBus bindings up to revision 546310 in
689         Subversion.
690         This adds the dbuscpp2xml tool, that parses a C++ header and
691         outputs a D-BUS Introspection XML.
692
693 2006-05-21  Havoc Pennington  <hp@redhat.com>
694
695         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
696         is not NULL when it shouldn't be. Also a couple of possible fixes
697         for #4637 though I don't understand why the bug happens, to be
698         honest... also the object constructor has an assert name != NULL
699         and the name is only currently NULL for peer-to-peer proxies that 
700         I don't think anyone uses? So it should be asserting.
701         Anyway, for now at least see if we get an earlier assertion failure.
702
703         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
704         apparently broken code to be sure the tests fail and someone 
705         will fix them...
706
707 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
708
709         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
710         and arrays when they had a single element: has_next returns
711         false, even before you read the element. So, instead, check
712         the array length.
713
714 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
715
716         * qt/qdbusmessage.cpp:
717         * qt/qdbustypehelper_p.h:
718         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
719         the list is a const-reference
720
721 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
722
723         * Adding old doc patch that never got applied
724         
725         * dbus/bus.c (dbus_bus_add_match): Add documentation
726
727         * doc/dbus-specification.xml: Add documentation for the match rules
728           and the AddMatch and RemoveMatch methods
729
730 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
731
732         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
733         call (r535506)
734
735         * qt/dbusidl2cpp.cpp:
736         * qt/qdbusabstractadaptor.cpp:
737         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
738         sibling of the QDBusAbstractAdaptor objects instead of the
739         parent. (r535848)
740
741         * qt/dbusidl2cpp.cpp:
742         * qt/qdbusabstractinterface.cpp:
743         * qt/qdbusabstractinterface.h:
744         * qt/qdbusabstractinterface_p.h:
745         * qt/qdbusinterface.cpp: Make properties in interfaces
746         actually work. The code that was generated would not compile,
747         due to moc calls to functions that did not exist. They now
748         shall. (r536571)
749
750 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
751
752         * Makefile.am:
753         * configure.in:
754         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
755         Thanks to Brad Hards for providing the patch
756
757 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
758
759         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
760         call. (r535506)
761
762 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
763
764         * qt/examples/dbus.cpp: Enhance error messages and use
765         QDBusInterfacePtr.
766
767 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
768
769         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
770         and disable the copy operators. (r533772, r534746)
771
772         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
773
774         * qt/qdbusabstractinterface.cpp:
775         * qt/qdbusabstractinterface.h: Change the default call mode to
776         not use the event loop. Add convenience call() methods that
777         take a CallMode parameter. (r534042)
778
779         * qt/qdbusconnection.h: Change the default call mode to not
780         use the event loop. (r534042)
781
782         * qt/qdbusinterface.cpp:
783         * qt/qdbusinterface.h: Add a method to tell us if the
784         interface is valid (since we don't return a null pointer
785         anymore) (r534099)
786
787         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
788         (r534101)
789
790         * qt/qdbusinternalfilters.cpp: Decouple the introspection
791         function in two so taht we get the chance to introspect
792         without having a QDBusMessage (r534102)
793
794         * qt/qdbusbus.h:
795         * qt/qdbusconnection.cpp:
796         * qt/qdbusconnection_p.h:
797         * qt/qdbusintegrator.cpp: Keep a list of our own names to
798         avoid a round-trip to the server when attempting to introspect
799         one of our own objects. Also make sure the filter functions
800         match the empty interface as well. (r534108)
801         Don't keep the connection names. Instead, trust the unique
802         connection name (r534111)
803         Remove event loop usage (r534112)
804
805 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
806
807         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
808         Brad Hards.
809
810 2006-04-28  Robert McQueen  <robot101@debian.org>
811
812         * glib/dbus-gproxy.c: Fix properties so that they can be given in
813         any order, making it easier for people who inherit from this
814         object.
815
816 2006-04-28  Robert McQueen  <robot101@debian.org>
817
818         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
819         of memory from within pointer arrays and lists. Fixes bug #6300.
820
821 2006-04-28  Robert McQueen  <robot101@debian.org>
822
823         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
824         generating struct signatures. Fixes bug #6083.
825
826 2006-04-28  Robert McQueen  <robot101@debian.org>
827
828         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
829         to qdbusconnection_p.moc.
830
831 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
832
833         * README, INSTALL: Doc fixes
834         Patch from Brad Hards <bradh at frogmouth.net>
835
836 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
837
838         * qt/examples/dbus.cpp: Use the new merged-interface mode for
839         the dynamic meta object. No need to guess which interface to
840         call.
841
842 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
843
844         * qt/qdbusconnection_p.h:
845         * qt/qdbusmetaobject.cpp:
846         * qt/qdbusmetaobject_p.h:
847         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
848         for the dynamic meta object. No need to guess which
849         interface to call.
850         * qt/qdbusabstractinterface_p.h:
851         * qt/qdbusconnection.cpp:
852         * qt/qdbusintegrator.cpp:
853         * qt/qdbusinterface.cpp:
854         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
855         Add a QDBusRef that looks and behaves like DCOPRef.
856
857 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
858
859         * dbus/dbus-connection.c: Interfaces are optional in method
860         calls, so don't give up if the interface parameter is NULL.
861         Patch reviewed by Havoc Pennington.
862
863 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
864
865         * qt/qdbusreply.h: Add default constructor and operator=
866           (r532625)
867         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
868           in public headers (r532952)
869         * qt/qdbusabstractinterface.cpp:
870         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
871           make it the default (r532951)
872
873 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
874
875         * dbus/dbus-connection.c: Fix asserts
876         Patch from Tim Moloney <t.moloney at verizon.net>
877
878 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
879
880         * mono/Connection.cs, mono/Message.cs: Check Target type
881         Patch from Aaron Bockover (abockover at novell.com)
882
883 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
884
885         * INSTALL: fine-tune the requirements for the Qt4 binding.
886
887 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
888
889         * tools/dbus-print-message.c: Added support for printing of all 
890           remaining data types. Fixed logic for indentation of compound
891           data types.
892         
893 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
894
895         * INSTALL: fill out content of file providing DBus specific
896           build installations, followed by generic Auto* INSTALL file
897           content
898         
899 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
900
901         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
902           Patch by Stefan Eilers. (r529537)
903
904 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
905
906         * qt/qdbusinternalfilters.cpp: Don't show the parent's
907           contents (r528208)
908
909 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
910
911         * qt/Makefile.am: fix the dependency for
912           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
913           not in qdbusconnection.cpp.
914           Thanks to Jakub Stachowski <stachowski@hypair.net> for
915           spotting this.
916
917 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
918
919         * qt/examples/listnames.cpp:
920         * qt/examples/Makefile.am: Three ways to list the names on the
921           bus.
922
923 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
924
925         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
926           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
927
928 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
929
930         Merge from Subversion:
931         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
932           something that exists (r526315)
933         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
934           slots/signals (r526316)
935         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
936           also return an unknown-method error if the parameters don't
937           match for org.freedesktop.DBus.Properties. (r526842)
938         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
939         * qt/qdbusintegrator.cpp: Restore the proper order of
940           delivery: don't make method returns be delivered on priority
941           (r528150)
942
943 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
944
945         * configure.in qt/Makefile.am: add qt/examples
946         * qt/examples: Add QtDBus example programs:
947           - hello: Hello, World
948           - ping: Simple method-calling program
949           - pong: Simple object-exporting program (not using adaptors)
950           - complexping: Interactive method-calling program 
951                 (also gets and sets properties).
952           - complexpong: Sample program exporting methods, signals and
953                 properties, using adaptors.
954           - dbus: Simple implementation of a generic method-calling
955                 program, similar to 'dbus-send', but with semantics
956                 similar to 'dcop'.
957           - chat: Simplistic chat program, implemented using signals
958                 and the system bus. Looks like IRC.
959
960 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
961
962         * configure.in: Detect QtGui (necessary for one of the
963           example programs). Note: this increases the minimum required
964           version of Qt to 4.1.3.
965
966 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
967
968         * test/qt/*: Sync with KDE Subversion revision 523647.
969         Update the testcases to the new API. Remove testcases for
970         classes that are no longer public or have been removed.
971
972 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
973
974         * qt/*: 
975         * dbus/qdbus.h: Sync with KDE Subversion revision
976         523647. Hopefully, this will be the last of the
977         source-incompatible changes. Documentation has been improved;
978         support for QList<basic-types> has been added; QDBusObject is
979         gone; QDBus(Abstract)Interface is now a QObject with
980         auto-generated meta-object; QDBusIntrospection is marked
981         private, since QMetaObject can be used now; lots of bugfixes.
982
983 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
984
985         Patch from Milosz Derezynski <internalerror at gmail.com>
986         
987         * configure.in:
988         Output the service directory in the configure summary
989
990         * dbus-1.pc.in:
991         Add session_bus_services_dir
992
993 2006-03-10  Ross Burton  <ross@openedhand.com>
994
995         * tools/dbus-print-message.c:
996         Add support for object paths and signatures.
997
998 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
999
1000         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1001         config reload.
1002         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1003         information caches
1004         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1005         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1006         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1007         * dbus/dbus-userdb.h: Add function to flush all user/group information
1008         caches.
1009
1010 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1011
1012         * qt/dbusidl2cpp.cpp:
1013         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1014         for dcopidl2cpp, found in the KDE installations (or the more
1015         modern kalyptus): generate Qt4 C++ code for the input XML
1016         introspection. Currently no IDL parsing.
1017
1018 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1019
1020         * test/qt/*: Update the self-tests.
1021
1022 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1023
1024         * qt/*: 
1025         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1026         represents the first feature-complete version of the Qt4
1027         bindings since I took ove maintainership.
1028
1029 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1030
1031         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1032         dir. This is C++, so we can't use the DBus ones.
1033
1034 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1035
1036         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1037         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1038
1039 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * dbus/dbus-connection.c: 
1042         (_dbus_connection_block_pending_call):
1043         Check to see if our data has already been read off the connection
1044         by another blocking pending call before we block in poll.
1045         (check_for_reply_and_update_dispatch_unlocked):
1046         Code taken from _dbus_connection_block_pending_call - checks for
1047         an already read reply and updates the dispatch if there is one.
1048
1049         * test/name-test/test-pending-call-dispatch.c:
1050         New test for making sure we don't get stuck polling a 
1051         dbus connection which has no data on the socket when
1052         blocking out of order on two or more pending calls.
1053
1054 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1055
1056         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1057         make/automake don't detect that we're talking about the same
1058         .lo file if I specify the full path to the source files.
1059
1060 2006-02-26  Havoc Pennington  <hp@redhat.com>
1061
1062         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1063
1064         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1065         session bus variable is unset, suggest "man dbus-launch" and "man
1066         dbus-daemon" to figure out how to fix the problem
1067
1068 2006-02-25  Havoc Pennington  <hp@redhat.com>
1069
1070         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1071         should make this thing use the new glib options parser
1072
1073 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1074
1075         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1076         .lo files taking moc sources.
1077
1078 2006-02-25  Havoc Pennington  <hp@redhat.com>
1079
1080         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1081         and install it as a public header
1082
1083 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * Released 0.61
1086
1087 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1088         
1089         * proxies.py: Fix the callchain
1090
1091 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1092         
1093         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1094
1095         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1096         dbus/dbus-sysdeps.c
1097
1098         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1099         call _dbus_group_info_free_allocated which causes infinite loop,
1100         correctly call _dbus_group_info_free
1101
1102 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1103
1104         * qt/qdbusinterface_p.h:
1105         * qt/qdbusinterface.cpp: Use the standard
1106         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1107         calls instead of creating one for us.
1108
1109         * qt/qdbusconnection_p.h:
1110         * qt/qdbusintegrator.cpp: Remove debugging code.
1111
1112         * qt/qdbusintegrator.cpp:
1113         * qt/qdbusmessage.cpp:
1114         * qt/qdbusmessage_p.h:
1115         * qt/qdbusmessage.h: Change the behaviour of automatic
1116         reply-sending: now a reply is always sent, unless the caller
1117         didn't request one or if the user slot has already sent one.
1118
1119 2006-02-16  Robert McQueen  <robot101@debian.org>
1120
1121         * configure.in: Patch from Debian packages by Sjoerd Simons
1122         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1123         arguments so it's possible to build both bindings in the
1124         same tree.
1125
1126         * qt/Makefile.am: Fix truncated value so that make dist works.
1127
1128 2006-02-16  Robert McQueen  <robot101@debian.org>
1129
1130         * acinclude.m4, configure.in: Patch from Brad Hards
1131         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1132         improving quoting, re-ordering a few checks, and a few other
1133         aesthetic tidy-ups.
1134
1135 2006-02-16  Robert McQueen  <robot101@debian.org>
1136
1137         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1138         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1139         assertion that the next element to read from the iter is fixed in
1140         size. This is not the case when you are at the end of the iter,
1141         because the next element type is INVALID.
1142
1143         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1144         a bogus assert which means that you may not initialise a 0-length
1145         string unless you provide a non-NULL pointer. This prevented
1146         you from marshalling messages containing zero-length arrays in
1147         some cases.
1148
1149         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1150         from Rob to correct bogus asserts when trying to demarshal an
1151         array and get_fixed_array got you 0 elements. Append nothing to
1152         the GArray in this case.
1153
1154         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1155         an empty array via the glib bindings. Without all of the above
1156         patches, this new test fails.
1157
1158 2006-02-16  Robert McQueen  <robot101@debian.org>
1159
1160         * glib/dbus-gmain.c: Make the previous commit compile.
1161
1162         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1163         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1164         specify sender_keyword="foo", path_keyword="bar" when adding
1165         a signal listener, so that you can bind to signals generically
1166         but still do something useful in your callback.
1167
1168         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1169         chars so that they're not cast to chars and made negative. Thanks
1170         to Jakub Stachowski for reporting this and testing the fix.
1171
1172 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1173
1174         * dbus/dbus-glib.h:
1175         * glib/dbus-gmain.h:
1176         (dbus_g_connection_open): new method for openning
1177         a connection to an arbitrary address in the glib bindings
1178
1179         * ChangeLog: checkin last entry which doesn't seem to be commited
1180
1181 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * tools/dbus-launch.c: Fixed sh syntax output
1184
1185 2006-02-13  Robert McQueen  <robot101@debian.org>
1186
1187         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1188         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1189         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1190         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1191         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1192         missing piece of the glib bindings jigsaw puzzle. This modifies
1193         the existing specialised types to have N type parameters (rather
1194         than the current 1 or 2 for arrays and dictionaries respectively).
1195         You can then use this to get a glib type to represent any arbitrary
1196         D-Bus struct type using dbus_g_type_get_struct. The only
1197         implementation of these types is with GValueArrays as before,
1198         but it's now possible to store these in arrays, emit them in
1199         signals, etc.
1200
1201 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1202
1203         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1204         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1205         <thiago.macieira at trolltech.com>
1206
1207 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1210         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1211
1212 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * bus/connection.c (bus_connections_expect_reply): Make
1215         pending reply limit not common to all connections (Bug #5416)
1216         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1217
1218 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1219
1220         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1221
1222 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1225         patch from Doug Goldstein <cardoe at gentoo.org>
1226
1227 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1228
1229         * mono/Arguments.cs: Fix a magic number in the mono bindings
1230         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1231
1232 2006-01-27  Robert McQueen  <robot101@debian.org>
1233
1234         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1235         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1236         when generating the client-side methods, instead of overloading
1237         CSymbol which broke everything horribly. My apologies.
1238
1239 2006-01-27  Robert McQueen  <robot101@debian.org>
1240
1241         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1242         by me and Rob Taylor to add a simple_free function to D-Bus map
1243         and collection types, which allows those types which can be freed
1244         with a GDestroyNotify (such as GHashTables and GArrays, but not
1245         GPtrArrays) to be stored as the values in hashtables.
1246
1247         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1248         Patch by Rob Taylor to add nested dicts to the glib tests to check
1249         the above code works, and appears not to leak when called repeatedly.
1250
1251 2006-01-27  Robert McQueen  <robot101@debian.org>
1252
1253         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1254         to free a D-Bus allocated string with dbus_free () instead of
1255         g_free ().
1256
1257 2006-01-27  Iain Holmes  <iain@openedhand.com>
1258
1259         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1260         method from being called multiple times.
1261
1262 2006-01-19  Robert McQueen  <robot101@debian.org>
1263
1264         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1265         <rob.taylor@collabora.co.uk> to add support for generating bindings
1266         to arrays that are represented as GPtrArrays rather than GArrays (ie
1267         size-variable things, such as strings, objects, structs, etc).
1268
1269 2006-01-05  Robert McQueen  <robot101@debian.org>
1270
1271         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1272         <ricardo.kekki@movial.fi> to make it possible to inherit from
1273         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1274         a private part, and moving the setting of the DBusGProxyManager into a
1275         connection property, allowing proper GObject construction.
1276
1277 2006-01-05  Robert McQueen  <robot101@debian.org>
1278
1279         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1280         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1281         annotations when generating glib client bindings.
1282
1283 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1284
1285         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1286
1287         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1288
1289 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1292
1293 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1294
1295         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1296
1297 2005-12-19  Ross Burton  <ross@openedhand.com>
1298
1299         * doc/dbus-tutorial.xml:
1300         Document the Glib client-side bindings, and list all possible annotations.
1301
1302 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1303
1304         * dbus/bus.c (dbus_bus_release_name): Add documentation
1305
1306 2005-12-06  Robert McQueen  <robot101@debian.org>
1307
1308         * python/service.py: s/sucessful/successful/ so we're allocating to
1309         and reading from the same variable. Oops.
1310
1311 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * Released 0.60
1314
1315 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * test/qt/Makefile.am: build from srcdir
1318
1319         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1320         Note - this code is wrong and needs to be fixed by the Qt binding
1321         developers.  The flags should be treated as bitfields and not enums.
1322
1323         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1324
1325 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1328           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1329           in production code
1330
1331 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1332
1333         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1334         method for getting messages off the bus in the absence of a
1335         mainloop.  This method is much like 
1336         dbus_connection_read_write_dispatch except it does not dispatch
1337         the messages to a registered filter function.  Instead it
1338         allows a developer to process messages by directly popping
1339         them off the bus.
1340
1341 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1344         the parser to continue instead of returning error
1345         (bus_desktop_file_load): Do not free parser data when
1346         parse_section_start or parse_key_value fails because it was 
1347         already freed by parser_free (patch from Carlos Garcia Campos  
1348         <carlosgc at gnome.org>)
1349
1350 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1351
1352         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1353         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1354         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1355         test/test-segfault.c, test/test-utils.c,
1356         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1357         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1358         Various cleanup of dead code and compiler warnings (patch from
1359         Kjartan Maraas <kmaraas at gnome.org>) 
1360
1361 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1364         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1365
1366 2005-11-27  Robert McQueen  <robot101@debian.org>
1367
1368         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1369         part of the preceding one. Oops. Merge patch by Johan Hedberg
1370         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1371         on big-endian platforms.
1372
1373         * test/python/test-client.py: Add some 16-bit integers to the test
1374         values.
1375
1376 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1377
1378         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1379         method return message for property getters
1380
1381 2005-11-27  Robert McQueen  <robot101@debian.org>
1382
1383         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1384         with type v of an instance of dbus.Variant(foo, type='x') caused
1385         it to be boxed twice before sending over the bus.
1386
1387         * python/dbus_bindings.pyx, python/service.py,
1388         test/python/test-client.py: Update the constants for the new
1389         request_name flags, and update comments/test cases now that queueing
1390         is the default action.
1391
1392 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1393
1394         * configure.in:
1395         - Change version to 0.60 for impending release
1396         - upped the sonames because of ABI and API breakage
1397
1398 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * configure.in: Add test/name-test/Makefile to the generated
1401         Makefile list
1402
1403         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1404         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1405         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1406         not to queue an ower if it can't be the primary owner
1407
1408         * bus/bus.h: Add new internal BusOwner struct
1409
1410         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1411         to bus_registry_ensure and don't set the prohibit_replacement flag
1412         since they are now set per BusOwner and not per name.
1413         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1414         that returns the list of connections in a name's connection queue
1415         
1416         * bus/services.c (struct BusService): remove prohibit_replacement field
1417         (struct BusOwner): new struct for keeping track of queued connections
1418         and their associated flags for the queue
1419         (struct BusRegistry): add a BusOwner memory pool
1420         (bus_registry_new): initialize the BusOwner memory pool
1421         (bus_registry_unref): free the BusOwner memory pool
1422         (_bus_service_find_owner_link): new internal method for
1423         searching the queue for a specific connection
1424         (bus_owner_set_flags): new method for adding setting the flags on a
1425         bus owner
1426         (bus_owner_new): new method that creates a BusOwner object from the
1427         pool and sets its flags
1428         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1429         (bus_registry_ensure): Add the flags parameter
1430         (bus_registry_acquire_service): Switch from using raw connections to
1431         using the BusOwner struct
1432         Add new state machine for dealing with the new set of flags
1433         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1434         cancel_ownership, free_ownership_cancel_data, 
1435         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1436         restore_ownership, free_ownership_restore_data, 
1437         add_restore_ownership_to_transaction): Switch to using BusOwner 
1438         instead of raw connections
1439         (bus_service_add_owner): Add flags parameter
1440         Switch to using BusOwner instead of raw connections
1441         Add state machine for dealing with the new set of flags
1442         (bus_service_swap_owner): Swaps the first and second owners in the
1443         queue.  Used to make sure proper signals are sent when a service looses 
1444         or gains primary ownership.  We never insert an owner at the top of the
1445         queue.  Instead we insert it in the second position and then swap.
1446         (bus_service_remove_owner): Remove the owner from the queue sending
1447         out the NameLost and NameOwnerChanged signals if the we were the 
1448         primary owner
1449         (bus_service_get_primary_owners_connection): New method that extracts
1450         the connection from the primary owner
1451         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1452         connection
1453         (bus_service_get_allow_replacement): Changed from the old 
1454         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1455         primary owner and returns if it can be replaced or not
1456         (bus_service_set_prohibit_replacement): removed
1457         (bus_service_has_owner): returns TRUE if and owner with
1458         the specified connection exists in the queue
1459         
1460         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1461         method that only compiles if tests are enabled.  Allows us to get the 
1462         unique name of a connection so we can check it against the queue when
1463         doing regression tests
1464
1465         * bus/activation.c (bus_activation_send_pending_auto_activate),
1466         bus/dispatch.c (bus_dispatch),  
1467         bus/driver.c (bus_driver_handle_get_service_owner, 
1468         bus_driver_handle_get_connection_unix_user, 
1469         bus_driver_handle_get_connection_unix_process_id,
1470         bus_driver_handle_get_connection_selinux_security_context),
1471         bus/signals.c (connection_is_primary_owner): 
1472         use bus_service_get_primary_owners_connection instead of
1473         bus_service_get_primary_owner
1474
1475         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1476         _dbus_listen_unix_socket): Calculate the length of the socket
1477         path and use that instead of using a fixed length which was
1478         causing socket names to contain many trailing Nul bytes.
1479
1480         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1481         (dbus_g_method_get_sender): New method for extracting the sender 
1482         from a DBusGMethodInvocation
1483         (dbus_g_method_return_get_reply): changed name to 
1484         dbus_g_method_get_reply
1485         (dbus_g_method_return_send_reply): changed name to
1486         dbus_g_method_send reply
1487
1488         * doc/dbus-specification.xml: New docs that describe how the new
1489         queueing system works and talks about the changes to the how
1490         we specify socket names
1491
1492         * glib/examples/example-service.c, 
1493         glib/examples/example-signal-emitter.c,
1494         glib/examples/statemachine/statemachine-server.c:
1495         Changed the RequestName flags to the new system
1496
1497         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1498         regression test suite for testing various states of the new
1499         queueing system
1500         
1501 2005-11-15  Robert McQueen  <robot101@debian.org>
1502
1503         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1504         Taylor to add two methods, dbus_g_method_return_get_reply and
1505         dbus_g_method_return_send_reply, to allow you to get the reply
1506         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1507         and send it. The GLib bindings can't marshal a return value of
1508         something like a(s) if the array is empty - ultimately they should be
1509         made to heed the signature of the out arguments as the Python bindings
1510         now can, but this is a workable interim solution which might have
1511         other applications.
1512
1513 2005-11-15  Robert McQueen  <robot101@debian.org>
1514
1515         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1516         method to org.freedesktop.DBus to release a bus name or give up
1517         waiting in the queue for it.
1518
1519         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1520         dbus_bus_release_name method to send the ReleaseName method calls.
1521         Add constants for the return values to dbus/dbus-shared.h.
1522
1523         * doc/dbus-specification.xml: Document the new ReleaseName method
1524         in the specification.
1525
1526         * python/dbus_bindings.pyx: Add a low-level python binding for the
1527         release name method.
1528
1529         * python/exceptions.py, python/service.py: Make freeing BusName
1530         objects release the name. Add a NameExistsException, and fix a
1531         bug with creating UnknownMethodException.
1532
1533         * test/python/test-client.py: Add tests for freeing BusName
1534         objects causing names to be released.
1535
1536 2005-11-14  Robert McQueen  <robot101@debian.org>
1537
1538         * python/service.py: Include the traceback in the error reply when we
1539         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1540
1541 2005-11-14  David Zeuthen  <davidz@redhat.com>
1542
1543         Patch from Timo Hoenig <thoenig@suse.de>.
1544
1545         * bus/bus.c: I've recently investigated why the automatic reload
1546         of configuration files does not work as expected.
1547
1548         Currently, reloading configuration files does only work when
1549         running dbus-daemon with --nodaemon.  If we are running as daemon
1550         we're hitting a dnotify bug once we fork the process.
1551
1552         We're initializing the dnotify fds before calling fork().  Once
1553         the child process forked it does still have the fds (and they
1554         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1555         getting SIGIO as changes are made to the configuration files.
1556
1557         The attached patch moves the initialization of the dnotify fds to
1558         process_config_postinit().  This is safe for all current code
1559         paths and solves the dnotify disfunction.  If we're running
1560         dbus-daemon as daemon the fds for dnotify are now being
1561         initialized after fork() for the child process.
1562
1563         * configure.in: The current configure.in check for dnotify probes
1564         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1565         match for 'xlinux', too. Additionally I have adapted the configure
1566         option's style to match with the others.
1567
1568 2005-11-14  Robert McQueen  <robot101@debian.org>
1569
1570         * python/decorators.py, python/service.py: Add a new argument to the
1571         dbus.service.method decorator called sender_keyword, which if set,
1572         specifies the name of an argument which will be provided the bus
1573         name of the method caller.
1574
1575         * test/python/test-client.py, test/python/test-service.py: Add a
1576         method and test to check the sender_keyword functionality.
1577
1578 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1579
1580         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1581         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1582         Simons <sjoerd at luon.net>)
1583
1584         * AUTHORS: Add Robert McQueen for his work on the Python
1585         Bindings and other parts of D-Bus
1586
1587 2005-11-07  Robert McQueen  <robot101@debian.org>
1588
1589         * python/decorators.py: Change emit_signal function to use the
1590         signature annotation of the signal when marhsalling the arguments from
1591         the service. Fix a bug where the code checking signature length
1592         against argument length referenced the wrong variable.
1593
1594         * python/introspect_parser.py: Avoid adding the type signature of
1595         signal arguments to any methods which occur after them in the
1596         introspection data (!) by making the parser a little more careful
1597         about its current state.
1598
1599         * python/service.py: Remove debug prints from last commit (again :D).
1600
1601         * test/python/test-client.py, test/python/test-service.py: Add test
1602         signals with signature decorators to test the strict marshalling code
1603         gives errors at the right time. Could do with checking the signals
1604         actually get emitted too, given that the test does nothing with
1605         signals at the moment...
1606
1607 2005-11-07  Robert McQueen  <robot101@debian.org>
1608
1609         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1610         instances to stop madness of creating new instances representing
1611         the same bus connection all the time, rendering any tracking of
1612         match rules and bus names quite meaningless. Caught a bug where
1613         the private argument to SessionBus() and friends was being passed
1614         in as use_default_mainloop by mistake. Still some problems with
1615         multiple dbus_binding.Connection instances representing the same
1616         low-level connection (eg when you use both SessionBus() and
1617         StarterBus() in same process), but it's a lot better now than it
1618         was.
1619
1620         * python/dbus_bindings.pyx: Add constants with the return values
1621         for bus_request_name().
1622
1623         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1624         and retrieve the same instances for the same name, so deletion can be
1625         done with refcounting. Also now throws some kind of error if you
1626         don't actually get the name you requested, unlike previously...
1627
1628         * test/python/test-client.py: Add tests for instance caching of buses
1629         and bus name objects.
1630
1631 2005-11-04  Robert McQueen  <robot101@debian.org>
1632
1633         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1634         marshalling of boolean values. Add some booleans to the values in
1635         the test client.
1636
1637         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1638         argument to the dbus.service.method decorator, which allows you to
1639         name arguments to take two callback functions for replying with
1640         return values or an exception.
1641
1642         * test/python/test-client.py, test/python/test-service.py: Add test
1643         case using asynchronous method reply functions, both return values and
1644         errors, and from within both the function itself and from a mainloop
1645         callback.
1646
1647         * python/decorators.py, python/service.py: Perform checking that the
1648         number of method/signal arguments matches the number of types in the
1649         signature at class loading time, not when you first introspect the
1650         class.
1651
1652         * python/service.py: Remove debug print left by the last commit.
1653
1654 2005-11-03  Robert McQueen  <robot101@debian.org>
1655
1656         * python/service.py: Heavy refactoring of method invocation, with
1657         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1658         in favour of a new _message_cb that uses seperate functions for
1659         looking up the method to call, marshalling the return values, and
1660         sending exceptions as errors, and is easier to follow as a
1661         consequence.  Fixes some corner cases about returning things that
1662         don't match your declared out_signature, allows exceptions to define
1663         _dbus_error_name and have it be sent over the bus as the error name,
1664         and paves the way for cool stuff like heeding the message no reply
1665         flag, asynchronous method implementations, informing the method of the
1666         sender, and including backtraces in the error messages.
1667
1668         * test/python/test-client.py: Catch and print exceptions thrown in the
1669         async callback tests, rather than passing them to the low-level
1670         bindings to be ignored in a noisy and frustrating manner.
1671
1672 2005-11-03  Robert McQueen  <robot101@debian.org>
1673
1674         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1675         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1676         tweak others to be consistent.
1677
1678         * test/python/test-client.py: Tweak output of testInheritance.
1679
1680 2005-10-29  Robert McQueen  <robot101@debian.org>
1681
1682         * python/service.py: Major changes to allow multiple inheritance
1683         from classes that define D-Bus interfaces:
1684         
1685          1. Create a new Interface class which is the parent class of
1686             Object, and make the ObjectType metaclass into InterfaceType.
1687         
1688          2. Patch written with Rob Taylor to replace use of method_vtable
1689             with code that walks the class's __MRO__ (method resolution order)
1690             to behave like Python does when invoking methods and allow
1691             overriding as you'd expect. Code is quite tricky because
1692             we have to find two methods, the one to invoke which has the
1693             right name and isn't decorated with the /wrong/ interface,
1694             and the one to pick up the signatures from which is decorated
1695             with the right interface.
1696         
1697             The same caveats apply as to normal multiple inheritance -
1698             this has undefined behaviour if you try and inherit from two
1699             classes that define a method with the same name but are
1700             decorated with different interfaces. You should decorate
1701             your overriding method with the interface you want.
1702         
1703          3. Replace grungy introspection XML generation code in the metaclass
1704             with dictionaries that cope correctly with multiple inheritance
1705             and the overriding of methods. This also uses the signature
1706             decorations to provide correct introspection data, including
1707             the debut appearance of the types of your return values. :D
1708
1709         * test/python/test-client.py, test/python/test-service.py: Add a test
1710         case to try invoking an method that overrides one inherited from a
1711         D-Bus interface class.
1712
1713 2005-10-29  Robert McQueen  <robot101@debian.org>
1714
1715         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1716         Add checking for the end of struct character when marshalling a
1717         struct in MessageIter.append_strict.
1718
1719         * python/examples/example-service.py,
1720         python/examples/gconf-proxy-service.py,
1721         python/examples/gconf-proxy-service2.py: Update to use gobject
1722         mainloop directly rather than appearing to depend on gtk.
1723
1724         * python/test/test-client.py, python/test/test-server.py: Remove
1725         obsolete and broken test scripts for old bindings. We have up to date
1726         and working tests in test/python/.
1727
1728 2005-10-29  Robert McQueen  <robot101@debian.org>
1729
1730         * python/decorators.py: Add optional arguments to the method and
1731         signal decorators to allow you to specify the signature of arguments
1732         and return values. Preserve the doc strings of signal functions in the
1733         decorated version, for pydoc and friends.
1734
1735         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1736         parse_signature_block function with an iterable dbus.Signature()
1737         type. Fix a bug in MessageIter.append_strict where you could append
1738         anything by claiming it was a string.
1739
1740         * python/service.py: Use the out_signature decoration on methods to
1741         marshal return values, meaning you no longer require dbus.Array()
1742         or dbus.Dictionary() to indicate the type when returning empty
1743         arrays or dictionaries. Fix a bug where exceptions which are defined
1744         in __main__ are not turned into error replies.
1745
1746         * test/python/test-client.py, test/python/test-service.py: Add test
1747         for correct marshalling of return values according to out_signature.
1748         Fix a bug in the async call test where the error_handler is missing a
1749         self argument.
1750
1751 2005-10-29  Robert McQueen  <robot101@debian.org>
1752
1753         * glib/Makefile.am, glib/examples/Makefile.am,
1754         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1755         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1756
1757         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1758
1759         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1760         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1761         the command line.
1762
1763 2005-10-27  Ross Burton  <ross@openedhand.com>
1764
1765         * dbus/dbus-marshal-header.c:
1766         Remove dead code.
1767
1768         * glib/dbus-gobject.c:
1769         Stop compiler warning.
1770
1771 2005-10-25  Ross Burton  <ross@openedhand.com>
1772
1773         * dbus/dbus-auth.c:
1774         * dbus/dbus-server-unix.c:
1775         * dbus/dbus-transport-unix.c:
1776         * glib/dbus-gmain.c:
1777         * glib/dbus-gobject.c:
1778         Add some const keywords.
1779
1780 2005-10-25  Ross Burton  <ross@openedhand.com>
1781
1782         * doc/dbus-specification.xml:
1783         Document the NoReply annotation.
1784
1785         * glib/dbus-binding-tool-glib.h:
1786         * glib/dbus-binding-tool-glib.c:
1787         Respect the NoReply annotation.
1788
1789 2005-10-24  Robert McQueen <robot101@debian.org>
1790
1791         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1792         derive from unicode instead of str, and encode/decode UTF-8 when
1793         marshalling/unmarshalling bus messages
1794
1795         * python/introspect_parser.py: encode introspection data as UTF-8
1796         before passing the buffer into libxml2
1797
1798         * test/python/test-client.py: add unicode test strings
1799
1800         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1801         ignore generated python test files
1802
1803 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1806         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1807         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1808
1809         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1810         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1811         when constructing struct signatures
1812
1813         * python/_dbus.py (Bus): handle private connections using the
1814         private keyword in the constructor. defaults to private=False
1815         (Bus::close): new method to close a connection to the bus
1816
1817         * python/dbus_bindings.pyx (Connection::close): renamed method
1818         was previously called disconnect
1819         (bus_get): now supports getting a private connection
1820
1821         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1822         keyword is set to True.  if it is, execute the method without waiting
1823         for a reply
1824         (ProxyObject::_introspect_execute_queue): new method for executing
1825         all the pending methods that were waiting for the introspect to
1826         finish.  this is called when introspect either succeeds or fails
1827         (ProxyObject::_introspect_error_handler): call queued methods
1828
1829 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1832         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1833
1834         * python/service.py (Object::_message_cb): handle exceptions correctly
1835         by sending them over the wire to the calling app.  This makes sure
1836         the client returns immediately instead of waiting the 15 seconds to
1837         timeout.
1838
1839         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1840         Add a test to benchmark how long it takes to introspect a service and 
1841         call a method which returns a large element (pretty fast)
1842
1843         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1844         method which pushes a lot of data
1845
1846 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1847
1848         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1849         reclaim memory outside of the loop and use del istead of just setting
1850         the key to None
1851
1852 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1853
1854         * python/service.py (ObjectType::_reflect_on_signal): Always close
1855         signal tag even when there are no arguments
1856
1857 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * configure.in: Set mono, mono-docs and Qt3 to default
1860         to no instead of auto when building.  These bindings do not
1861         have full time maintainers and will not be supported for the
1862         1.0 release.
1863
1864 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1865
1866         patches from Michael Krivoruchko <misha at sun.com>: 
1867         
1868         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1869         _dbus_connection_message_sent, 
1870         _dbus_connection_send_preallocated_unlocked_no_update, 
1871         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1872         is NULL when calling _dbus_verbose
1873
1874         * configure.in: check for functions getpeerucred and getpeereid
1875
1876         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1877         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1878         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1879         Patch was only tested on Solaris 10 x86 so it might be issues
1880         with other platforms (i.e. BSDs and MacOSX)
1881         
1882
1883 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1884
1885         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1886         instead of marshal basic so we can handle recursive types in a variant
1887
1888         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1889         in variants
1890
1891         * test/glib/test-service-glib.c, test-service-glib.xml
1892         (my_object_echo_variant [EchoVariant], 
1893         my_object_process_variant_of_array_of_ints123
1894         [ProcessVariantOfArrayOfInts123]): 
1895         Add two test methods
1896
1897         * python/introspect_parser.py: New module for parsing introspect
1898         data.
1899
1900         * python/dbus_bindings.pyx:
1901         (various places): when throwing errors fix to use errormsg instead 
1902         of message local variable because Pyrex can get confused with other 
1903         message variables (initial patch by Robert McQueen 
1904         <robert.mcqueen at collabora.co.uk>)
1905         (MessageIter::parse_signature_block): new method for getting the next
1906         block in a signiture.
1907         (MessageIter::append_strict): new method for appending values strictly
1908         using the passed in signature instead of guessing at the type
1909         (MessageItter:: append_dict, append_struct, append_array): use 
1910         signatures to marshal children if the signature is available
1911         
1912         * python/exceptions.py (IntrospectionParserException): new exception
1913
1914         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1915         introspected signatures if available, else we fall back to the
1916         old way of doing things.
1917         (ProxyObject::_introspect_reply_handler ): parse introspection data
1918         
1919         * python/service.py (ObjectType::_reflect_on_method): Properly
1920         terminate <method> if there are no args in the reflection data
1921
1922         * test/python/test-client.py: add tests for talking with the GLib
1923         test server.  This gives us better coverage for introspection since
1924         python to python will always generate arguments as variants.  It also
1925         allows us to test the robustness of the GLib bindings and interlanguage
1926         communications.
1927
1928         
1929 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * bus/driver.c (bus_driver_handle_introspect): Add signals
1932         to the introspect data. (patch from Daniel P. Berrange 
1933         <dan at berrange.com>)
1934
1935         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1936         
1937         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1938         _dbus_connection_run_builtin_filters): Changed these to
1939         be unlock_no_update functions and call 
1940         _dbus_connection_send_unlocked_no_update instead of
1941         dbus_connection_send to avoid locking errors.
1942         
1943         * doc/TODO: Removed the make Ping test TODO
1944         
1945 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1946
1947         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1948         We now copy the message from a DBusError and then free 
1949         the error object befor throwing the error
1950
1951         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1952         DBusBindingOutputMode enum which was causing a warning.
1953         #include <time.h> so using time_t is explicitly defined
1954
1955 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1958         - dbus/dbus-bus.c
1959         (internal_bus_get): new method that take over the heavy lifting
1960         of dbus_bus_get and adds the ability to get a private connection
1961         to the bus
1962         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1963         interface as in previous versions
1964         (dbus_bus_get_private): new method that is a wrapper to 
1965         internal_bus_get to get a private connection to the bus
1966
1967         - dbus/dbus-bus.h
1968         (dbus_bus_get_private): add as a public libdbus interface
1969
1970         - dbus-1.pc.in: output system_bus_default_address and 
1971         sysconfdir variables so apps can use them when compiling
1972
1973 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1974         * dbus/qt: New Qt bindings
1975
1976 2005-09-12  Waldo Bastian  <bastian@kde.org>
1977
1978         * dbus/dbus-marshal-validate.c,
1979         doc/dbus-specification.xml, test/Makefile.am,
1980         test/test-names.c: allow hyphens in bus names.
1981
1982 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1983
1984         * test/data/auth/fallback.auth-script: we don't
1985         retry the EXTERNAL method when we know its going
1986         to fail anymore.
1987
1988 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1989
1990         * dbus/dbus-connection-internal.h: rename
1991         (add|remove|toggle)_(watch|timeout) to unlocked()
1992         
1993         * dbus/dbus-connection.c: ditto.
1994         
1995         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1996         Update some callers for the renaming.
1997
1998 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1999
2000         * dbus/dbus-auth.c: (record_mechanisms): don't
2001         retry the first auth mechanism because we know
2002         we're just going to get rejected again.
2003         
2004         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2005         Fix thinko ... and what a nasty little bugger to
2006         track down you were ...
2007
2008         * dbus/dbus-connection.c:
2009         (_dbus_connection_add_watch),
2010         (_dbus_connection_remove_watch): add note about
2011         these needing the connection to be locked.
2012         (_dbus_connection_get_dispatch_status_unlocked):
2013         set status to DATA_REMAINS when we queue the
2014         disconnected message.
2015         
2016         * bus/dispatch.c:
2017         (bus_dispatch): fix warning.
2018         (check_existent_service_no_auto_start):
2019         Expect ChildSignaled error too.
2020         (check_existent_hello_from_self): fix another
2021         couple of warnings.
2022         
2023 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2024
2025         Patches from James Willcox <snorp@snorp.net>
2026
2027         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2028
2029         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2030         support array "out" parameters.
2031
2032         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2033         for 16-bit int support.
2034
2035 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2036
2037         * Released 0.50
2038
2039         * Patch from Steve Grubb:
2040         - bus/activation.c (bus_activation_service_reload_test): clean up
2041         some indentation
2042         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2043         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2044         buffer overflows in the test suite.  This is non critical because
2045         it can not be exploited and this code is only run when doing a 
2046         make check.
2047
2048         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2049         - configure.in: Don't check and link against kdecore, only qt headers
2050         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2051         - gcj/org/freedesktop/dbus/Makefile.am:
2052         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2053         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2054         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2055         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2056         - tools/Makefile.am: Add platform extentions to binaries 
2057         (i.e. .exe on windows)
2058
2059         * configure.in: 
2060         - Make it so if no suitable version of python is found we only 
2061         disable building python instead of exiting the configure script
2062         - Require version 2.4 of glib for glib bindings
2063         - Up version to 0.50
2064
2065         * python/__init__.py: Sync version with libdbus to (0,50,0)
2066         
2067 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2068
2069         * dbus/dbus-object-tree.c (find_subtree_recurse):
2070         a couple of optimizations (bug #710):
2071         - do a binary search in the tree
2072         - insert a new child at the right place directly, no need for
2073           qsort anymore
2074         - do the "double alloc" thing when allocating children
2075
2076 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2077
2078         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2079
2080         * python/dbus_bindings.pyx: Memory management foo
2081         (global): remove hacky _user_data_references global list
2082         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2083         tuples. Unref user_data
2084         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2085         (Connection::__del__): Remove and replace with __dealloc__ method
2086         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2087         to keep tuple from being deallocated instead of the global var hack
2088         (Connection::register_object_path): Stuff user_data into a tuple.
2089         Use Py_INCREF to keep tuple from being deallocated instead of the 
2090         global var hack
2091         (Connection::register_fallback): Stuff user_data into a tuple.
2092         Use Py_INCREF to keep tuple from being deallocated instead of the 
2093         global var hack
2094         (GIL_safe_pending_call_notification): Don't unref the message
2095         because it gets unreffed when going out of scope.  Py_XDECREF
2096         the user_data
2097         (PendingCall::__del__): Remove and replace with __dealloc__ method
2098         (PendingCall::set_notify): ref the pending call because we will
2099         need it to stick around for when the notify callback gets called
2100         (Message::__del__): Remove and replace with __dealloc__ method
2101
2102         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2103         gthreads_init to match up with the dbus call
2104
2105         * python/glib.py (init_threads): Changed to threads_init to match
2106         up with gobject.threads_init().  init_threads is kept for backwards
2107         compat but will most likely be deprecated in the future
2108
2109         * test/python/test-client.py: 
2110         - revamp to use Python's unittest functionality
2111         - add async call tests
2112         - setup threads in glib and dbus so we make sure locks are working
2113         
2114 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2115
2116         * python/dbus_bindings.pyx 
2117         (_pending_call_notification, cunregister_function_handler, 
2118         cmessage_function_handler): All callback functions have been rearranged 
2119         to workaround a bug in Pyrex when working with the GIL which is Python's 
2120         global lock when dealing with threads.  They have been split into
2121         a wrapper function (which assumes the name of the old function) and
2122         a _GIL_safe_<function name> function which contains the functionality
2123         of the old function.  This ensures that Pyrex does not write code
2124         the lock is released.
2125         
2126
2127 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2128
2129         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2130         GIL global lock when calling back into Python
2131
2132 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2133
2134         * Release 0.36.2
2135
2136         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2137
2138         * bus/policy.c (bus_policy_allow_user): change default "user is
2139         allowed" to be "user has same uid as the bus itself"; any
2140         allow/deny rules will override.
2141
2142         * bus/session.conf.in: don't allow all users, since now by default
2143         the user that ran the bus can connect.
2144
2145 2005-08-26  Colin Walters  <walters@verbum.org>
2146
2147         * tools/dbus-print-message.c (print_message): Flush stdout
2148         after printing a message, so that redirecting to a file, then
2149         hitting Ctrl-C works.
2150
2151 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2152
2153         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2154         (EmptyMessage): new class that subclasses Message.  This is a workaround
2155         to a Pyrex bug that fails to call __del__ when the Message object goes out
2156         of scope.  For some reason subclassing Message fixes this bug
2157         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2158         - s/Message(_create=0)/EmptyMessage everywhere else
2159         
2160         * test/python/test-{server|client}.py: add the python/.libs directory
2161         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2162         get picked up from the system
2163
2164 2005-08-25  Colin Walters  <walters@verbum.org>
2165
2166         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2167         to Ryan Lortie for the suggestion.
2168
2169 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2170
2171         * test/python: Add python regression test
2172
2173         * configure.in: Add test/python/Makefile
2174
2175         * test/Makefile.am: Add the python directory to SUBDIRS
2176
2177 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2178
2179         * Release 0.36.1
2180
2181         * python/_dbus.py: 
2182         (Interface::connect_to_signal): propigate keywords for match on args
2183         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2184
2185         * python/proxies.py (ProxyObject::connect_to_signal):
2186         propigate keywords for match on args
2187
2188         * Makefile.am: point everything to pyexecdir since python borks
2189         on multilib
2190
2191 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2192
2193         * Release 0.36
2194
2195 2005-08-23  Colin Walters  <walters@verbum.org>
2196
2197         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2198
2199 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2200
2201         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2202         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2203         of defining DBusConnection ourselves.
2204
2205 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2206
2207         * python/dbus.pth: New path file to fix up problems when installing
2208         c libraries to lib64 and python files to lib.
2209
2210         * python/Makefile.am: install dbus.pth in the correct spot
2211
2212 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2213         * ChangeLog: clean up my last entry a bit
2214
2215         * doc/introspect.xsl: New stylesheet for converting introspection data
2216         into browser renderable xhtml. Contributed by Lennart Poettering.
2217
2218         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2219         Poettering.
2220
2221         * doc/dbus-tutorial.xml: 
2222         - Add Colin Walter to the Authors section for authoring the GLib
2223         section
2224         - Add descriptions of the new signature and type functionality
2225         in the Python complex type mapping section
2226         - Add a sidenote on the new args matching functionality in 
2227         the Python bindings
2228         - Fixed up some of the examples to use the gobject.MainLoop
2229         instead of gtk.main
2230         
2231         * python/_dbus.py:
2232         (Bus::_create_args_dict): New. Converts a hash of arg matches
2233         to a more useable format
2234         (Bus::add_signal_receiver): add a **keywords parameter for catching
2235         arg match parameters
2236         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2237         arg match parameters
2238         
2239         * python/matchrules.py:
2240         (MatchTree::exec_matches): Check for arg matches
2241         (SignalMatchRule::add_args_match): New method
2242         (SignalMatchRule::execute): Added args_list parameter as an optimization
2243         so we don't have to marshal the args more than once
2244         (SignalMatchRule::match_args_from_list): New method that checks to see
2245         if the rule's arg matches match an argument list.  Only arguments
2246         set in the rule are checked.
2247         (SignalMatchRule::match_args_from_rule): New method that checks to see
2248         if the rule's arg matches match another rule's.  All args have to match
2249         in order for this method to return true.  If either rule has more args
2250         then it is not a match.
2251         (SignalMatchRule::is_match): Add args match
2252         (SignalMatchRule::repr): Add args to the final output if they exist
2253
2254 2005-08-17  Ross Burton  <ross@burtonini.com>
2255
2256         * glib/dbus-gproxy.c:
2257         (dbus_g_proxy_call_no_reply): unref the message once sent.
2258         (dbus_g_proxy_call): protect against NULL proxy.
2259
2260 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * python/__init__.py: Version updated (0, 43, 0)
2263         
2264         * python/dbus_bindings.pyx: 
2265         - Fixed type objects to have self passed into __init__
2266         - Added the Variant type
2267         - Add the ability to specify types or signatures for Array, Variant 
2268         and Dictionary
2269         (Connection::send_with_reply_handlers): return a PendingCall object
2270         (_pending_call_notification): handle the case when an error is returned 
2271         without an error message in the body
2272         (MessageIter::get_boolean): return True or False instead of an integer
2273         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2274         and add checks for objects with embeded signatures or types (Array, 
2275         Variant and Dictionary)
2276         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2277         (MessageIter::append_dict): handle embeded types or signatures
2278         (MessageIter::append_array): handle embeded types or signatures
2279         (MessageIter::append_variant): new method
2280         
2281         * python/proxies.py:
2282         (DeferedMethod): New. Dummy executable object used when queuing calls 
2283         blocking on introspection data
2284         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2285         or shorter timeouts for method calls
2286         (ProxyObject): Add first pass at an introspection state machine
2287         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2288         introspection. 
2289         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2290         the usual mechanisms for sending messages.  This is to avoid a deadlock
2291         where the Intospect call would be queued waiting for the Introspect 
2292         call to finish ;-)
2293         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2294         when introspection returns with no error
2295         (ProxyObject::_introspect_error_handler): New.  This method is called 
2296         when introspection encounters an error
2297         (ProxyObject::__getattr__): Code to handle different introspection 
2298         states.  Queue async calls or block blocking calls if we are 
2299         introspecting.  Pass through as normal if we are not or are done with 
2300         introspecting.
2301         
2302         * python/service.py: Import signal and method from decorators.py
2303
2304         * python/types.py: Add Variant type
2305
2306 2005-08-16  Colin Walters  <walters@verbum.org>
2307
2308         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2309         DBusError message is NULL.
2310
2311 2005-08-09  Havoc Pennington  <hp@redhat.com>
2312
2313         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2314         malloc'd copy of the name parameter
2315
2316 2005-08-09  Havoc Pennington  <hp@redhat.com>
2317
2318         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2319         warning if the reply serial is set to 0
2320
2321 2005-08-04  Colin Walters  <walters@verbum.org>
2322
2323         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2324         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2325         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2326         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2327         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2328         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2329         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2330         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2331         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2332         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2333         
2334         Prefix name with _ to ensure they're not exported.  All callers
2335         updated.
2336
2337         * glib/dbus-gvalue.c (typecode_to_gtype)
2338         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2339         (signature_iter_to_g_type_dict)
2340         (signature_iter_to_g_type_array)
2341         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2342         (dbus_gtypes_from_arg_signature):
2343         Move to dbus-gsignature.c.
2344
2345         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2346         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2347         (dbus_binding_tool_output_glib_client): Ditto.
2348
2349         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2350         and dbus-gsignature.h
2351
2352         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2353         unused variable.
2354
2355 2005-08-03  Colin Walters  <walters@verbum.org>
2356
2357         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2358         catch any incompatible changes accidentally made.
2359
2360 2005-08-03  Havoc Pennington  <hp@redhat.com>
2361
2362         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2363         typo, from Julien Puydt
2364
2365         * bus/connection.c (bus_connection_disconnected): we were always
2366         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2367
2368 2005-08-01  Colin Walters  <walters@verbum.org>
2369
2370         Patch from Joe Markus Clarke:   
2371         
2372         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2373         use-after-free.
2374
2375 2005-08-01  Colin Walters  <walters@verbum.org>
2376         
2377         Patch from Joe Markus Clarke:   
2378         
2379         * tools/dbus-send.c (main): 
2380         
2381         Don't use C99 style initializers (bug #3933).
2382         
2383 2005-08-01  Colin Walters  <walters@verbum.org>
2384
2385         Patch from Joe Markus Clarke:   
2386
2387         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2388         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2389         * glib/dbus-gobject.c (write_interface):
2390
2391         Don't use C99 style initializers (bug #3933).
2392
2393 2005-07-31  Havoc Pennington  <hp@redhat.com>
2394
2395         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2396         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2397
2398 2005-07-30  Havoc Pennington  <hp@redhat.com>
2399
2400         * fix a bunch of Doxygen warnings and mistakes
2401
2402 2005-07-30  Havoc Pennington  <hp@redhat.com>
2403
2404         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2405         DBUS_BUILD_TESTS since it's now used in production code
2406
2407 2005-07-29  Havoc Pennington  <hp@redhat.com>
2408
2409         * test/glib/test-profile.c (write_junk): initialize the junk
2410         buffer so valgrind doesn't have a breakdown
2411
2412 2005-07-29  Havoc Pennington  <hp@redhat.com>
2413
2414         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2415         (match_rule_matches): remove unused arg
2416         (test_matching): add tests for match_rule_matches()
2417
2418         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2419         do arg0='foo' arg5='bar' in the match rules
2420         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2421
2422         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2423
2424 2005-07-29  Ross Burton  <ross@openedhand.com>
2425
2426         * dbus/dbus-connection.c:
2427         Don't create a DBusCondVar which is never used.
2428
2429 2005-07-27  Ross Burton  <ross@openedhand.com>
2430
2431         * dbus/dbus-message.c:
2432         Reduce the size of the maximum cached message to 10K.
2433
2434 2005-07-25  Ross Burton  <ross@openedhand.com>
2435
2436         * glib/dbus-gproxy.c:
2437         Remove matches when all proxies are unregistered.
2438
2439 2005-07-24  Colin Walters  <walters@verbum.org>
2440
2441         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2442         typedata; recursive arrays won't have it.
2443
2444         * test/glib/test-dbus-glib.c:
2445         * test/glib/test-service-glib.c:
2446         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2447         
2448 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2449
2450         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2451         proxies.py, service.py: Cleanup of code after running it through the
2452         pyflakes code checker mostly dealing with undefined names.  
2453         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2454
2455 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2456
2457         * NEWS: Update to 0.35.2
2458
2459 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2460
2461         * python/_dbus.py: Remove import of the dbus.services
2462         module as it no longer exists (patch from Dimitur Kirov)
2463
2464         * python/service.py (Object::__init__): Fixed typo
2465         s/name/bus_name (patch from Dimitur Kirov)
2466
2467         * python/examples/example-signal-emitter.py: import dbus.glib
2468         to get the main loop and use glib mainloop instead of gtk so
2469         X doesn't have to be running.
2470
2471         * python/examples/example-signal-recipient.py: import dbus.glib
2472         to get the main loop and use glib mainloop instead of gtk so
2473         X doesn't have to be running. Import the decorators module
2474         directly.
2475
2476         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2477         didn't pick up on but are needed to build
2478
2479         * configure.in: upped version to 0.35.2
2480
2481         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2482         added Colin Walters' SELinux API rename patch from head 
2483         s/unix sercurity context/selinux security context/
2484
2485 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2486
2487         * python/Makefile.am: dbus_binding.pxd.in should be included 
2488         in EXTRA_DIST not dbus_binding.pxd
2489         fix up $(srcdir) hopefully for the last time
2490
2491         * NEWS: Update to 0.35.1
2492
2493 2005-07-16  Colin Walters  <walters@verbum.org>
2494
2495         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2496         from bus_driver_handle_get_connection_unix_security_context.  Update for
2497         error usage.
2498         (message_handlers): Update for renames.
2499
2500         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2501         _dbus_string_init failure correctly.
2502         (bus_selinux_append_context): Convert SID to context.  Append it
2503         as a byte array.
2504         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2505         hasn't been called.
2506
2507         * bus/selinux.h: Update prototype.
2508
2509         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2510         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2511
2512 2005-07-15  Colin Walters  <walters@verbum.org>
2513
2514         * doc/TODO: Add note about convenience wrappers.
2515
2516 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2517
2518         * NEWS: Update to 0.35
2519
2520 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2521
2522         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2523         so distcheck doesn't fail
2524
2525         * glib/examples/Makefile.am: Add example-service.xml and 
2526         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2527
2528         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2529         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2530
2531         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2532         compiler looks in the right places during distcheck
2533
2534 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2535
2536         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2537         to fail
2538
2539 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2540
2541         * python/examples/example-service.py,
2542         python/examples/example-signal-emitter.py: Fixed up examples
2543         for API changes
2544
2545 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2546
2547         * python/__init__.py: Upped to version (0,42,0) because of
2548         the API change
2549
2550 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2551
2552         * ChangeLog: fix date in last entry
2553
2554         * configure.in, bus/system.conf.in: add the ability to configure 
2555         the system bus user at compiletime with the --with-dbus-user flag
2556         (patch from Kristof Vansant)
2557
2558 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2559
2560         * bus/dispatch.c, test/test-service.c: Add testcase
2561         for sending messages to oneself (TODO item).
2562
2563         * python/service.py (class Object): Swap ordering of bus_name 
2564         and object_path parameters to better support inheritance.
2565
2566         * doc/dbus-tutorial.xml: change Python docs to reflect change
2567         in parameter ordering and fix the inheritance section.
2568
2569         * doc/TODO: remove sending message to oneself TODO item
2570
2571 2005-07-15  Ross Burton  <ross@openedhand.com>
2572
2573         * glib/dbus-gproxy.c:
2574         Fix a leak when calling methods via the proxy.
2575
2576 2005-07-15  Colin Walters  <walters@verbum.org>
2577
2578         * bus/selinux.c (bus_selinux_append_context): Wrap in
2579         HAVE_SELINUX.
2580
2581 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2582
2583         * python/_dbus.py (Bus::remove_signal_receiver):
2584         don't add a callback to the match if none has been passed in
2585         
2586         * python/matchrules.py (SignalMatchTree::remove): if the rule
2587         being matched does not have a callback treat it as a wildcard
2588         fix matching logic
2589
2590         * doc/dbus-tutorial.xml: Add Python tutorial
2591
2592 2005-07-14  Colin Walters  <walters@verbum.org>
2593
2594         * bus/driver.c
2595         (bus_driver_handle_get_connection_unix_security_context): New function.
2596         (message_handlers): Add.
2597
2598         * bus/selinux.c (bus_selinux_append_context): New function; appends
2599         security context to message.
2600
2601         * bus/selinux.h: Prototype.
2602
2603         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2604
2605 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2606
2607         * bus/activation.c: clean up all tabs to be 8 spaces 
2608         (bus_activation_activate_service): make sure we clean up
2609         if activation fails
2610
2611         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2612         (check_shell_fail_service_auto_start): New function
2613         tests to make sure we get fail properly when trying to auto start a service
2614         with a faulty command line
2615         (check_shell_service_success_auto_start): New function tests to make sure
2616         auto started services get the arguments on the command line
2617
2618         * test/test-shell-service.c: Added service for testing auto-starting with 
2619         command line arguments
2620
2621         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2622         test/data/valid-service-files/debug-shell-echo-success.service.in:
2623         Added service files for testing auto-starting with command line arguments
2624
2625         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2626
2627 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2628
2629         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2630         
2631         * dbus/Makefile.am: added new files to build.
2632
2633         * bus/activation.c (bus_activation_activate_service): support
2634         activation commands with parameters.
2635
2636         * test/shell-test.c: added test program for the shell parsing
2637         code.
2638
2639 2005-07-13  David Zeuthen  <davidz@redhat.com>
2640
2641         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2642         64 bit signed and unsigned parameters
2643
2644 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2645
2646         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2647
2648         * python/service.py (class Name): renamed BusName to make it clearer
2649         what the object is for (a name on the bus)
2650
2651         * python/examples/example-service.py,
2652         python/examples/example-signal-emitter.py: change the Name object to
2653         BusName
2654
2655 2005-07-12  Colin Walters  <walters@verbum.org>
2656
2657         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2658
2659         * tools/dbus-launch.c: Include sys/select.h.
2660
2661 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2662         * python/dbus_bindings.pyx.in: removed
2663
2664         * python/dbus_bindings.pyx: Added.
2665         - Fixed some memleaks (patch from 
2666         Sean Meiners <sean.meiners@linspireinc.com>)
2667         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2668         own pxd file (Pyrex definition)
2669         - Broke out glib dependancies into its own pyx module
2670         
2671         * python/dbus_bindings.pdx: Added.
2672         - Defines C class Connection for exporting to other modules
2673
2674         * python/dbus_glib_bindings.pyx: Added.
2675         - New module to handle lowlevel dbus-glib mainloop integration
2676
2677         * python/glib.py: Added.
2678         - Registers the glib mainloop when you import this module
2679
2680         * python/services.py: Removed (renamed to service.py)
2681         
2682         * python/service.py: Added.
2683         - (class Server): renamed Name
2684
2685         * python/__init__.py: Bump ro version (0,41,0)
2686         -don't import the decorators or service module
2687         by default.  These now reside in the dbus.service namespace
2688
2689         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2690         setup function on creation 
2691
2692         * python/examples/example-service.py,
2693         python/examples/example-signal-emitter.py: update examples
2694
2695         * python/examples/gconf-proxy-service.py,
2696         python/examples/gconf-proxy-service2.py: TODO fix these up
2697
2698         * doc/TODO: Addition
2699         - Added a Python Bindings 1.0 section
2700         - added "Add match on args or match on details to match rules"
2701
2702
2703 2005-07-12  Colin Walters  <walters@verbum.org>
2704
2705         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2706         (statemachine-glue.h): 
2707         * glib/examples/Makefile.am (example-service-glue.h) 
2708         (example-signal-emitter-glue.h): 
2709         * glib/Makefile.am (dbus-glib-error-switch.h): 
2710         Add libtool --mode=execute so we use the built library instead
2711         of any installed one.
2712
2713 2005-07-11  Colin Walters  <walters@verbum.org>
2714
2715         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2716         (dbus_g_value_types_init): Remove assertion.
2717         (dbus_g_value_get_g_type, dbus_g_value_open)
2718         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2719         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2720         functions related to DBusGValue.  Now we marshal/demarshal
2721         structures as GValueArray.
2722         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2723         structures.
2724         (signature_iter_to_g_type_array): Don't call
2725         signature_iter_to_g_type_struct.
2726         (signature_iter_to_g_type_struct): Delete.
2727         (dbus_gvalue_to_signature): Delete.
2728         (dbus_gvalue_to_signature): New function with same name as other
2729         one; we can convert structures to signatures.
2730         (demarshal_valuearray): New function.
2731         (get_type_demarshaller): Use it.
2732         (demarshal_recurse): Delete.
2733         (marshal_proxy): New function.
2734         (marshal_map): Warn if we can't determine signature from type.
2735         (marshal_collection_ptrarray): Ditto.
2736         (marshal_collection_array): Ditto.
2737         (get_type_marshaller): Use marshal_valuearray.
2738         (marshal_recurse): Delete.
2739         (_dbus_gvalue_test): Add some tests.
2740
2741         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2742         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2743         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2744         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2745         (dbus_g_value_free): Remove prototypes.
2746
2747         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2748         G_TYPE_VALUE_ARRAY.
2749
2750         * glib/examples/example-service.c:
2751         * glib/examples/example-client.c: Implement GetTuple.
2752
2753         * test/glib/test-dbus-glib.c:
2754         * test/glib/test-service-glib.c:
2755         * test/glib/test-service-glib.xml: Add structure tests.
2756
2757 2005-07-10  Colin Walters  <walters@verbum.org>
2758
2759         * doc/TODO: Knock off some GLib items with this patch.
2760
2761         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2762         (_dbus_gvalue_signals_error): New functions.
2763
2764         * glib/dbus-gvalue-utils.h: Prototype them.
2765
2766         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2767         and change to not output const/retval flags for input args.  All
2768         callers updated.
2769         (invoke_object_method): Refactor to handle return values.  Add
2770         some more comments in various places.  Remove debug g_print.
2771
2772         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2773
2774         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2775         Handle G_TYPE_NONE.
2776         (compute_gsignature): New function; refactored from code from
2777         compute_marshaller and compute_marshaller_name.  Enhance to
2778         handle return values and async ops more cleanly.  Update for
2779         async ops returning NONE instead of BOOLEAN.
2780         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2781         and output appropriate string.
2782         (generate_glue): Handle return value annotation.  Also don't dump
2783         constness flag for input arguments.
2784
2785         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2786         files shared between installed library and utilities.
2787         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2788         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2789         binding tool can access gtype utility functions.
2790
2791         * test/glib/test-service-glib.c: 
2792         * test/glib/test-service-glib.xml: 
2793         * test/glib/test-dbus-glib.c: Add some tests for return values.
2794
2795 2005-07-09  Colin Walters  <walters@verbum.org>
2796
2797         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2798         argument if available, not method.
2799
2800         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2801         (invoke_object_method): First, remove some redundant
2802         GValues (object_value, error_value) in favor of working on
2803         array directly.  Second, rework constness to be less buggy.
2804         Now we iterate directly over the argument metadata instead
2805         of parallel iterating over output signature and metadata.
2806
2807         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2808
2809         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2810         annotation on input args.
2811         
2812 2005-07-09  Colin Walters  <walters@verbum.org>
2813
2814         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2815         Define.
2816
2817         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2818         annotation.
2819
2820         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2821         (method_dir_signature_from_object_info): Handle arg_iterate change.
2822         (write_interface): Ditto.
2823         (lookup_object_info): Don't barf if format_version is > 0.
2824         (invoke_object_method): Handle arg constness.
2825
2826         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2827         (arg_info_new): Create.
2828         (arg_info_unref): Destroy.
2829         (arg_info_get_annotations, arg_info_get_annotation) 
2830         (arg_info_add_annotation): New functions.
2831
2832         * glib/dbus-gidl.h: Prototype them.
2833
2834         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2835         args, disallow them in properties.
2836         (parse_annotation): Handle arg annotations.
2837
2838         * test/glib/test-service-glib.xml: 
2839         * test/glib/test-service-glib.c: Update to make some methods
2840         const.
2841
2842 2005-07-08  Colin Walters  <walters@verbum.org>
2843
2844         * test/glib/test-service-glib.xml: 
2845         * test/glib/test-service-glib.c:
2846         * test/glib/test-dbus-glib.c: Test a{sv}.
2847
2848         * glib/examples/statemachine/statemachine.c:
2849         * glib/examples/statemachine/statemachine-server.c:
2850         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2851         add progress bar, etc.
2852
2853         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2854         needed anymore due to generic array/map marshalling.
2855         (dbus_g_value_types_init): Don't register basic arrays or the
2856         string/string hash.
2857         (dbus_gtype_from_signature_iter): Don't try to recurse into
2858         variants.
2859         (dbus_gtype_to_signature): Check collection/map before type
2860         metadata.
2861         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2862         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2863         generic map creation/append functions instead of hash table
2864         specifically.
2865         (get_type_demarshaller): Handle maps.
2866         (demarshal_collection): Dispatch on collection type to either
2867         demarshal_collection_ptrarray or demarshal_collection_array.
2868         (get_type_marshaller): Handle maps.
2869         (marshal_collection): Dispatch collection type to either
2870         marshal_collection_ptrarray or marshal_collection_array.
2871         (_dbus_gvalue_test): New test.
2872
2873         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2874         (hash_free_from_gtype): Use it to free GValues.
2875         (hashtable_append): New function.
2876         (ptrarray_append): Fix prototype.
2877         (slist_append): Ditto.
2878         (_dbus_gvalue_utils_test): Extend tests.
2879
2880         * glib/dbus-gtype-specialized.c
2881         (dbus_g_type_specialized_init_append): Renamed from
2882         dbus_g_type_specialized_collection_init_append.  Remove const from
2883         value, since we steal it.
2884         (dbus_g_type_specialized_map_append): New function.
2885
2886         * glib/dbus-gtype-specialized.h: Update prototypes.
2887         Add DBusGTypeSpecializedMapAppendFunc.
2888
2889         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2890         _dbus_gvalue_test.
2891         
2892         * glib/dbus-gtest.h: Prototype it.
2893
2894 2005-07-08  Ross Burton  <ross@openedhand.com>
2895
2896         * dbus/dbus-glib.h:
2897         Add DBysGAsyncData for the async bindings.
2898
2899         * glib/dbus-binding-tool-glib.c:
2900         Re-enable the async bindings.
2901
2902         * test/glib/test-dbus-glib.c:
2903         Add a test for the generated async bindings.
2904
2905 2005-07-08  Colin Walters  <walters@verbum.org>
2906
2907         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2908         connection concept.
2909         
2910 2005-07-08  Colin Walters  <walters@verbum.org>
2911         
2912         * tools/Makefile.am: Kill of print-introspect in favor of using
2913         dbus-send --print-reply=literal.
2914
2915         * test/glib/test-service-glib.xml: 
2916         * test/glib/test-service-glib.c (my_object_get_objs): New test
2917         for "ao".
2918
2919         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2920         (main): Test GetObjs.
2921
2922         * glib/examples/statemachine/Makefile.am:
2923         * glib/examples/statemachine/sm-marshal.list:
2924         * glib/examples/statemachine/statemachine-client.c:
2925         * glib/examples/statemachine/statemachine-server.c:
2926         * glib/examples/statemachine/statemachine-server.xml:
2927         * glib/examples/statemachine/statemachine.c:
2928         * glib/examples/statemachine/statemachine.h:
2929         * glib/examples/statemachine/statemachine.xml:
2930
2931         New example.
2932
2933         * glib/examples/example-service.c (main): Move invocation
2934         of dbus_g_object_type_install_info earlier, to emphasize it
2935         should only be done once.
2936
2937         * glib/examples/example-signal-emitter.c (main): Ditto.
2938
2939         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2940
2941         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2942         (dbus_gvalue_marshal): Update prototypes.
2943
2944         * glib/dbus-gvalue.c: Update all marshalling functions to take
2945         const GValue instead of GValue.
2946         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2947         types.
2948         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2949         change.
2950         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2951         Return a newly-allocated string.
2952         (demarshal_proxy, demarshal_object_path, demarshal_object)
2953         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2954         we get the wrong types from message.
2955         (get_type_demarshaller): New function, extracted from
2956         dbus_gvalue_demarshal.
2957         (demarshal_collection): New function, demarshals generic
2958         collection.
2959         (dbus_gvalue_demarshal): Just invoke result of
2960         get_type_demarshaller.  Throw error if we don't have one.
2961         (marshal_garray_basic): Abort on OOM.
2962         (get_type_marshaller): New function, extracted from
2963         dbus_gvalue_marshal.
2964         (collection_marshal_iterator, marshal_collection): New functions;
2965         implements generic marshalling for an iteratable specialized
2966         collection.
2967         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2968
2969         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2970         G_TYPE_STRING.
2971         (ptrarray_value_from_gvalue): Ditto.
2972         (ptrarray_append, ptrarray_free): New functions.
2973         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2974         (slist_append, slist_end_append, slist_free): New functions.
2975         (dbus_g_type_specialized_builtins_init): Add append fuctions
2976         for GPtrArray and GSList.  Register GSList.
2977         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2978
2979         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2980         New.
2981         (dbus_g_type_specialized_collection_init_append)
2982         (dbus_g_type_specialized_collection_append)
2983         (dbus_g_type_specialized_collection_end_append): Prototype.
2984         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2985         end_append_func.
2986
2987         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2988         (dbus_g_type_specialized_collection_append) 
2989         (dbus_g_type_specialized_collection_end_append): New functions.
2990         (dbus_g_type_map_value_iterate): Take const GValue.
2991         (dbus_g_type_collection_value_iterate): Ditto.
2992
2993         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2994         _dbus_gvalue_utils_test.
2995         
2996         * glib/dbus-gtest.h: Prototype it.
2997
2998         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2999         using uninitialized owner_list.
3000         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3001         public API.
3002         (dbus_g_proxy_end_call_internal): Update to use error set
3003         from dbus_gvalue_demarshal instead of setting it here.
3004         (dbus_g_proxy_begin_call): Move return_if_fail here.
3005
3006         * glib/dbus-gobject.c (write_interface): Update for
3007         dbus_gtype_to_signature returning new string.
3008
3009         * configure.in: Add glib/examples/statemachine.
3010
3011 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3012
3013         * configure.in: Add a configure option, --with-console-auth-dir
3014         
3015         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3016         new setting.  Patch from Kay Sievers.
3017
3018 2005-07-06  Colin Walters  <walters@verbum.org>
3019
3020         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3021         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3022         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3023         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3024         Delete in favor of dbus_g_proxy_begin_call and
3025         dbus_g_proxy_cancel_call.
3026         (DBusGProxyCall, DBusGProxyCallNotify): New.
3027         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3028         data, and destroy function.  This replaces
3029         dbus_g_pending_call_set_notify.
3030         (dbus_g_proxy_cancel_call): Prototype.
3031         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3032
3033         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3034         pending_calls map.
3035         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3036         internal proxy for calls to the bus. Remove
3037         pending_nameowner_calls, now the internal proxy keeps track.
3038         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3039         pending_nameowner_calls.
3040         (got_name_owner_cb): Update prototype, and use
3041         dbus_g_proxy_end_call.
3042         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3043         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3044         favor of using internal proxy.
3045         (dbus_g_proxy_manager_unregister): Update to use
3046         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3047         (dbus_g_proxy_init): Initialize pending calls map.
3048         (dbus_g_proxy_constructor): New.
3049         (dbus_g_proxy_class_init): Add get/set property functions,
3050         constructor, and add NAME, PATH, and INTERFACE properties.
3051         (cancel_pending_call): New function.
3052         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3053         cancel them.
3054         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3055         (GPendingNotifyClosure): New structure.
3056         (d_pending_call_notify, d_pending_call_free): Moved here from
3057         dbus-glib.c.
3058         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3059         ordering.
3060         (manager_begin_bus_call): New internal function for talking to
3061         internal bus proxy.
3062         (dbus_g_proxy_new): Construct object using GObjet properties.
3063         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3064         Create closure of same, and insert call into map of pending calls.
3065         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3066         call.  Look up pending call in current set.  Remove it when we've
3067         completed.
3068         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3069         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3070         and destroy function directly.
3071         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3072         (dbus_g_proxy_call): Invoke with NULL callback.
3073         (dbus_g_proxy_cancel_call): New function, replaces
3074         dbus_g_pending_call_cancel.
3075
3076         * glib/dbus-gparser.c (validate_signature): Fix call to
3077         dbus_set_g_error.
3078
3079         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3080         New quark for attaching metadata to GType.
3081         (info_hash): Delete.
3082         (lookup_object_info): Look up using quark.
3083         (dbus_g_object_type_install_info): Check that a type is classed,
3084         not that it's an object.  Also just install type data using quark
3085         instead of using global hash.
3086
3087         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3088         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3089         (GPendingNotifyClosure): Delete.
3090         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3091         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3092
3093         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3094         client method generation until we can fix it...
3095         
3096         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3097         (load_from_service_thread_func): Ditto.
3098
3099         * tools/dbus-names-model.c (struct NamesModel): Hold
3100         DBusGProxyCall.
3101         (have_names_notify): Update prototype, use
3102         dbus_g_proxy_cancel_call.
3103         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3104
3105         * tools/dbus-monitor.c (filter_func): Update for print_message
3106         API change.
3107
3108         * test/glib/test-dbus-glib.c: Add more tests for async
3109         invocations.  Update many begin_call/end_call pairs to just use
3110         dbus_g_proxy_call.
3111
3112         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3113         allows us to dump print-introspect.c.
3114
3115         * tools/dbus-print-message.h (print_message): Add literal argument
3116         to print_message which is intended to allow printing arguments without
3117         metadata like "string=".
3118
3119         * tools/dbus-print-message.c (print_iter): Add literal argument.
3120         (print_message): Allow printing string messages literally.
3121
3122 2005-07-05  Colin Walters  <walters@verbum.org>
3123
3124         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3125         Remove value refcount leak, original patch from Jorn Baayen
3126         <jorn@openedhand.com>.  Also remove useless extra value in favor
3127         of prepending to value array directly.
3128
3129 2005-07-02  Colin Walters  <walters@verbum.org>
3130
3131         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3132
3133 2005-07-01  Colin Walters  <walters@verbum.org>
3134
3135         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3136         
3137         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3138         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3139         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3140         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3141
3142 2005-06-30  Colin Walters  <walters@verbum.org>
3143
3144         * test/glib/test-dbus-glib.c:
3145         * test/glib/test-service-glib.c:
3146         * test/glib/test-service-glib.xml: Update tests for new error
3147         setting bits, also add async tests (patch from Ross Burton).
3148
3149         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3150         DBUS_GLIB_THREADS_LIBS.
3151
3152         * glib/dbus-gproxy.c (get_name_owner)
3153         (dbus_g_pending_call_end_valist): Ditto.
3154
3155         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3156         domain (GQuark) to DBusGErrorInfo.  
3157         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3158         quark in error_metadata.  Take message interface as default
3159         error message interface.
3160         (gerror_to_dbus_error_message): Pass message interface.
3161         (dbus_set_g_error): Resurrected.
3162         (dbus_g_error_info_free): New function.
3163         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3164         of _peek to actually create the object class if it hasn't been
3165         created yet.
3166         (dbus_g_error_domain_register): New function.
3167
3168         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3169
3170         * glib/dbus-gparser.c (validate_signature): Ditto.
3171
3172         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3173         (dbus_g_error_domain_register): Prototype.
3174
3175         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3176         Update tests.
3177
3178 2005-06-29  Colin Walters  <walters@verbum.org>
3179
3180         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3181         DBUS_TYPE_G_OBJECT_PATH.
3182
3183         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3184         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3185         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3186         (dbus_g_object_path_get_g_type): New function.
3187         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3188         to DBUS_TYPE_G_OBJECT_PATH by default.
3189         (demarshal_proxy): Remove unused name variable.
3190         (demarshal_object_path, marshal_object_path): New functions.
3191         (demarshal_proxy_array, marshal_proxy_array): Delete.
3192         
3193         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3194         DBUS_TYPE_G_OBJECT_PATH to char *.
3195         (dbus_g_type_get_lookup_function): Map builtin
3196         DBUS_TYPE_G_OBJECT_PATH.
3197
3198         * test/glib/test-dbus-glib.c
3199         * test/glib/test-service-glib.c (my_object_objpath): 
3200         Adapt tests to new object path marshalling.
3201
3202 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3203
3204         * configure.in: force check for Python >= 2.4
3205
3206 2005-06-29  Colin Walters  <walters@verbum.org>
3207         
3208         Patch from Ross Burton <ross@openedhand.com>
3209         
3210         * glib/dbus-gobject.c (invoke_object_method): Unset object
3211         value in all cases, not only in async case.
3212
3213 2005-06-29  Colin Walters  <walters@verbum.org>
3214
3215         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3216         name_call for keeping track of any outgoing GetNameOwner call.
3217         Also add for_owner and associated.
3218         (struct _DBusGProxyManager): Add owner_names, which is hash table
3219         that maps a base name to a list of names it owns (that we're
3220         interested in).  Add pending_nameowner_calls which is a list of
3221         all outstanding GetNameOwner; avoids us having to iterate over
3222         every proxy.  Add unassociated_proxies which keeps track of name
3223         proxies with no associated name owner.
3224         (dbus_g_proxy_manager_unref): Destroy owner_names.
3225         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3226         name refcounts.
3227         (find_name_in_info, name_owner_foreach)
3228         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3229         (dbus_g_proxy_manager_monitor_name_owner)
3230         (dbus_g_proxy_manager_unmonitor_name_owner)
3231         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3232         New functions; they manipulate the owner_names mapping.
3233         (got_name_owner_cb): New function.
3234         (get_name_owner): New function, extracted from
3235         dbus_g_proxy_new_for_name_owner.
3236         (dbus_g_proxy_manager_register): For now we need to keep track of
3237         all NameOwnerChanged.  Also if the proxy is for a name, if we
3238         don't already know the name owner, queue a new GetNameOwner
3239         request and add it to our list of unassociated proxies.  Otherwise
3240         inc the refcount.
3241         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3242         cancel any pending GetNameOwner call, etc.
3243         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3244         the owner_names mapping to look up the current names for the
3245         signal source, and dispatch to any proxies for that name.
3246         (dbus_g_proxy_new): Initialize new members.
3247         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3248         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3249         (dbus_g_pending_call_end_valist): New function, extracted from
3250         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3251         but want to use the GLib infrastructure.  Also note how many
3252         arguments in reply were over.
3253         (dbus_g_pending_call_end): New function, just call
3254         dbus_g_pending_call_end_valist.
3255         (dbus_g_proxy_end_call_internal): Just call
3256         dbus_g_pending_call_end_valist.
3257
3258         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3259         of builtin marshaller for STRING_STRING_STRING.
3260
3261         * test/glib/test-dbus-glib.c: 
3262         * test/glib/test-service-glib.c:
3263         * test/glib/test-service-glib.xml:
3264         Extend tests to cover name proxies, destruction of owner proxies,
3265         etc.
3266         
3267         * glib/examples/example-signal-recipient.c
3268         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3269         
3270         * tools/dbus-send.c (main): Print D-BUS error name in addition
3271         to message.
3272
3273 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3274
3275         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3276         cmessage_function_handler): Patch from 
3277         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3278         by using the Py_GILState_Ensure/Release to synchronize with the
3279         python runtime.
3280         
3281 2005-06-28  Ray Strode  <rstrode@redhat.com>
3282
3283         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3284         babysitter helper process on last unref, bug #2813.
3285
3286 2005-06-27  Colin Walters  <walters@verbum.org>
3287
3288         * test/glib/test-dbus-glib.c: 
3289         * test/glib/test-service-glib.c:
3290         * test/glib/test-service-glib.xml:
3291         Test hash table signal emitting.
3292
3293         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3294         types to their fundamental basis types, since this is what
3295         marshallers operate on.  Also add an entry for VOID__BOXED.
3296         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3297
3298 2005-06-26  Havoc Pennington  <hp@redhat.com>
3299
3300         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3301         from Don Park
3302
3303 2005-06-26  Colin Walters  <walters@verbum.org>
3304
3305         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3306         (dbus_g_error_set): New public function from its ashes; used by
3307         both service-side method implementation and GLib bindings
3308         internals.
3309         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3310         (_dbus_glib_test): Add some tests.
3311
3312         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3313
3314         * test/glib/test-service-glib.c (my_object_throw_error): Use
3315         dbus_g_error_set.
3316
3317         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3318         errors thrown by dbus_g_error_set.
3319
3320         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3321
3322         * glib/dbus-gparser.c (validate_signature): Ditto.
3323
3324         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3325         (dbus_g_proxy_end_call_internal): Ditto.
3326
3327         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3328         converts DBUS_ERROR_x to DBUS_GERROR_x.
3329         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3330
3331         * doc/TODO: Remove error TODO.
3332
3333         * doc/dbus-tutorial.xml: Update with documentation about error
3334         handling.
3335
3336         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3337         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3338         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3339
3340 2005-06-22  Colin Walters  <walters@verbum.org>
3341         
3342         Patch from Ross Burton <ross@openedhand.com>
3343
3344         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3345
3346 2005-06-20  Colin Walters  <walters@verbum.org>
3347
3348         * configure.in: Add glib/examples.
3349
3350         * glib/Makefile.am: Add examples/
3351
3352         * glib/examples/.cvsignore
3353         * glib/examples/Makefile.am
3354         * glib/examples/example-client.c
3355         * glib/examples/example-service.c
3356         * glib/examples/example-service.xml
3357         * glib/examples/example-signal-emitter.c
3358         * glib/examples/example-signal-emitter.xml
3359         * glib/examples/example-signal-recipient.c:
3360         New files; GLib binding examples, ported from
3361         python/examples.
3362
3363 2005-06-20  Colin Walters  <walters@verbum.org>
3364
3365         * dbus/dbus-glib.h: 
3366         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3367         dbus_g_proxy_call.
3368
3369         * glib/dbus-binding-tool-glib.c: 
3370         * doc/dbus-tutorial.xml: 
3371         * test/glib/test-dbus-glib.c: Update for rename.
3372         
3373 2005-06-20  Colin Walters  <walters@verbum.org>
3374
3375         Patch suggested by Ross Burton <ross@openedhand.com>
3376
3377         * glib/dbus-gobject.c (export_signals): Free signal name.
3378         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3379         memory leak.  Add a bit of documentation.
3380         (dbus_g_method_return_error): Free context, and note we do
3381         so.
3382
3383 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3384
3385         * dbus/dbus-glib.h:
3386         * glib/dbus-gobject.c:
3387         * glib/dbus-gproxy.c:
3388         * glib/dbus-gvalue.c: Predeclare structs as 
3389         typedef struct _Something Something instead of 
3390         typedef struct Something Something, so we can 
3391         redeclare the prototypes. Other GNOME libraries 
3392         do this already.
3393
3394 2005-06-17  Colin Walters  <walters@verbum.org>
3395
3396         * tools/dbus-names-model.c (have_names_notify): Fix call
3397         to dbus_g_proxy_end_call.
3398         
3399 2005-06-17  Colin Walters  <walters@verbum.org>
3400
3401         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3402         spew warnings if we get malformed remote signals.
3403
3404         * glib/dbus-gobject.c (propsig_iterate): New function.
3405         (lookup_object_info): New function, extracted from
3406         lookup_object_and_method.
3407         (introspect_properties, introspect_signals): Delete; these
3408         are merged into write_interface.
3409         (write_interface): Write out signals and properties here;
3410         dump the org.gtk.object stuff and use the interface given
3411         in the introspection data blob.  Also fix up property XML.
3412         (lookup_values): New function.
3413         (introspect_interfaces): Gather a mapping from interface to a
3414         list of its methods, signals, and properties, then write out
3415         each interface.
3416         (lookup_object_and_method): Use lookup_object_info.
3417         (struct DBusGSignalClosure): Add interface.
3418         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3419         we can just use the constant data.
3420         (dbus_g_signal_closure_finalize): Don't free signal name.
3421         (signal_emitter_marshaller): Use interface from signal closure.
3422         (export_signals): Only export signals mentioned in introspection
3423         blob.
3424         (dbus_g_connection_register_g_object): Warn if we have no
3425         introspection data for an object.
3426         (funcsig_equal): Remove unused variable.
3427         (dbus_g_object_register_marshaller): Take varargs instead of
3428         list.
3429         (dbus_g_object_register_marshaller_array): New function,
3430         extracted from old dbus_g_object_register_marshaller.
3431
3432         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3433         signals and property data.
3434         (write_quoted_string): New function, extracted from generate_glue.
3435         (generate_glue): Write signals and properties to introspection
3436         blob.
3437
3438         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3439         exported_signals and exported_properties.
3440         (dbus_g_object_register_marshaller): Update prototype.
3441         (dbus_g_object_register_marshaller_array): Prototype.
3442         
3443         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3444
3445         * test/glib/test-service-glib.c: Add new test signals and method
3446         to emit them.
3447
3448         * test/glib/test-service-glib.xml: Add some test signals.
3449
3450         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3451         and my-object-marshal.h
3452         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3453         my-object-marshal.c.
3454         (my-object-marshal.c, my-object-marshal.h): Implement.
3455
3456         * test/glib/.cvsignore: Update.
3457
3458         * doc/TODO: Remove two GLib TODO items fixed by this
3459         patch.
3460
3461 2005-06-16  Colin Walters  <walters@verbum.org>
3462
3463         * doc/TODO: Update for GLib bindings.
3464         
3465 2005-06-16  Colin Walters  <walters@verbum.org>
3466
3467         * glib/dbus-binding-tool-glib.c:
3468         * glib/dbus-gobject.c:
3469         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3470         from Ross Burton, for his GLib bindings work.
3471
3472 2005-06-16  Colin Walters  <walters@verbum.org>
3473
3474         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3475         to iterate instead of walking to G_TYPE_INVALID.
3476
3477         Patch based on a patch from Ryan Gammon.
3478
3479 2005-06-16  Colin Walters  <walters@verbum.org>
3480
3481         * bus/bus.c (bus_context_new): Set parser to NULL
3482         after we unref it (Patch from Chris Boscolo, #2174).
3483         
3484 2005-06-16  Colin Walters  <walters@verbum.org>
3485
3486         * python/dbus_bindings.pyx.in: Import size_t,
3487         __int64_t, __uint64_t, and __signed.
3488
3489         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3490         Define cmsg struct, output it.
3491         (_dbus_read_credentials_unix_socket):
3492         Use cmsg struct.
3493         
3494         Patch from Joe Markus Clarke for FreeBSD support.
3495         
3496 2005-06-16  Colin Walters  <walters@verbum.org>
3497
3498         * tools/dbus-send.c (append_array): Use strtok.
3499         (append_dict): New function.
3500         (type_from_name): New function, extracted from main.
3501         (main): Handle sending dicts.
3502
3503         * tools/dbus-print-message.c (print_iter): Print dict
3504         entries.
3505         
3506 2005-06-16  Colin Walters  <walters@verbum.org>
3507
3508         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3509         values as the empty string (#2948).
3510         
3511 2005-06-16  Colin Walters  <walters@verbum.org>
3512
3513         * dbus/Makefile.am:
3514         * mono/doc/Makefile.am:
3515         * test/glib/Makefile.am:
3516
3517         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3518
3519 2005-06-16  Colin Walters  <walters@verbum.org>
3520
3521         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3522         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3523
3524         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3525         Increment pointer after swapping fixed array.  Add assertion
3526         for array length.
3527                 
3528 2005-06-15  Colin Walters  <walters@verbum.org>
3529
3530         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3531         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3532         
3533 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3534
3535         * NEWS: Update to 0.34
3536
3537 2005-06-15  David Zeuthen  <davidz@redhat.com>
3538
3539         * configure.in (LT_CURRENT): Revert back to 1 as the library
3540         hasn't changed and we've certainly not committed to protocol
3541         stability yet.  All this does is to break ABI. See commit note
3542         from hp@redhat.com 2005-05-05 for details.
3543         
3544 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3545
3546         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3547         (_dbus_connection_run_builtin_filters): New method
3548         (dbus_connection_dispatch): Run the builtin filters which in turn
3549         runs the peer filter which handles Ping messages.
3550
3551         * doc/TODO: 
3552          - Ping isn't handled: This patch fixes it
3553          
3554          - Add a test case for the Ping message: added TODO item
3555
3556 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * dbus/dbus-message.c:
3559         (dbus_message_has_path): New method
3560         (dbus_message_has_interface): New method
3561         (dbus_message_has_member): New method
3562
3563         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3564         New method
3565
3566         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3567         the keyring directory is private to the user
3568
3569         * doc/TODO:
3570          - The convenience functions in dbus-bus.h should perhaps have
3571          the signatures that they would have if they were autogenerated
3572          stubs. e.g. the acquire service function. We should also evaluate
3573          which of these functions to include, in light of the fact that
3574          GLib/Qt native stubs will probably also exist.: Punted
3575
3576          - add dbus_message_has_path(), maybe has_member/interface:
3577          fixed in this patch
3578
3579          - in dbus-keyring.c, enforce that the keyring dir is not
3580          world readable/writable: Fixed in this patch
3581
3582 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3583
3584         * dbus/dbus-marshal-validate.h: Added a new validation
3585         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3586         out of memory errors when validating signitures
3587
3588         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3589         in places where we previously used DBUS_VALID and a FALSE return 
3590         value to indicate OOM
3591         
3592         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3593         Use a stack to track the number of elements inside containers.  The 
3594         stack values are then used to validate that dict entries have only two
3595         elements within them.
3596         (validate_body_helper): check the reason for failure when validating
3597         varients
3598         
3599         * dbus/dbus-message.c (load_message): use 
3600         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3601         DBUS_VALID and a FALSE return value to indicate OOM
3602
3603         * doc/TODO: remove "- validate dict entry number of fields" as this
3604         patch fixes it
3605
3606 2005-06-14  David Zeuthen  <davidz@redhat.com>
3607
3608         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3609         watches (if applicable) and add new watches
3610
3611         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3612         (main): Setup SIGIO signal handler if using D_NOTIFY
3613
3614         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3615
3616         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3617         (merge_included): Also merge conf_dirs list
3618         (bus_config_parser_unref): Clear conf_dirs list
3619         (include_dir): Add directory to conf_dirs list
3620         (bus_config_parser_get_conf_dirs): New function
3621
3622         * bus/dir-watch.[ch]: New files
3623
3624         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3625
3626         * configure.in: Add checks for D_NOTIFY on Linux
3627
3628 2005-06-14  Colin Walters  <walters@verbum.org>
3629
3630         * glib/dbus-binding-tool-glib.c:
3631         * glib/dbus-gobject.c:
3632         * glib/dbus-gvalue.c: Fix indentation and brace style.
3633         
3634 2005-06-14  Ross Burton <ross@openedhand.com>.
3635
3636         * glib/dbus-glib.h: Make DBusGMethodInvocation
3637         a private structure.  Rearrange prototypes a bit.
3638         
3639         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3640         documentation for first_arg_type.
3641         
3642         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3643         here, add documentation.  Move dbus_g_method_return
3644         and dbus_g_method_return_error into public API
3645         section.
3646
3647 2005-06-14  Colin Walters  <walters@verbum.org>
3648
3649         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3650         Add missing return statements, noticed by Ross Burton.
3651         
3652 2005-06-13  Ross Burton <ross@openedhand.com>.
3653
3654         * glib/dbus-gobject.c: Handle errors on message
3655         demarshalling by sending error message back.
3656         * glib/dbus-gvalue.c: Initialize return variables.
3657
3658 2005-06-13  Colin Walters  <walters@verbum.org>
3659
3660         * glib/Makefile.am: Fix thinko in last patch.
3661
3662 2005-06-13  Colin Walters  <walters@verbum.org>
3663
3664         * glib/Makefile.am: Move dbus-gtype-specialized.c
3665         and dbus-gtype-specialized.h into a _HEADERS variable,
3666         install them.
3667
3668 2005-06-12  Colin Walters  <walters@verbum.org>
3669
3670         Async signals and various bugfixes and testing by
3671         Ross Burton <ross@openedhand.com>.
3672
3673         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3674         (dbus_gvalue_genmarshal_name_from_type)
3675         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3676         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3677         (dbus_g_value_types_init, dbus_gtype_from_signature)
3678         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3679         (dbus_gtypes_from_arg_signature): New function prototypes.
3680         (dbus_gvalue_demarshal): Take context and error arguments.
3681         (dbus_gvalue_demarshal_variant): New function.
3682         (dbus_gvalue_demarshal_message): New function.
3683         (dbus_gvalue_store): Delete.
3684
3685         * glib/dbus-gvalue.c:
3686
3687         File has been almost entirely rewritten; now we special-case
3688         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3689         hash tables correctly, etc.  Full support for recursive values
3690         is not yet complete.
3691
3692         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3693         argument of signal to G_TYPE_POINTER since we now pass a
3694         structure.
3695         (lookup_g_marshaller): Delete in favor of
3696         _dbus_gobject_lookup_marshaller.
3697         (marshal_dbus_message_to_g_marshaller): Use
3698         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3699         to handle remote signal callbacks.
3700         (dbus_g_proxy_new_from_proxy): New function; creates a new
3701         DBusGProxy by copying an existing one.
3702         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3703         (dbus_g_proxy_get_path): New functions.
3704         (dbus_g_proxy_marshal_args_to_message): New function;
3705         factored out of existing code.
3706         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3707         from a varargs array.
3708         (dbus_g_proxy_begin_call_internal): New function.
3709         (dbus_g_proxy_end_call_internal): New function.
3710         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3711         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3712         after collecting args into value array.
3713         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3714         invoke dbus_g_proxy_end_call_internal.
3715         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3716         end_call_internal.
3717         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3718         types.
3719         (array_free_all): New function.
3720         (dbus_g_proxy_add_signal): Take GTypes.
3721
3722         * glib/dbus-gobject.h:
3723         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3724         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3725         Prototype.
3726
3727         * glib/dbus-gobject.c: Add a global marshal_table hash which
3728         stores mappings from type signatures to marshallers.  Change lots
3729         of invocations of dbus_gtype_to_dbus_type to
3730         dbus_gtype_to_signature.
3731         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3732         (introspect_signals): Fix test for query.return_type.
3733         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3734         (invoke_object_method): Many changes.  Handle asynchronous
3735         invocations.  Convert arguments with
3736         dbus_gvalue_demarshal_message.  Handle errors.  Use
3737         DBusSignatureIter instead of strlen on args. Handle all arguments
3738         generically.  Special-case variants.
3739         (dbus_g_method_return, dbus_g_method_return_error): New function.
3740         (DBusGSignalClosure): New structure, closes over signal
3741         information.
3742         (dbus_g_signal_closure_new): New function.
3743         (dbus_g_signal_closure_finalize): New function.
3744         (signal_emitter_marshaller): New function; is special marshaller
3745         which emits signals on bus.
3746         (export_signals): New function; introspects object signals and
3747         connects to them.
3748         (dbus_g_object_type_install_info): Take GType instead of
3749         GObjectClass.
3750         (dbus_g_connection_register_g_object): Invoke export_signals.
3751         (dbus_g_connection_lookup_g_object): New function.
3752         (DBusGFuncSignature) New structure; used for mapping type
3753         signatures to marshallers.
3754         (funcsig_hash): New function; hashes DBusGFuncSignature.
3755         (funcsig_equal): New function; compares DBusGFuncSignature.
3756         (_dbus_gobject_lookup_marshaller): New function.
3757         (dbus_g_object_register_marshaller): New function; used to
3758         register a marshaller at runtime for a particular signature.
3759
3760         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3761
3762         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3763         which notes a server method implementation should be
3764         asynchronous.
3765
3766         * glib/dbus-binding-tool-glib.c
3767         (dbus_binding_tool_output_glib_server): Call
3768         dbus_g_value_types_init.
3769         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3770         variants specially.
3771         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3772         of a lookup function.
3773         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3774         (write_untyped_out_args): New method; write output arguments.
3775         (write_formal_declarations_for_direction): Function for
3776         writing prototypes.
3777         (write_formal_parameters_for_direction): Function for
3778         writing implementations.
3779         (write_typed_args_for_direction): Function for writing
3780         arguments prefixed with GTypes.
3781         (write_async_method_client): Write out async version
3782         of method.
3783
3784         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3785         (dbus_g_type_get_marshal_name): Move mapping from GType
3786         to marshal name into here.
3787         (dbus_g_type_get_c_name): Move into here.
3788         (compute_marshaller): Convert signature to type with
3789         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3790         (compute_marshaller_name): Ditto.
3791         (compute_marshaller): Handle async signal annotations.
3792         (gather_marshallers): Return if we don't have a known
3793         prefix.
3794         (generate_glue): Collect introspection blob here, and
3795         write all of the blob at the end.  This allows an object
3796         with multiple interfaces to work.
3797         Mark async methods in introspection blob.
3798
3799         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3800         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3801         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3802
3803         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3804         avoids people accidentally using DBUS_TYPE_* which should
3805         not be necessary anymore.
3806         Do include dbus-gtype-specialized.h, which are utilities
3807         for GLib container types.
3808         Add various #defines for types such as
3809         DBUS_TYPE_G_BOOLEAN_ARRAY.
3810         (DBusGValueIterator, DBusGValue): Define, not fully used
3811         yet.
3812         (dbus_g_value_get_g_type): Type for recursive value.
3813         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3814         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3815         (dbus_g_value_free): Prototypes.
3816         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3817         (dbus_g_proxy_set_interface): Prototype.
3818         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3819         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3820         types.
3821         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3822         Accessors.
3823         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3824         doing async invocations.
3825         (dbus_g_method_return, dbus_g_method_return_error):
3826         Prototypes.
3827         * doc/dbus-tutorial.xml: Update GLib section.
3828         
3829         * tools/dbus-viewer.c (load_child_nodes): Update
3830         for new invocation type of dbus_g_proxy_end_call.
3831         (load_from_service_thread_func): Ditto.
3832
3833         * tools/print-introspect.c (main): Ditto.
3834
3835         * tools/dbus-names-model.c (have_names_notify)
3836         (names_model_reload, names_model_set_connection)
3837         Use GTypes.
3838
3839         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3840         needed since Python bindings use GLib bindings.
3841
3842         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3843         Add --prefix argument.
3844
3845         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3846         unneeded --ignore-unsupported arg.
3847         
3848         * test/glib/test-service-glib.c: 
3849         * test/glib/test-service-glib.xml:
3850         * test/glib/test-dbus-glib.c: Add many more tests.
3851
3852 2005-06-06  David Zeuthen  <davidz@redhat.com>
3853
3854         * doc/TODO: Add item about need to remove deprecated functions.
3855
3856         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3857
3858         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3859         to repair the ABI which was broken with the last commit.
3860
3861 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3862
3863         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3864         (dbus_connection_disconnect): renamed to dbus_connection_close 
3865         for API symmetry with dbus_connection_open
3866         (_dbus_connection_open_internal): 
3867         s/dbus_connection_disconnect/dbus_connection_close
3868
3869         * dbus/dbus-bus.c (dbus_bus_get):
3870         s/dbus_connection_disconnect/dbus_connection_close
3871
3872         * bus/connection.c (bus_connections_unref, 
3873         bus_connections_setup_connection, bus_connections_expire_incomplete):
3874         s/dbus_connection_disconnect/dbus_connection_close
3875
3876         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3877         kill_client_connection_unchecked, check_hello_connection):
3878         s/dbus_connection_disconnect/dbus_connection_close
3879
3880         * bus/bus.c (new_connection_callback):
3881         s/dbus_connection_disconnect/dbus_connection_close
3882
3883         * tools/dbus-send.c (main):
3884         s/dbus_connection_disconnect/dbus_connection_close
3885
3886         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3887         s/dbus_connection_disconnect/dbus_connection_close
3888         
3889         * test/test-service.c (path_message_func, filter_func):
3890         s/dbus_connection_disconnect/dbus_connection_close
3891         
3892         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3893         
3894 2005-05-25  Colin Walters  <walters@verbum.org>
3895
3896         * dbus/dbus-protocol.h: Move various bus service #defines such
3897           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3898           dbus/dbus-shared.h.
3899         * dbus/dbus-shared.h: Various defines moved here.
3900         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3901
3902 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3903
3904         * python/__init__.py: Python bindings deserve a minor version
3905         update.  Upped to (0, 40, 2)
3906
3907 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3908
3909         * python/decorators.py: add explicitly_pass_message decorator
3910         for passing in the dbus message as keyword for edge case signal
3911         handling
3912
3913         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3914         to conform with what dbus expects for match rules
3915         (SignalMatchRule.execute): add the dbus message as a keyword
3916         if the signal handler has requested it
3917
3918         * python/examples/example/signal-recipient.py: added some more
3919         examples on how to hook up to signals
3920
3921 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3922
3923         * python/decorators.py: import dbus_bindings
3924
3925         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3926         SignalMatchNode): new classes that implement wildcard signal
3927         callback matching using a tree lookup. Heavily modified from a
3928         patch sent by Celso Pinto (fd.o bug #3241)
3929
3930         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3931         use new match classes to handle signals.
3932
3933 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3934         
3935         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3936
3937 2005-05-18  Havoc Pennington  <hp@redhat.com>
3938
3939         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3940         gettext. Not really worth requiring yet perhaps, but any
3941         production quality 1.0 would require it so we should go ahead and
3942         get things set up. We do have a couple token calls to
3943         bindtextdomain in the code already.
3944
3945 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3946
3947         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3948         when using recursive g_main_loops
3949
3950         * python/_dbus.py (class Bus): add the ProxyObjectClass
3951         alias for ProxyObject to make it easier for the Twisted 
3952         networking framework to integrate dbus.
3953
3954         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3955         alias for ProxyMethod to make it easier for the Twisted 
3956         networking framework to integrate dbus. 
3957
3958 2005-05-11  Ross Burton  <ross@openedhand.com>
3959
3960         * glib/dbus-glib-tool.c: Add --prefix argument.
3961         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3962         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3963         Add prefix argument.
3964         (generate_glue): Pass prefix argument down.
3965         (dbus_binding_tool_output_glib_server): Pass prefix to
3966         glib-genmarshal.
3967         
3968 2005-05-11  Colin Walters  <walters@verbum.org>
3969
3970         * tools/dbus-send.c (append_array): New function.
3971         (append_arg): Broken out from main.
3972         (main): Add cheesy hack to send arrays and variants.
3973         (usage): Update.
3974         * tools/dbus-print-message.c (print_iter): Broken out
3975         from main.
3976
3977 2005-05-11  Colin Walters  <walters@verbum.org>
3978
3979         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3980         New function, returns signature string for signature iter.
3981         * dbus/dbus-signature.h: Prototype it.
3982         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3983         New function, returns signature string for message iter.
3984         (dbus_message_iter_get_array_len): New function, returns
3985         length of array.
3986         (dbus_message_iter_get_fixed_array): Fix assertion; this
3987         function should be used when the iter is pointing to the
3988         contents of an array
3989         * dbus/dbus-message.h: Prototypes.
3990         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3991         New function; returns length of an array.
3992         * dbus/dbus-marshal-recursive.h: Prototype it.
3993         
3994 2005-05-11  Colin Walters  <walters@verbum.org>
3995
3996         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3997         compilation error.
3998         
3999 2005-05-08  Havoc Pennington  <hp@redhat.com>
4000
4001         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4002         daemon's pid, not the parent's pid, to the file descriptor.
4003         Reported by Taj Morton.
4004
4005 2005-05-05  Havoc Pennington  <hp@redhat.com>
4006
4007         * configure.in (LT_*): add notes on how the libtool versioning
4008         works to save thinking. Increment soname to indicate protocol
4009         breakage (though really the library interface hasn't changed I
4010         guess)
4011
4012         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4013         verify the GUID received from server matches what we were
4014         expecting, if we had an expectation
4015
4016         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4017         (_dbus_auth_get_guid_from_server): new function
4018         (send_begin): parse the OK args
4019
4020         * doc/dbus-specification.xml: add GUID to the auth protocol
4021
4022 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4023
4024         * Fix my name in previous changelog ;)
4025
4026         * python/proxies.py (ProxyObject.__getattr__): add further patch
4027         from Anthony Baxter to throw an AttributeError when python 
4028         __special__ functions are called instead of marshling them over 
4029         the bus (Bug#1685 comment 3).
4030
4031 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4032
4033         * python/Makefile.am: changed to use pyexecdir for the binding
4034         shared libraries (Bug#2494)
4035
4036         * python/exceptions.py: bring exceptions over from the bindings
4037         so they can be used in applications (Bug#2036)
4038         Make all exceptions derive from DBusException
4039
4040         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4041         of classes so that print obj doesn't throw an exception (Bug #1685)
4042
4043 2005-05-03  Ross Burton  <ross@openedhand.com>
4044
4045         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4046         Return if we get an error during registration.  Set up a
4047         weak reference on object to unregister if object is destroyed.
4048         (unregister_gobject): New function.
4049         
4050 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4051
4052         * python/dbus_bindings.pyx.in: 
4053         - added new type classes for hinting to the marashaler what type 
4054         to send over the wire
4055         - added int16 and uint16 marshalers
4056         - Fixed a bug in the type constants that caused int32 to go out
4057         as uint16 over the wire
4058         * python/dbus.py: split up into different files and renamed _dbus.py
4059         * python/__init__.py, python/_util.py, python/decorators.py, 
4060         python/exceptions.py, python/proxies.py, python/services.py,
4061         python/types.py: new files split off from dbus.py
4062         * python/Makefile.am: Add new files, remove dbus.py and 
4063         install all python files to <python module dir>/dbus
4064         * python/examples/*: Added #!/usr/bin/env python to the top of
4065         every example.  Patch provided by Tatavarty Kalyan
4066
4067 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4068
4069         * NEWS: Update to 0.33
4070
4071 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4072
4073         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4074         method for doing async calls
4075         (_pending_call_notification): New C function for handling pendning call
4076         callbacks
4077         (set_notify): New method for setting pending call notification
4078         
4079         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4080         Async capabilities added to remote method calls
4081         (Sender): class removed
4082         (RemoteService): class removed
4083         (ObjectTree): class removed for now
4084         (RemoteObject): Renamed to ProxyObject
4085         (RemoteMethod): Renamed to ProxyMethod
4086         (method): Decorator added for decorating python methods as dbus methods
4087         (signal): Decorator added for decorating python methods as signal emitters
4088         (ObjectType): Metaclass added for generating introspection data and the
4089         method callback vtable
4090         (Interface): Wrapper class added to wrap objects in a dbus interface
4091         (Object): Uses ObjectType as its metaclass and exports Introspect
4092         of the org.freedesktop.DBus.Introspectable interface
4093         (ValidationException, UnknownMethodException): new exceptions
4094
4095         * python/examples/*: Modified to fit with the new bindings
4096
4097 2005-04-23  Havoc Pennington  <hp@redhat.com>
4098
4099         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4100         reported by Tony Houghton
4101
4102         * test/test-service.c (main): test
4103         dbus_connection_get_object_path_data()
4104
4105         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4106         the exact_match
4107         (_dbus_object_tree_get_user_data_unlocked): new function used by
4108         dbus_connection_get_object_path_data()
4109         (do_register): add assertion test for get_user_data_unlocked
4110         (object_tree_test_iteration): more tests
4111
4112         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4113         new function from Dan Reed to let you get the user data from 
4114         dbus_connection_register_object_path()
4115
4116 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4117
4118         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4119         in numerous places that did not account for the NULL terminator
4120         (signature_from_seed): changed the manual string copy loop to 
4121         just use strcpy instead
4122         make check should now pass
4123
4124 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4125
4126         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4127         so that it allows messages that are not signals to pass in 
4128         NULL as the interface.
4129
4130 2005-04-18  David Zeuthen  <davidz@redhat.com>
4131
4132         * glib/dbus-gmain.c (io_handler_destroy_source): 
4133         (timeout_handler_destroy_source, connection_setup_free): 
4134         Also unref the source to avoid memory leaks.
4135
4136 2005-04-13  David Zeuthen  <davidz@redhat.com>
4137
4138         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4139         more reasonable, yet still totally arbitrary, value :-). 
4140
4141 2005-04-13  David Zeuthen  <davidz@redhat.com>
4142
4143         * doc/TODO: Added an "important for 1.0" item about selinux
4144         allow/deny messages
4145
4146 2005-04-13  David Zeuthen  <davidz@redhat.com>
4147
4148         * bus/selinux.c: Add c-file-style to top of file
4149         (log_audit_callback): Don't free the data here anymore
4150         (bus_selinux_check): Don't take spid and tpid since appending
4151         that to auxdata may OOM.
4152         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4153         to the caller if we are OOM by taking an error object.
4154         (bus_selinux_allows_send): -do-
4155
4156         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4157         and bus_selinux_allows_send
4158
4159         * bus/bus.c (bus_context_check_security_policy): Pass error and
4160         pass on OOM thrown by bus_selinux_allows_send()
4161
4162         * bus/services.c (bus_registry_acquire_service): Pass error and
4163         pass on OOM thrown by bus_selinux_allows_acquire_service()
4164
4165 2005-04-13  Havoc Pennington  <hp@redhat.com>
4166
4167         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4168         message at a time to avoid monopolizing the main loop, bug 
4169         #2953 from Benjamin Otte
4170
4171 2005-04-09  Havoc Pennington  <hp@redhat.com>
4172
4173         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4174         possible overlap, fix from Daniel Reed
4175         (fixup_alignment): fix signedness warnings
4176         (_dbus_string_append_unichar): ditto
4177
4178 2005-04-09  Havoc Pennington  <hp@redhat.com>
4179
4180         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4181
4182         * glib/dbus-glib-tool.c (main): fix warning
4183
4184         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4185
4186         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4187         add a new function that can be used in simple applications that
4188         don't have a main loop and are willing to block
4189
4190 2005-04-05  David Zeuthen  <davidz@redhat.com>
4191
4192         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4193
4194         * glib/dbus-gmain.c:
4195         (io_handler_destroy_source): Remove from list of IO handlers
4196         of the ConnectionSetup object
4197         (timeout_handler_destroy_source): -do- for timeout handlers
4198         (io_handler_source_finalized): Don't remove from list since
4199         we now do that in io_handler_destroy_source(). Renamed from
4200         io_handler_source_destroyed
4201         (timeout_handler_source_destroyed): -do- for timeout handlers
4202         (connection_setup_free): It is now safe to iterate over all
4203         IO and timeout handlers as the _destroy_source removes them
4204         from the list synchronously
4205
4206 2005-03-30  Havoc Pennington  <hp@redhat.com>
4207
4208         * configure.in: change check to gtk 2.4
4209
4210         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4211         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4212         to 2.4
4213
4214 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4215
4216         * News: Update 0.32
4217
4218         * HACKING: Fixed realease instructions.  configure.in should be updated to
4219           the next release by the person who made the last release.
4220
4221 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4222
4223         * python/lvalue_cast_post_process.py - removed.  Patch has been
4224           submitted to Pyrex maintainers that fixes gcc4.0 errors
4225
4226         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4227
4228 2005-03-24  Daniel Reed  <n@ml.org>
4229
4230         * tools/Makefile.am: Make print-introspect and
4231         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4232
4233 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4234
4235         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4236
4237         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4238           had in Red Hat packages for a while but for some reason never 
4239           got merged upstream
4240           (_dbus_is_a_number): New checks if a string
4241           can be converted to a number and does the conversion if it can
4242           (_dbus_user_database_lookup): Add check to see if the given username
4243           is a udi.  This allows udi's to be used instead of usernames in the
4244           config file.
4245           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4246           is a gdi.  This allows gdi's to be used instead of groupnames in the
4247           config file.
4248
4249 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4250
4251         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4252           code so that it compiles with gcc4.0
4253
4254         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4255           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4256           results back to dbus_binding.c
4257
4258 2005-03-20  Colin Walters  <walters@verbum.org>
4259
4260         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4261
4262         * configure.in: Require GTK+ 2.6.
4263         
4264 2005-03-20  Colin Walters  <walters@verbum.org>
4265
4266         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4267
4268 2005-03-17  Tom Parker  <palfrey@tevp.net>
4269
4270         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4271         print DBUS_UID_UNSET; instead print passed username.  Also
4272         be sure to actually use gid looked up in cache.
4273         
4274         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4275         for DBUS_GID_UNSET and groupname.
4276
4277 2005-03-17  Colin Walters  <walters@verbum.org>
4278
4279         * bus/print-introspect.c: Move to tools/.
4280         * bus/run-with-tmp-session-bus.sh: Ditto.
4281         
4282         * glib/Makefile.am (dbus-glib-bindings.h): Move
4283         generation to tools/Makefile.am.
4284
4285         * test/glib/run-test.sh: Update to handle move
4286         of run-with-tmp-session-bus.sh.
4287
4288         * test/glib/test-service-glib.c: Update to handle
4289         move of dbus-glib-bindings.h.
4290
4291         * tools/print-introspect.c: Moved here
4292         from bus/, and ported to GLib bindings.
4293
4294         * tools/run-with-tmp-session-bus.sh: Moved here
4295         from bus/.
4296
4297         * tools/Makefile.am: Generate dbus-glib-bindings.h
4298         and dbus-bus-introspect.xml here.
4299
4300         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4301         Update.
4302
4303 2005-03-17  Colin Walters  <walters@verbum.org>
4304
4305         * bus/driver.c (write_args_for_direction): Use
4306         _dbus_string_get_const_data to retrieve string;
4307         _dbus_string_get_const_data_len doesn't actually return
4308         a NULL-terminated substring.
4309
4310         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4311         (main): Change to use org_freedesktop_DBus_request_name
4312         instead of using g_proxy_begin_call/end_call.
4313
4314 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4315
4316         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4317         generating the finalizer.  Fixes from Ben Maurer.
4318
4319 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4320
4321         * mono/BusDriver.cs: Update method names: ListServices
4322         becomes ListNames; GetOwner becomes GetNameOwner.
4323
4324         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4325         onto the eval stack when removing the delegate.
4326
4327 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4328
4329         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4330         LT_CURRENT.  Set it to the autoconf variable.
4331                                                                                 
4332         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4333         classes that disconnects the signal handler delegate from the
4334         service object.  Fixes a big leak of proxy objects on the
4335         client side of things.  Patch from Ben Maurer
4336         <bmaurer@ximian.com>
4337
4338 2005-03-12  Colin Walters  <walters@verbum.org>
4339
4340         * bus/driver.c (write_args_for_direction): New function,
4341         parses a type signature into arguments and outputs to
4342         XML.
4343         (bus_driver_handle_introspect): Use it instead of
4344         hardcoding XML for certain signatures.
4345         
4346         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4347         dependency on dbus-daemon.
4348
4349         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4350         argument, pass it to dbus_binding_tool_output_glib_client.
4351
4352         * glib/dbus-binding-tool-glib.c
4353         (generate_client_glue): Protect against multiple inclusion.
4354         (dbus_binding_tool_output_glib_client): Add
4355         G_BEGIN_DECLS/G_END_DECLS.
4356
4357         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4358         Change to just take iface prefix directly.
4359         (write_formal_parameters): Clarify error message.
4360         (check_supported_parameters): New function; checks to see type
4361         signatures of method parameters are supported.
4362         (generate_client_glue): Handle ignore_unsupported flag.
4363         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4364         parameter.
4365
4366         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4367         --ignore-unsupported by default until glib bindings
4368         support arrays.
4369
4370 2005-03-11  Colin Walters  <walters@verbum.org>
4371
4372         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4373         install it.
4374
4375         * bus/print-introspect.c: New file; prints introspection
4376         data for a given name and object path.
4377
4378         * bus/run-with-tmp-session-bus.sh: New file, refactored
4379         from test/glib/run-test.sh.  Creates a temporary session
4380         bus and runs another program.
4381
4382         * test/glib/run-test.sh: Refactor to invoke
4383         run-with-tmp-session-bus.sh.
4384
4385         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4386         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4387         macros instead of hardcoding.
4388
4389         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4390
4391 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4392
4393         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4394         this unref; it doesn't match up evenly in some codepaths.
4395         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4396         this evenly matches with the ref near the top of this function.
4397
4398 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4399
4400         * dbus/dbus-object-tree.c
4401         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4402         and we try to unregister a path that's not registered, still go
4403         through the process of unlocking and don't just return.
4404
4405 2005-03-09  Colin Walters  <walters@verbum.org>
4406
4407         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4408         to this are generated for client-side wrappers.  Invokes a
4409         D-BUS method and returns reply values.  
4410
4411         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4412         function; writes signature string for argument direction.
4413         (write_args_for_direction): Change to pass input values directly
4414         instead of via address, and fix indentation.
4415         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4416         make generated wrappers inlineable.
4417
4418         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4419         note about using dbus_type_is_fixed.
4420
4421         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4422         dbus/dbus-signature.c as dbus_type_is_fixed.
4423
4424         All callers updated.
4425
4426         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4427         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4428
4429         * dbus/dbus-signature.h: Prototype.
4430
4431         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4432         error printf code.
4433
4434         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4435         appropriate instead of just freeing it.
4436         (main): Free returned strings using g_free.
4437
4438         * test/glib/Makefile.am (test-service-glib-glue.h)
4439         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4440
4441         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4442         simply maps a simple D-BUS type to GType.
4443         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4444         GType.
4445         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4446         initialize the value with it.
4447         (dbus_gvalue_binding_type_from_type): Unused, delete.
4448         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4449         various types instead of unmarshalling to value data directly.
4450         Remove can_convert boolean.
4451         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4452         returning directly instead of using can_convert boolean.
4453         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4454         Stores a GValue in a pointer to a value of its corresponding C
4455         type.
4456
4457         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4458         add dbus_gvalue_store.
4459
4460 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4461
4462         Fix a bunch of lifecycle and memory management problems
4463         in the mono bindings.
4464
4465         * mono/Arguments.cs (Arguments): Implement IDisposable
4466
4467         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4468         strictly a static class.
4469
4470         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4471         delegates into this file.
4472         (Connection): Implement IDisposable.
4473         (Dispose): Disconnect the connection and set the raw connection
4474         pointer to IntPtr.Zero.
4475         (~Connection): Call Dispose().
4476         (RegisterObjectPath): Added.  Manages the registration of object
4477         paths so we can cleanly disconnect them at dispose/finalize time.
4478         (UnregisterObjectPath): Ditto.
4479         (set_RawConnection): Unregister all of the object paths when
4480         changing the underlying DBusConnection.  Add them back onto the
4481         new connection, if any.
4482
4483         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4484         more unmanaged resources anymore, so it's not necessary.  Move all
4485         the DBusObjectPathVTable stuff out of here.
4486         (Handler): Save references to our delegates so that they don't get
4487         finalized.  Call Connection.RegisterObjectPath() instead of
4488         dbus_connection_register_object_path() directly.
4489         (Message_Called): Dispose the message after we're finished with
4490         it.
4491
4492         * mono/Message.cs (Message): Implement IDisposable.
4493         (Dispose): Dispose the Arguments, and set the RawMessage to
4494         IntPtr.Zero.
4495         (SendWithReplyAndBlock): We own the ref to the reply that comes
4496         back from dbus_connection_send_with_reply_and_block() so add a
4497         comment about that and unref it after we've constructed a managed
4498         MethodReturn class around it.  Fixes a big, big leak.
4499
4500         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4501         method.
4502         (BuildSignalHandler): After we've sent the Signal message, dispose
4503         of it.
4504         (BuildMethod): Dispose of the method call and reply messages after
4505         we've sent the message and extracted the data we want from the
4506         reply.
4507
4508         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4509         anymore.
4510         (Service_FilterCalled): Dispose of the message after we're
4511         finished with it.
4512
4513 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4514
4515         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4516         After we attach our pending call to the connection, unref
4517         it.  Fixes a leak.
4518  
4519         * mono/Connection.cs (set_RawConnection): Disconnect our
4520         filter and match callbacks from the old connection and
4521         reconnect them to the new connection, if any.
4522
4523         * mono/DBusType/Array.cs: "Code" is a static member, so
4524         don't use "this" to refer to it.  Fix for stricter checking
4525         in Mono 1.1.4.
4526  
4527         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4528         object path that we pass into unmanaged code.
4529  
4530         * mono/DBusType/String.cs (Append): Don't leak the string
4531         that we pass into unmanged code.
4532
4533 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4534         * NEWS: Update for 0.31
4535
4536         * configure.in: Release 0.31
4537         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4538
4539         * qt/Makefile.am: fixed build
4540
4541         * dbus/Makefile.am: soname bump for libdbus
4542
4543         * glib/Makefile.am: soname bump for libdbus-glib
4544
4545 2005-03-05  Havoc Pennington  <hp@redhat.com>
4546
4547         * dbus/dbus-sysdeps.c:
4548         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4549         value
4550         (_dbus_generate_random_bytes_buffer): fix return value
4551
4552         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4553         checks actually work, from Tom Parker <fdo@tevp.net>
4554
4555 2005-03-01  Colin Walters  <walters@verbum.org>
4556
4557         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4558         functions copied from dbus-glib-tool.c.
4559         (main): Convert lots of error code to use them.
4560         Also add some testing for introspection bits.
4561
4562 2005-03-01  Colin Walters  <walters@verbum.org>
4563         
4564         * doc/TODO: Remove introspection signature TODO.
4565
4566 2005-02-27  Colin Walters  <walters@verbum.org>
4567
4568         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4569         Change return value to const char * instead of int so we can do
4570         full signatures.
4571         (struct PropertyInfo, struct ArgInfo): Store char *.
4572         (property_info_new, arg_info_new): Update parameters, strdup.
4573         (property_info_unref, arg_info_unref): Free.
4574
4575         * glib/dbus-gidl.h: Update prototypes.
4576
4577         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4578         (validate_signature): New function, just validates signature and
4579         sets GError.
4580         (parse_property, parse_arg): Invoke validate_signature.  Store
4581         signature instead of just type code.
4582
4583         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4584         function to return a primary type for a signature, dropping
4585         information about types in container types.
4586         (dbus_gvalue_genmarshal_name_from_type)
4587         (dbus_gvalue_binding_type_from_type)
4588         (dbus_gvalue_ctype_from_type): Update to take full signature
4589          instead of type code.
4590         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4591
4592         * glib/dbus-gvalue.h: Update prototypes for above.
4593
4594         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4595         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4596         (introspect_properties, introspect_signals, write_interface):
4597         Update to handle signatures, and remove usage of
4598         _dbus_gutils_type_to_string.
4599         (handle_introspect): Print out type codes instead of e.g. "string"
4600         in hardcoded introspection XML; also use x_AS_STRING constants
4601         instead of hardcoding in string.
4602
4603         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4604         to string.  Remove usage of _dbus_gutils_type_to_string.
4605
4606         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4607
4608         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4609         deletion.
4610         
4611         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4612         (compute_marshaller_name, generate_glue): Handle signature change
4613         to string.
4614         (write_formal_parameters, write_args_for_direction): Ditto, and
4615         remove FIXME.
4616
4617         * tools/dbus-tree-view.c (type_to_string): Delete.
4618         (info_set_func_text): Update to print full signatures.
4619
4620         * test/glib/test-service-glib.xml: Change types to new
4621         introspection format.
4622
4623 2005-02-26  Havoc Pennington  <hp@redhat.com>
4624
4625         * doc/TODO: remove the "guid" item
4626
4627         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4628         (with_bus_thread_func): use open_private
4629
4630         * dbus/dbus-connection.c (dbus_connection_open_private): new
4631         function that works like the old dbus_connection_open()
4632         (dbus_connection_open): now returns an existing connection if
4633         possible
4634
4635         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4636         through the GUID to the transport
4637
4638         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4639         GUID in hex-encoded form.
4640
4641         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4642         pass GUID argument in to the transport
4643
4644         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4645         guid argument
4646
4647         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4648
4649         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4650
4651 2005-02-25  Havoc Pennington  <hp@redhat.com>
4652
4653         * doc/dbus-specification.xml: document the GUID thing
4654
4655         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4656         globally unique ID for the server, and put a "guid=hexencoded"
4657         field in the address
4658
4659         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4660
4661         * dbus/dbus-message.c: ditto
4662
4663         * dbus/dbus-dataslot.c: ditto
4664
4665         * dbus/dbus-list.c: ditto
4666
4667         * dbus/dbus-internals.h: wait, just include
4668         dbus-threads-internal.h here
4669         
4670         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4671         use in main library
4672
4673         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4674
4675 2005-02-24  Colin Walters  <walters@verbum.org>
4676
4677         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4678
4679 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4680
4681         * glib/Makefile.am: added dbus-gobject.h to sources list
4682         so distcheck doesn't fail
4683         
4684 2005-02-24  Havoc Pennington  <hp@redhat.com>
4685
4686         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4687         you must disconnect before unref, since locking and other things
4688         are screwed up otherwise. Fix assorted other locking stuff.
4689
4690         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4691         fix compilation
4692
4693         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4694         into a private header and don't export from the library
4695
4696         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4697
4698 2005-02-24  Colin Walters  <walters@verbum.org>
4699         
4700         * dbus/dbus-signature.c: New file; implements various functions
4701         related to type signatures.  Includes an interator for parsing,
4702         validation functions.
4703         (dbus_type_is_basic): Moved here from
4704         dbus-marshal-basic.c:_dbus_type_is_basic.
4705         (dbus_type_is_container): Moved here from
4706         dbus-marshal-basic.c:_dbus_type_is_container.
4707
4708         All callers of _dbus_type_is_container and _dbus_type_is_basic
4709         updated, and include dbus-signature.h.
4710
4711         * dbus/dbus-signature.h: New file; prototypes for the above.
4712
4713         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4714         dbus-signature.h.
4715
4716         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4717         function factored out of _dbus_first_type_in_signature.
4718         (_dbus_first_type_in_signature_c_str): New function; returns first
4719         type code for a type signature character.
4720
4721         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4722         handle function moves.
4723
4724         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4725
4726         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4727         function; skips to next complete type in type signature.
4728         Implemented using previous skip_one_complete_type.  Now
4729         skip_one_complete_type just delegates to
4730         _dbus_type_signature_next.
4731
4732         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4733         to dbus-signature.c
4734         (_dbus_type_is_container): Ditto.
4735
4736         * doc/dbus-specification.xml: Update introspection sample to
4737         use real type signatures.
4738
4739         * dbus/dbus-test.h: Prototype signature test.
4740
4741         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4742         signature tests.
4743
4744         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4745
4746 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4747
4748         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4749         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4750
4751 2005-02-21  Colin Walters  <walters@verbum.org>
4752
4753         * dbus/dbus-test-main.c (main): Take optional specific test
4754         argument.
4755
4756         * dbus/dbus-test.c (run_test): New function, runs a test function
4757         with no data directory.
4758         (run_data_test): Like above, but takes data directory.
4759         (dbus_internal_do_not_use_run_tests): Take
4760         specific test argument.  Replace lots of cut n' paste code
4761         with run_test and run_data_test.
4762
4763         * dbus/dbus-test.h: Update prototype for
4764         dbus_internal_do_not_use_run_tests.
4765
4766 2005-02-20  Havoc Pennington  <hp@redhat.com>
4767
4768         Fix bugs reported by Daniel P. Berrange
4769         
4770         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4771         (protected_change_watch): new function
4772         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4773         (_dbus_server_add_watch): change to work like the
4774         dbus-connection.c equivalents; like those, probably kind of
4775         busted, but should at least mostly work for now
4776         (dbus_server_disconnect): drop the lock if we were already
4777         disconnected, patch from Daniel P. Berrange
4778
4779         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4780         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4781         same stuff
4782
4783         * doc/TODO: todo about unscrewing this mess
4784
4785 2005-02-19  Colin Walters  <walters@verbum.org>
4786
4787         * glib/dbus-binding-tool-glib.c
4788         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4789
4790         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4791         as errno.h and sys/stat.h.
4792         (lose): New function, prints error with
4793         newline and exits.
4794         (lose_gerror): Similar, but takes GError for message.
4795         (main): Add --output argument to specify output file to write to,
4796         instead of always printing to stdout.  In this mode, determine
4797         timestamps on source files to see whether any are newer than the
4798         target file.  If not, exit.  Also convert a number of error
4799         messages to use lose (since it's shorter), and switch to using
4800         g_io_channel_shutdown.
4801
4802 2005-02-19  Havoc Pennington  <hp@redhat.com>
4803
4804         * glib/dbus-gobject.c
4805         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4806
4807         * glib/dbus-glib.c: fix doxygen warnings
4808
4809         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4810         is found on an <arg>
4811
4812 2005-02-17  Colin Walters  <walters@verbum.org>
4813
4814         * glib/dbus-gobject.h: Don't export
4815         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4816         
4817         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4818         (invoke_object_method): Handle it.
4819
4820         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4821         Handle rename.
4822         
4823 2005-02-17  Colin Walters  <walters@verbum.org>
4824
4825         * bus/.cvsignore, doc/.cvsignore
4826         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4827         Update.
4828
4829 2005-02-17  Colin Walters  <walters@verbum.org>
4830         
4831         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4832         Rename to DBUS_SERVICE_DBUS.
4833         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4834         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4835         Change the value from "org.freedesktop.Local"
4836         to "org.freedesktop.DBus.Local".
4837         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4838         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4839         DBUS_INTERFACE_INTROSPECTABLE.
4840         Change the value from "org.freedesktop.Introspectable"
4841         to "org.freedesktop.DBus.Introspectable".
4842         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4843         DBUS_INTERFACE_PROPERTIES.
4844         Change the value from "org.freedesktop.Properties"
4845         to "org.freedesktop.DBus.Properties".
4846         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4847         DBUS_INTERFACE_PEER.
4848         Change the value from "org.freedesktop.Peer"
4849         to "org.freedesktop.DBus.Peer".
4850         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4851         DBUS_INTERFACE_LOCAL.
4852         Change the value from "org.freedesktop.Local"
4853         to "org.freedesktop.DBus.Local".
4854
4855         All other users of those constants have been changed.
4856
4857         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4858
4859         * glib/dbus-gobject.c (handle_introspect): Use constants.
4860
4861         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4862
4863 2005-02-17  Colin Walters  <walters@verbum.org>
4864
4865         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4866         (parse_node, parse_interface, parse_method, parse_signal)
4867         (parse_property, parse_annotation): Lose if we're currently in an
4868         annotation.
4869         (parse_annotation): New function.
4870         (parser_start_element, parser_end_element): Handle annotation.
4871         (parse_method, parse_interface): Remove support for c_name attribute,
4872         switch to annotations.
4873
4874         * glib/dbus-gidl.h (interface_info_get_binding_names)
4875         (method_info_get_binding_names)
4876         (interface_info_get_binding_name, method_info_get_binding_name)
4877         (interface_info_set_binding_name, method_info_set_binding_name):
4878         Remove.
4879         (interface_info_get_annotations, method_info_get_annotations)
4880         (interface_info_get_annotation, method_info_get_annotation)
4881         (interface_info_add_annotation, method_info_add_annotation):
4882         Prototype.
4883
4884         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4885         for "bindings".
4886         (struct MethodInfo): Ditto.
4887         Straightfoward conversion of binding methods into annotation methods
4888         as prototyped.
4889
4890         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4891
4892         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4893
4894         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4895         Use new annotation API.
4896
4897         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4898         annotation element.
4899         
4900         * doc/dbus-specification.xml: Discuss introspection annotations,
4901         include list of well-known annotations.
4902
4903         * test/glib/test-service-glib.xml: Make validate against new DTD.
4904
4905 2005-02-17  Colin Walters  <walters@verbum.org>
4906
4907         This patch is based on initial work from
4908         Paul Kuliniewicz <kuliniew@purdue.edu>.
4909
4910         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4911         initialization of GValue from dbus type to here.
4912         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4913         for the "glib-genmarshal" program from a DBus type.
4914         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4915         into the C name for it we use in the glib bindings.
4916         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4917         glib C type (not GValue).
4918         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4919
4920         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4921         from dbus-gobject.c.
4922
4923         * glib/dbus-gutils.h: Prototype it.
4924
4925         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4926         (marshal_dbus_message_to_g_marshaller): Use new shared function
4927         dbus_glib_marshal_dbus_message_to_gvalue_array.
4928
4929         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4930         Will be changed once we have annotations.
4931
4932         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4933         GStaticRWLock.  Callers updated.
4934         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4935         (string_table_next): New function for iterating over zero-terminated
4936         string value array.
4937         (string_table_lookup): New function; retrieves specific entry in
4938         array.
4939         (get_method_data): New function; look up method data in object data chunk.
4940         (object_error_domain_prefix_from_object_info)
4941         (object_error_code_from_object_info): New functions, but not implemented yet.
4942         (method_interface_from_object_info): New function; retrieve interface name.
4943         (method_name_from_object_info): New function; retrieve method name.
4944         (method_arg_info_from_object_info): New function; retrieve argument data.
4945         (arg_iterate): New function; iterates over serialized argument data.
4946         (method_dir_signature_from_object_info): New function; returns a
4947         GString holding type signature for arguments for just one
4948         direction (input or output).
4949         (method_input_signature_from_object_info)
4950         (method_output_signature_from_object_info): New functions.
4951         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4952         converts dbus message arguments into a GValue array.  Used for both
4953         signal handling and method invocation.
4954         (struct DBusGlibWriteIterfaceData): New utility structure.
4955         (write_interface): New function; generate introspection XML for
4956         an interface.
4957         (introspect_interfaces): New function; gathers all interface->methods,
4958         generates introspection XML for them.
4959         (handle_introspect): Invoke introspect_interfaces.
4960         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4961         (lookup_object_and_method): New function; examines an incoming message
4962         and attempts to match it up (via interface, method name, and argument
4963         signature) with a known object and method.
4964         (gerror_domaincode_to_dbus_error_name): New function; converts a
4965         GError domain and code into a DBus error name.  Needs GError data
4966         added to object introspection to work well.
4967         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4968         GError.
4969         (invoke_object_method): New function to invoke an object method
4970         looked up via lookup_object_and_method.  Parses the incoming
4971         message, turns it into a GValue array, then invokes the marshaller
4972         specified in the DBusGMethodInfo.  Creates a new message with
4973         either return values or error message as appropriate.
4974         (gobject_message_function): Invoke lookup_object_and_method and
4975         invoke_object_method.
4976
4977         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4978         (enum DBusBindingOutputMode): New enum for binding output modes.
4979         (pretty_print): Print binding names.
4980         (dbus_binding_tool_error_quark): GError bits.
4981         (version): Fix typo.
4982         (main): Create GIOChannel for output.  Parse new --mode argument,
4983         possible values are "pretty-print", "glib-server", "glib-client".
4984         Use mode to invoke appropriate function.
4985         
4986         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4987
4988         * glib/dbus-glib-tool.h: New header, just includes GError bits
4989         for now.
4990
4991         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4992         maps binding style to name.
4993         (struct MethodInfo): Ditto.
4994         (get_hash_keys, get_hash_key): Utility function, returns keys for
4995         a GHashTable.
4996         (interface_info_new, method_info_new): Initialize bindings.
4997         (interface_info_unref, method_info_unref): Destroy bindings.
4998         (method_info_get_binding_names, method_info_get_binding_name)
4999         (interface_info_get_binding_names, interface_info_get_binding_name):
5000         Functions for retrieving binding names.
5001         (method_info_set_binding_name, interface_info_set_binding_name):
5002         Functions for setting binding names.
5003
5004         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5005         for glib binding generation.
5006
5007         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5008         and client-side glib glue generation.
5009
5010         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5011         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5012         dbus-glib-tool.h.
5013
5014         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5015         of using GClosureMarshal directly.
5016         (struct DBusGObjectInfo): Add n_infos member.
5017
5018         * test/glib/test-service-glib.xml: New file; contains introspection data
5019         for MyTestObject used in test-service-glib.c.
5020
5021         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5022         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5023         (my_object_uppercase, my_object_many_args): New test methods.
5024         (main): Use dbus_g_object_class_install_info to include generated object
5025         info.
5026
5027         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5028         as well as client-side bindings.
5029
5030         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5031         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5032         using both the dbus_gproxy stuff directly as well as the generated bindings.
5033
5034 2005-02-15  Havoc Pennington  <hp@redhat.com>
5035
5036         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5037         complete a pending call, don't run filters first.
5038
5039         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5040         dbus_pending_call_steal_reply
5041
5042         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5043         _dbus_connection_block_pending_call
5044         (dbus_pending_call_get_reply): change to steal_reply and return a
5045         ref
5046
5047         * dbus/dbus-connection.c
5048         (dbus_connection_send_with_reply_and_block): port to work in terms
5049         of DBusPendingCall
5050         (_dbus_connection_block_pending_call): replace block_for_reply
5051         with this
5052
5053 2005-02-14  Havoc Pennington  <hp@redhat.com>
5054
5055         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5056         properly handle looking up group information by name; fix 
5057         from j@bootlab.org
5058
5059 2005-02-13  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-connection.c (dbus_connection_return_message) 
5062         (dbus_connection_borrow_message): hold dispatch lock while message
5063         is outstanding
5064         (_dbus_connection_block_for_reply): hold dispatch lock while we
5065         block for the reply, so nobody steals our reply
5066         (dbus_connection_pop_message): hold the dispatch lock while we
5067         pluck the message
5068
5069 2005-02-13  Havoc Pennington  <hp@redhat.com>
5070
5071         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5072         (_dbus_connection_release_dispatch)
5073         (_dbus_connection_acquire_io_path)
5074         (_dbus_connection_release_io_path): make the mutex and condvar
5075         control access to the "acquired" flag. Drop the connection lock
5076         while waiting on the condvar. Hopefully these are baby steps in
5077         roughly the right direction.
5078
5079 2005-02-13  Havoc Pennington  <hp@redhat.com>
5080
5081         * dbus/dbus-connection.c: use separate mutexes for the condition
5082         variables; this is some kind of baseline for sanity, but the
5083         condition variables still aren't used correctly afaict
5084
5085 2005-02-13  Havoc Pennington  <hp@redhat.com>
5086
5087         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5088         fix a double-unlock
5089
5090         * dbus/dbus-connection.c
5091         (_dbus_connection_detach_pending_call_unlocked): add this
5092
5093         Initial semi-correct pass through to fix thread locking; there are
5094         still some issues with the condition variable paths I'm pretty
5095         sure
5096         
5097         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5098         lock/unlock calls
5099
5100         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5101         rename to add _unlocked
5102         (struct DBusConnection): move "dispatch_acquired" and
5103         "io_path_acquired" to use only one bit each.
5104         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5105         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5106         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5107         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5108         (_dbus_connection_remove_timeout) 
5109         (_dbus_connection_toggle_timeout): drop lock when calling out to
5110         user functions; done in a hacky/bad way.
5111         (_dbus_connection_send_and_unlock): add a missing unlock
5112         (_dbus_connection_block_for_reply): add a missing unlock
5113
5114         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5115         drop lock in a hacky probably unsafe way to call out to user
5116         function
5117
5118 2005-02-12  Havoc Pennington  <hp@redhat.com>
5119
5120         * tools/dbus-tree-view.c (info_set_func_text): display more
5121         details on args
5122
5123         * bus/driver.c (bus_driver_handle_list_services): list the bus
5124         driver
5125
5126         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5127
5128         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5129         (method_info_get_n_args): new function
5130
5131 2005-02-12  Havoc Pennington  <hp@redhat.com>
5132
5133         * bus/driver.c (bus_driver_handle_introspect): add introspection
5134         for bus driver
5135
5136 2005-02-12  Havoc Pennington  <hp@redhat.com>
5137
5138         * bus/driver.c: put the signature of each bus driver method in the
5139         table of handlers and check it on incoming calls; this isn't
5140         really useful, but going to add introspect support in a minute.
5141
5142 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5143
5144         * mono/Connection.cs: The unpredictability of finalizers in mono
5145         prevents us from deterministically disconnecting the filters from
5146         the Service class's finalizer, so move tracking of filters and
5147         matches here.  Add API for that.
5148
5149         * mono/Service.cs: Remove the code, add code which calls the
5150         methods now on the Connection class.
5151
5152 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5153
5154         * python/dbus.py (class Sender): added to support dbus signals better
5155         (Bus::add_signal_receiver): added expand_args parameter which defaults
5156         to True.  When expand args is True the signal handler will pass the 
5157         message arguments as parameters to the signal handler.  If False
5158         revert to previous behavior where the signal handler must get the
5159         argument list from the message.  This is to help port applications
5160         like HAL that have a tendancy to send variable length argument lists.
5161         self._match_rule_to_receivers is now a dict of dicts.
5162         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5163         removing it from a list
5164         (Bus::_signal_func): change signal handlers so that interface,
5165         signal_name, service, path and message are packed into a Sender
5166         object and that is passed to the handler.  If expand_args is True
5167         extract the args list from the message and append it to the parameter
5168         list
5169         
5170         * python/dbus_bindings.pyx.in (class Signature): added to support 
5171         signiature types
5172         (MessageIter::__init__): changed iteration limit to match D-BUS
5173         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5174         STRUCT and VARIENT type support
5175         (MessageIter::python_value_to_dbus_sig): made recursive to support
5176         recursive types
5177         (MessageIter::append*): added Signature, dict, tuple 
5178         support
5179
5180         * python/examples/example-client.py: added examples of getting tuples
5181         and dicts
5182
5183         * python/examples/example-service.py: added examples of sending tuples
5184         and dicts
5185
5186         * python/examples/example-signal-recipient.py: Fixed to handle new
5187         signal callback format
5188
5189 2005-02-10  Havoc Pennington  <hp@redhat.com>
5190
5191         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5192         (call dbus_g_proxy_add_signal)
5193
5194         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5195         escape the hostname
5196         (_dbus_server_new_for_domain_socket): escape the path
5197
5198         * dbus/dbus-address.c (dbus_address_escape_value): new
5199         (dbus_address_unescape_value): new
5200         (dbus_parse_address): unescape values
5201
5202         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5203
5204         * doc/dbus-specification.xml: explain how to escape values in
5205         addresses
5206
5207 2005-02-10  Havoc Pennington  <hp@redhat.com>
5208
5209         * dbus/dbus-message-factory.c (generate_special): modify test to
5210         avoid using a non-basic dict key
5211
5212         * dbus/dbus-marshal-validate-util.c: add test for the below
5213
5214         * doc/dbus-specification.xml: require that dict keys are a basic
5215         type
5216
5217         * dbus/dbus-marshal-validate.c
5218         (_dbus_validate_signature_with_reason): require that dict key is a
5219         basic type
5220
5221 2005-02-10  Havoc Pennington  <hp@redhat.com>
5222
5223         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5224         change to be _and_unlock instead of _unlocked
5225
5226         * dbus/dbus-connection.c
5227         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5228         have no_update so we can find this bug quickly in future
5229
5230 2005-02-10  Havoc Pennington  <hp@redhat.com>
5231
5232         * dbus/dbus-message-util.c (verify_test_message): tests for string
5233         array
5234
5235         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5236         support for arrays of string/signature/path
5237
5238 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5239
5240         * dbus/dbus-connection.c
5241         (_dbus_connection_queue_received_message_link,
5242         _dbus_connection_message_sent): Add the path to
5243         the verbose output.
5244         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5245         _dbus_connection_send_preallocated_unlocked(), updated the
5246         dispatch status, and unlocks.  Fixes a bug where certain
5247         situations (like a broken pipe) could cause a Disconnect message
5248         to not be sent, tricking the bus into thinking a service was still
5249         there when the process had quit.
5250         (_dbus_connection_send_preallocated): Call
5251         _dbus_connection_send_preallocated_and_unlock().
5252         (_dbus_connection_send_and_unlock): Added.  Calls
5253         _dbus_connection_send_preallocated_and_unlock().
5254         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5255         (dbus_connection_send_with_reply): Update the dispatch status and
5256         unlock.
5257
5258         * mono/Service.cs (~Service): Added.  Removes the filter so that
5259         we don't get unmanaged code calling back into a GCed delegate.
5260         (RemoveFilter); Added.
5261
5262 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5263
5264         * dbus/dbus-message.c (dbus_message_iter_open_container):
5265         - Removed check for iterator type being an array because
5266         get_arg_type does not work with writer iterators
5267         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5268
5269 2005-02-07  Havoc Pennington  <hp@redhat.com>
5270
5271         * doc/dbus-specification.xml: some more language cleanups; add
5272         stuff about how to deal with invalid protocol and extension
5273         points; add _ to allowed chars in auth commands; add EXTENSION_
5274         auth command prefix
5275
5276 2005-02-06  Havoc Pennington  <hp@redhat.com>
5277
5278         * s/expected/required/ in a couple places for clarity
5279
5280 2005-02-07  Colin Walters  <walters@verbum.org>
5281
5282         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5283         sender or proposed_recipient.
5284
5285 2005-02-06  Havoc Pennington  <hp@redhat.com>
5286
5287         * dbus/dbus-message-factory.c (generate_special): more tests
5288
5289         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5290         array length that exceeds the maximum
5291
5292 2005-02-05  Havoc Pennington  <hp@redhat.com>
5293
5294         * dbus/dbus-message-factory.c (generate_special): more test cases,
5295         increasing coverage
5296
5297         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5298         reason why a signature was invalid
5299
5300         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5301         skip the length of the string before we look at it in validation
5302
5303         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5304         equal_substring
5305
5306         * dbus/dbus-message.c (_dbus_message_loader_new): default
5307         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5308
5309 2005-02-05  Havoc Pennington  <hp@redhat.com>
5310
5311         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5312         if the signature of a variant was empty
5313         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5314         struct with no element type)
5315
5316         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5317         mangled messages to break things
5318
5319 2005-02-04  Havoc Pennington  <hp@redhat.com>
5320
5321         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5322         g_quark_try_string() so it actually can return 0
5323         (dbus_g_proxy_connect_signal): ditto
5324
5325 2005-02-04  Havoc Pennington  <hp@redhat.com>
5326
5327         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5328         bogus warning
5329         (tristring_from_message): assert cleanly on null path/interface
5330         (should not be possible though I decided later)
5331         (dbus_g_proxy_dispose): move proxy manager unregistration here
5332         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5333         g_return_if_fail() checks
5334
5335 2005-02-04  Havoc Pennington  <hp@redhat.com>
5336
5337         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5338
5339         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5340         (with some minor changes)
5341
5342         * doc/dbus-specification.xml: add deprecated attribute to
5343         introspection format
5344
5345 2005-01-31  Havoc Pennington  <hp@redhat.com>
5346
5347         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5348         think it's sort of right
5349
5350 2005-01-30  Havoc Pennington  <hp@redhat.com>
5351
5352         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5353
5354 2005-01-30  Havoc Pennington  <hp@redhat.com>
5355
5356         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5357
5358         * autogen.sh: change to autotools 1.9
5359
5360         * glib/dbus-gproxy.c: completely change how signals work
5361         (dbus_g_proxy_add_signal): new function to specify signature of a
5362         signal
5363         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5364         and g_warning if the incoming message has the wrong signature.
5365
5366 2005-01-30  Havoc Pennington  <hp@redhat.com>
5367
5368         * tools/dbus-names-model.c (have_names_notify): fix this
5369
5370         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5371         up the string array handling a bit 
5372
5373 2005-01-30  Havoc Pennington  <hp@redhat.com>
5374
5375         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5376         (dbus_g_pending_call_cancel): new function
5377
5378         * dbus/dbus-glib.h: move GType decls for connection/message here;
5379         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5380         here, just kind of rationalizing how we handle all that
5381
5382         * tools/dbus-names-model.c: new file for a tree model listing the
5383         services on a bus
5384
5385         * tools/dbus-tree-view.c (model_new): use proper typing on the
5386         model rows
5387
5388 2005-01-30  Havoc Pennington  <hp@redhat.com>
5389
5390         * glib/dbus-gmain.c: add a custom GSource back that just checks
5391         whether the message queue has anything in it; otherwise, there are 
5392         cases where we won't see messages in the queue since there was no 
5393         IO visible to the glib main loop
5394
5395         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5396         increase default message timeout to 25 seconds
5397
5398 2005-01-30  Havoc Pennington  <hp@redhat.com>
5399
5400         * test/glib/test-profile.c (no_bus_stop_server): remove the
5401         warning about the g_warning that I just fixed
5402
5403         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5404         custom source, seems to be a lot easier to understand and work
5405         better.
5406
5407 2005-01-30  Havoc Pennington  <hp@redhat.com>
5408
5409         I think this main loop thing is conceptually broken, but here are 
5410         some band aids. I'll maybe rewrite it in a minute.
5411         
5412         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5413         custom GSource, so don't pass it in; confusing
5414         (gsource_server_finalize, gsource_connection_finalize): add
5415         finalize handlers that remove all the watches.  
5416
5417 2005-01-30  Havoc Pennington  <hp@redhat.com>
5418
5419         * glib/dbus-gobject.c (introspect_properties): fix the XML
5420         generated
5421
5422         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5423         which effectively detects the use of freed messages
5424
5425         * glib/dbus-gobject.c (handle_introspect): modify and return the
5426         reply message instead of the incoming message
5427
5428         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5429         gee, maybe it should SEND THE XML instead of just making a string
5430         and freeing it again ;-)
5431
5432         * tools/dbus-print-message.c (print_message): improve printing of
5433         messages
5434
5435         * configure.in: add debug-glib.service to the output
5436
5437 2005-01-30  Havoc Pennington  <hp@redhat.com>
5438
5439         dbus-viewer introspected and displayed the bus driver
5440         
5441         * dbus/dbus-object-tree.c 
5442         (object_tree_test_iteration): add tests for a handler registered on "/"
5443
5444         * dbus/dbus-object-tree.c
5445         (_dbus_decompose_path): fix to handle path "/" properly
5446         (run_decompose_tests): add tests for path decomposition
5447         
5448         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5449         properly
5450
5451         * glib/dbus-gobject.c (handle_introspect): fix quotes
5452
5453         * test/glib/run-test.sh: support launching the bus, then running
5454         dbus-viewer
5455
5456         * test/glib/test-service-glib.c (main): put in a trivial gobject
5457         subclass and register it on the connection
5458
5459         * bus/driver.c (bus_driver_handle_introspect): implement
5460         introspection of the bus driver service
5461
5462         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5463         identifiers, doctype decl
5464
5465         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5466         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5467         returning the service unchanged.
5468         (bus_driver_handle_message): remove old check for reply_serial in
5469         method calls, now the message type deals with that
5470         (bus_driver_handle_message): handle NULL interface
5471
5472         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5473
5474         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5475         -1 for len
5476
5477         * tools/dbus-viewer.c: add support for introspecting a service on
5478         a bus
5479
5480         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5481         (dbus_g_pending_call_unref): add
5482
5483 2005-01-29  Havoc Pennington  <hp@redhat.com>
5484
5485         * tools/dbus-tree-view.c: add support for displaying properties.
5486         (run dbus-viewer with an introspect xml file as arg, then resize
5487         the window so the tree elements show up, not sure what that is)
5488
5489         * glib/dbus-gobject.c (handle_introspect): return
5490         org.freedesktop.Properties and org.freedesktop.Introspectable
5491         interfaces when we are introspected.
5492
5493         * doc/dbus-specification.xml: allow empty interface name when 
5494         Get/Set a property
5495
5496 2005-01-29  Havoc Pennington  <hp@redhat.com>
5497
5498         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5499         though it uses glib, it could be extended for any binding in
5500         principle
5501
5502         * glib/dbus-gobject.c (gobject_message_function): change to the
5503         new way properties work
5504
5505         * dbus/dbus-protocol.h: add the new interfaces
5506
5507         * doc/dbus-specification.xml: document the introspection format,
5508         Introspectable interface, and add an org.freedesktop.Properties
5509         interface.
5510
5511         * glib/dbus-gparser.c: add support for a <property> element
5512
5513         * glib/dbus-gidl.c: add PropertyInfo
5514
5515         * glib/dbus-gobject.c (handle_introspect): put the outermost
5516         <node> outside the signal and property descriptions.
5517         (introspect_properties): export properties as <property> rather
5518         than as method calls
5519
5520 2005-01-28  Havoc Pennington  <hp@redhat.com>
5521
5522         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5523         related to authentication protocol
5524
5525 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5526
5527         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5528                 - BUS_ACTIVATION -> BUS_STARTER
5529                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5530                 - class MessageIter (__init__): Added recursion checking 
5531                 so we throw a nice error instead of just disconnecting from the
5532                 bus.
5533                 (get): Added arg_type parameter for recursion.
5534                 Removed the nil type
5535                 Added signiture type placeholder (not implemented)
5536                 Added struct type placeholder (not implemented)
5537                 Added varient type placeholder (not implemented)
5538                 Commented out dict type for now     
5539                 (get_element_type): renamed from get_array_type
5540                 (get_*): changed to use the dbus_message_iter_get_basic API
5541                 (get_*_array): removed in favor of recursive get_array method
5542                 (get_array): new recursive method which calls get to marshal
5543                 the elements of the array
5544                 (value_to_dbus_sig): New method returns the corrasponding
5545                 dbus signiture to a python value
5546                 (append): Comment out dict handling for now
5547                 Handle lists with the new recursive API
5548                 Comment out None handling for now
5549                 (append_nil): removed
5550                 (append_*): changed to use dbus_message_iter_append_basic API
5551                 (append_*_array): removed in favor of recursive append_array 
5552                 method
5553                 (__str__): Make it easier to print out recursive iterators
5554                 for debugging
5555                 - class Message (__str__): moved type inspection to the
5556                 MessageIter class' __str__ method
5557                 (get_iter): Added an append parameter wich defaults to False
5558                 If True use the new API's to create an append iterator
5559
5560         * python/dbus.py: Update to use new bindings API
5561                 - TYPE_ACTIVATION -> TYPE_STARTER
5562                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5563                 - class ActivationBus -> class StarterBus
5564                 - class RemoteObject (__call__): get an append iterator
5565                 - (_dispatch_dbus_method_call): get an append iterator
5566                 - class Object (emit_signal): get an append iterator
5567
5568         * python/examples/: Fixed up the examples to work with the new API
5569                 
5570 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5571
5572         * configure.in: Bump version up to 0.30.
5573
5574         * HACKING: Add a release item to bump the version number up after 
5575         a release.
5576
5577 2005-01-28  Havoc Pennington  <hp@redhat.com>
5578
5579         * doc/dbus-specification.xml: update to describe 16-bit types and
5580         dict entries
5581
5582         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5583         assertion
5584
5585         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5586         type
5587
5588         * dbus/dbus-marshal-recursive.c: implement
5589
5590 2005-01-27  Havoc Pennington  <hp@redhat.com>
5591
5592         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5593
5594         * configure.in: find the right type for 16 and 32 bit ints as well
5595         as 64
5596
5597         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5598         the 16-bit types so people don't have to stuff them in 32-bit or
5599         byte arrays.
5600
5601 2005-01-27  Havoc Pennington  <hp@redhat.com>
5602
5603         * dbus/dbus-message.c: byteswap the message if you init an
5604         iterator to read/write from it
5605         
5606         * dbus/dbus-marshal-byteswap.c: new file implementing 
5607         _dbus_marshal_byteswap()
5608
5609         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5610
5611 2005-01-26  Havoc Pennington  <hp@redhat.com>
5612         
5613         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5614         build, apparently - nobody noticed?)
5615         
5616 2005-01-26  Havoc Pennington  <hp@redhat.com>
5617
5618         * dbus/dbus-marshal-recursive.h: remove todo comment
5619
5620 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5621
5622         * Land the mono binding changes to conform to the new APIs.
5623
5624         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5625         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5626
5627         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5628         type code as a string.
5629         (InitAppending): Rename dbus_message_append_iter_init() to
5630         dbus_message_iter_init_append().
5631
5632         * mono/BusDriver.cs: Rename ServiceEventHandler to
5633         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5634         Rename ServiceOwnerChanged to NameOwnerChanged.
5635
5636         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5637         underlying C call.
5638
5639         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5640
5641         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5642         dbus_bus_acquire_service() to dbus_bus_request_name().
5643
5644         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5645         of Type.UnderlyingSystemType to get the correct element type for
5646         the array.
5647         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5648         dbus_message_get_{element|arg}_type() instead of
5649         dbus_message_iter_init_array_iterator().
5650         (Append): Replace dbus_message_iter_append_array() with
5651         dbus_message_iter_open_container() and
5652         dbus_message_iter_close_container().
5653
5654         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5655         types have been removed.
5656         
5657         * mono/DBusType/*.cs: Replace calls of
5658         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5659         but specify the type in the DllImport extern declaration.  Ditto
5660         for dbus_message_iter_append_[type]() ->
5661         dbus_message_iter_append_basic().
5662
5663         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5664         NameOwnerChangedHandler.
5665
5666 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5667
5668         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5669                 - get_base_service -> get_unique_name
5670                 - bus_get_base_service -> bus_get_unique_name
5671                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5672                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5673                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5674                 - bus_activate_service -> bus_start_service_by_name
5675                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5676                 - bus_acquire_service -> bus_request_name
5677                 - dbus_bus_acquire_service -> dbus_bus_request_name
5678                 - bus_service_exists -> bus_name_has_owner
5679                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5680
5681         * python/dbus.py: Rename of methods
5682                 - activate_service -> start_service_by_name
5683                 - bus_acquire_service -> bus_request_name
5684                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5685                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5686
5687         
5688 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5689
5690         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5691         signature for the method that can't be found.
5692
5693         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5694         the message has any arguments, we need to call
5695         _dbus_type_reader_get_current_type(), not
5696         _dbus_type_reader_has_next().
5697
5698 2005-01-24  Havoc Pennington  <hp@redhat.com>
5699
5700         * dbus/dbus-message-factory.c: more testing of message validation
5701
5702         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5703         header
5704
5705 2005-01-23  Havoc Pennington  <hp@redhat.com>
5706
5707         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5708         get this all working, not many tests in the framework yet though
5709
5710 2005-01-22  Havoc Pennington  <hp@redhat.com>
5711
5712         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5713         tutorial, based on work from David Wheeler.
5714
5715 2005-01-21  Havoc Pennington  <hp@redhat.com>
5716
5717         * dbus/dbus-bus.c: add more return_if_fail checks
5718
5719         * dbus/dbus-message.c (load_message): have the "no validation"
5720         mode (have to edit the code to toggle the mode for now though)
5721
5722         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5723         skips all validation; I want to use this at least for benchmark
5724         baseline, I'm not sure if it should be a publicly-available switch.
5725
5726 2005-01-21  Havoc Pennington  <hp@redhat.com>
5727
5728         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5729         toplevel doxygen group as the low-level API stuff
5730
5731         * dbus/dbus.h: note that libdbus is the low-level API
5732
5733 2005-01-20  Havoc Pennington  <hp@redhat.com>
5734
5735         * update-dbus-docs.sh: script to update docs on the web site, only
5736         works for me though. neener.
5737
5738 2005-01-20  Havoc Pennington  <hp@redhat.com>
5739
5740         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5741         code can reveal bugs in it
5742
5743 2005-01-20  Havoc Pennington  <hp@redhat.com>
5744
5745         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5746         select() version, patches from Tor Lillqvist
5747
5748 2005-01-20  Havoc Pennington  <hp@redhat.com>
5749
5750         * doc/dbus-tutorial.xml: replace > with &gt;
5751
5752         * bus/services.c (bus_registry_acquire_service): validate the name
5753         and return a better error if it's no good.
5754
5755         * doc/dbus-specification.xml: note NO_AUTO_START change
5756
5757         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5758         from AUTO_START, we're toggling the default
5759
5760         * bus/dispatch.c: adapt the tests to change of auto-start default
5761
5762 2005-01-18  Havoc Pennington  <hp@redhat.com>
5763
5764         * rename dbus-daemon-1 to dbus-daemon throughout
5765
5766 2005-01-18  Havoc Pennington  <hp@redhat.com>
5767
5768         * Throughout, grand renaming to strip out the use of "service",
5769         just say "name" instead (or "bus name" when ambiguous).  Did not
5770         change the internal code of the message bus itself, only the
5771         programmer-facing API and messages.
5772         
5773         * doc/dbus-specification.xml: further update the message bus section
5774         
5775         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5776         in error case
5777
5778 2005-01-17  Havoc Pennington  <hp@redhat.com>
5779
5780         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5781         ever
5782
5783         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5784         "invalid name character" not only non-ASCII
5785
5786         * doc/dbus-specification.xml: further update spec, message bus 
5787         parts are still out-of-date but the marshaling etc. stuff is now
5788         accurate-ish
5789
5790 2005-01-17  Havoc Pennington  <hp@redhat.com>
5791
5792         * doc/dbus-specification.xml: partially update spec
5793
5794 2005-01-17  Havoc Pennington  <hp@redhat.com>
5795
5796         * Throughout, align variant bodies according to the contained
5797         type, rather than always to 8. Should save a fair bit of space in
5798         message headers.
5799         
5800         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5801         fix handling of case where p == end
5802
5803         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5804
5805 2005-01-17  Havoc Pennington  <hp@redhat.com>
5806
5807         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5808
5809         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5810         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5811         are marshaling/unmarshaling a boolean.
5812
5813 2005-01-16  Havoc Pennington  <hp@redhat.com>
5814
5815         This is about it on what can be disabled/deleted from libdbus
5816         easily, back below 150K anyhow. Deeper cuts are more work than 
5817         just turning the code off as I've done here.
5818         
5819         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5820         signed int convenience funcs
5821
5822         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5823         verbose mode
5824
5825         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5826         things out of libdbus
5827
5828         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5829         
5830         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5831         tests-enabled-only, though it should probably be deleted)
5832
5833         * dbus/dbus-message-util.c: same stuff
5834
5835         * dbus/dbus-auth-util.c: same stuff
5836
5837 2005-01-16  Havoc Pennington  <hp@redhat.com>
5838
5839         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5840
5841         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5842         way for stripping down dbus-userdb.c stuff included in libdbus.
5843         Rename _dbus_parse_uid for consistency.
5844
5845 2005-01-16  Havoc Pennington  <hp@redhat.com>
5846
5847         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5848         name the assertion failed in
5849
5850         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5851         (_dbus_return_val_if_fail): assert that the name of the function
5852         containing the check doesn't start with '_', since we only want to 
5853         use checks on public functions
5854         
5855         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5856         checks to assertions
5857
5858         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5859         change checks to asserts for private function
5860
5861         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5862         to asserts for private function
5863
5864         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5865         broken assertion that was breaking make check
5866         (_dbus_type_reader_array_is_empty): remove this rather than fix
5867         it, was only used in assertions
5868
5869 2005-01-16  Havoc Pennington  <hp@redhat.com>
5870
5871         * test/unused-code-gc.py: hacky script to find code that's used
5872         only by the bus (not libdbus) or used only by tests or not used at
5873         all. It has some false alarms, but looks like we can clean up a
5874         lot of size from libdbus.
5875
5876         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5877         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5878         
5879 2005-01-16  Havoc Pennington  <hp@redhat.com>
5880
5881         * Add and fix docs according to Doxygen warnings throughout
5882         source.
5883         
5884         * dbus/dbus-marshal-recursive.c
5885         (_dbus_type_reader_array_is_empty): change this to just call
5886         array_reader_get_array_len() and make it static
5887
5888         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5889         from get_array_type
5890         (dbus_message_iter_init_append): rename from append_iter_init
5891
5892         * dbus/dbus-marshal-recursive.c
5893         (_dbus_type_reader_get_element_type): rename from
5894         _dbus_type_reader_get_array_type
5895
5896 2005-01-15  Havoc Pennington  <hp@redhat.com>
5897
5898         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5899
5900         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5901         when DBUS_DISABLE_ASSERT
5902         (_dbus_marshal_set_basic): be sure we align for the string length
5903
5904         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5905         this look faster
5906
5907         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5908         inline macro version
5909         (_dbus_string_set_byte): provide inline macro version
5910
5911 2005-01-15  Havoc Pennington  <hp@redhat.com>
5912
5913         * Land the new message args API and type system.
5914
5915         This patch is huge, but the public API change is not 
5916         really large. The set of D-BUS types has changed somewhat, 
5917         and the arg "getters" are more geared toward language bindings;
5918         they don't make a copy, etc.
5919
5920         There are also some known issues. See these emails for details
5921         on this huge patch:
5922         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5923         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5924         
5925         * dbus/dbus-marshal-*: all the new stuff
5926
5927         * dbus/dbus-message.c: basically rewritten
5928
5929         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5930         freed blocks to be all non-nul bytes so using freed memory is less
5931         likely to work right
5932
5933         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5934         DBUS_FAIL_MALLOC=N environment variable, so you can do
5935         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5936         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5937         thorough.
5938
5939         * qt/message.cpp: port to the new message args API
5940         (operator<<): use str.utf8() rather than str.unicode()
5941         (pretty sure this is right from the Qt docs?)
5942
5943         * glib/dbus-gvalue.c: port to the new message args API
5944
5945         * bus/dispatch.c, bus/driver.c: port to the new message args API
5946
5947         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5948         "locked" flag to TRUE and align_offset to 0; I guess we never
5949         looked at these anyhow, but seems cleaner.
5950
5951         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5952         move allocation padding macro to this header; use it to implement
5953         (_DBUS_STRING_STATIC): ability to declare a static string.
5954
5955         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5956         change to return TRUE if the interface is not set.
5957
5958         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5959         to dbus-marshal-validate.[hc]
5960
5961         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5962         dbus-internals.c
5963
5964         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5965         to dbus-marshal-*.[hc]
5966
5967         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5968         function here from dbus-marshal.c
5969
5970 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5971
5972         * NEWS: Update for 0.23.
5973
5974         * configure.in: Release 0.23.
5975
5976 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5977
5978         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5979         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5980         behind.
5981
5982         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5983         uninstall"
5984
5985         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5986         is an enum, get the enum's underlying type.  Another mono
5987         1.1.3 fix.
5988
5989 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5990
5991         Patch from Sjoerd Simons <sjoerd@luon.net>
5992
5993         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5994         DESTDIR.  It breaks stuff.
5995
5996 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5997
5998         Patch from Tambet Ingo <tambet@ximian.com>
5999
6000         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6001         calling type.GetElementType().  The code previously depended on
6002         broken Mono behavior, which was fixed in Mono 1.1.3.
6003
6004         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6005         Activator.CreateInstance() so that the class's constructor is
6006         called with the right parameters.
6007
6008 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6009
6010         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6011
6012         * dbus/dbus-connection.c
6013         (_dbus_connection_queue_received_message_link): Call
6014         _dbus_connection_remove_timeout() instead of the _locked()
6015         variant, since it's always called from
6016         _dbus_connection_handle_watch(), which handles the locking.
6017         Removed the _locked() variant since it's no longer used.
6018
6019 2005-01-03  Havoc Pennington  <hp@redhat.com>
6020
6021         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6022         return
6023         
6024 2004-12-26  Havoc Pennington  <hp@redhat.com>
6025
6026         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6027
6028 2005-01-03  Havoc Pennington  <hp@redhat.com>
6029
6030         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6031         floating point
6032
6033         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6034
6035 2005-01-02  Havoc Pennington  <hp@redhat.com>
6036
6037         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6038
6039 2005-01-01  Havoc Pennington  <hp@redhat.com>
6040
6041         * configure.in: add -Wfloat-equal
6042
6043 2005-01-01  Havoc Pennington  <hp@redhat.com>
6044
6045         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6046         for a variety of reasons '==' doesn't do this.
6047
6048 2004-12-31  Havoc Pennington  <hp@redhat.com>
6049
6050         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6051         I keep wishing I had
6052
6053 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6054
6055         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6056
6057 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6058
6059         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6060         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6061         dbus-protocol.h.  Because they are defines and not enums they are not
6062         autogenerated.
6063
6064 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6065
6066         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6067         dbus_bus_activate_service
6068
6069         * python/dbus.py (Bus.activate_service): activate a service on the
6070         bus.
6071
6072 2004-12-24  Havoc Pennington  <hp@redhat.com>
6073
6074         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6075         file format has also changed and I haven't adapted to that yet
6076         
6077         * Makefile.am: load .gcno files from latest gcc
6078
6079 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6080         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6081
6082         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6083         lowlevel binding
6084
6085         * python/dbus.py (get_unix_user): Added binding to 
6086         call dbus_bindings.bus_get_unix_user
6087
6088         * python/extract.py: Modified the proto_pat regex to
6089         handle unsigned long
6090
6091 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6092
6093         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6094         better POSIX compliance.
6095
6096 2004-12-19  Havoc Pennington  <hp@redhat.com>
6097
6098         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6099         (_dbus_string_insert_8_aligned): new functions
6100
6101         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6102
6103 2004-12-18  Havoc Pennington  <hp@redhat.com>
6104
6105         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6106         macro
6107
6108         * dbus/dbus-message.c: fix a comment, and add a still-unused
6109         not-implemented function
6110
6111         * dbus/dbus-marshal.h: fix comment
6112
6113         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6114
6115 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6116
6117         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6118         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6119         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6120         Type.UnderlyingSystemType to get the actual system type
6121         underneath.  This code previously depended on the broken Mono
6122         behavior, which was fixed in 1.1.3.
6123
6124 2004-11-27  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6127         are disabled
6128         (_dbus_string_get_const_data): inline when asserts are disabled
6129
6130         * dbus/dbus-message.c: record the _dbus_current_generation of
6131         creation so we can complain if dbus_shutdown() is used improperly.
6132         Do this only if checks are enabled.
6133
6134         * dbus/dbus-connection.c: ditto
6135         
6136 2004-11-26  Havoc Pennington  <hp@redhat.com>
6137
6138         * test/glib/test-profile.c: add with_bus mode to profile echoes
6139         that go through the bus.
6140
6141         * test/glib/run-test.sh: add ability to run test-profile
6142
6143         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6144         config file reload.
6145
6146 2004-11-26  Havoc Pennington  <hp@redhat.com>
6147
6148         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6149         thing was implemented
6150
6151 2004-11-26  Havoc Pennington  <hp@redhat.com>
6152
6153         * test/glib/test-profile.c: tweak a bit, add support for some
6154         made-up minimal malloc overhead with plain sockets, since in 
6155         real life some sort of buffers are unavoidable thus we could 
6156         count them in the theoretical best case
6157
6158 2004-11-26  Havoc Pennington  <hp@redhat.com>
6159
6160         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6161         where I was trying to cache one too many messages
6162
6163 2004-11-26  Havoc Pennington  <hp@redhat.com>
6164
6165         * dbus/dbus-message.c: reimplement message cache as an array which 
6166         makes the cache about twice as fast and saves maybe 1.5% overall
6167
6168 2004-11-26  Havoc Pennington  <hp@redhat.com>
6169
6170         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6171         message cache lock here
6172
6173 2004-11-26  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6176         the "char byte_order" next to each other to save 4 bytes
6177         (dbus_message_new_empty_header): reduce preallocation, since the
6178         message cache should achieve a similar effect
6179         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6180         message cache that keeps a few DBusMessage around in a pool,
6181         another 8% speedup or so.
6182
6183         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6184
6185 2004-11-25  Havoc Pennington  <hp@redhat.com>
6186
6187         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6188         to write, without reading or blocking, try it before the poll()
6189         and skip the poll() if nothing remains to write. This is about a
6190         3% speedup in the echo client/server
6191
6192 2004-11-25  Havoc Pennington  <hp@redhat.com>
6193
6194         The primary change here is to always write() once before adding
6195         the write watch, which gives us about a 10% performance increase.
6196         
6197         * dbus/dbus-transport-unix.c: a number of modifications to cope
6198         with removing messages_pending
6199         (check_write_watch): properly handle
6200         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6201         messages_pending stuff
6202         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6203         AUTHENTICATED cases
6204         (unix_handle_watch): after writing, see if the write watch can be
6205         removed
6206         (unix_do_iteration): assert that write_watch/read_watch are
6207         non-NULL rather than testing that they aren't, since they 
6208         aren't allowed to be NULL. check_write_watch() at the end so 
6209         we add the watch if we did not finish writing (e.g. got EAGAIN)
6210
6211         * dbus/dbus-transport-protected.h: remove messages_pending call,
6212         since it resulted in too much inefficient watch adding/removing; 
6213         instead we now require that the transport user does an iteration 
6214         after queueing outgoing messages, and after trying the first
6215         write() we add a write watch if we got EAGAIN or exceeded our 
6216         max bytes to write per iteration setting
6217
6218         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6219         function
6220
6221         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6222         freed and then accessed, valgrind flagged this bug, fix it
6223
6224         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6225         as the last valid field plus 1, where really it is equal to the
6226         last valid field. Corrects some message corruption issues.
6227
6228         * dbus/dbus-mainloop.c: verbosity changes
6229
6230         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6231         instead of aborting in one of the test codepaths
6232
6233         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6234         caused not printing the pid ever again if a verbose was missing
6235         the newline at the end
6236         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6237
6238         * dbus/dbus-connection.c: verbosity changes; 
6239         (dbus_connection_has_messages_to_send): new function
6240         (_dbus_connection_message_sent): no longer call transport->messages_pending
6241         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6242         try to write() immediately, so we can avoid the write watch. This
6243         is the core purpose of this patchset
6244         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6245         dump the outgoing message queue, so nobody will get confused
6246         trying to send them or thinking stuff is pending to be sent
6247
6248         * bus/test.c: verbosity changes
6249
6250         * bus/driver.c: verbosity/assertion changes
6251
6252         * bus/dispatch.c: a bunch of little tweaks to get it working again
6253         because this patchset changes when/where you need to block.
6254
6255 2004-11-23  Havoc Pennington  <hp@redhat.com>
6256
6257         * test/glib/test-profile.c: modify to accept a plain_sockets
6258         argument in which case it will bench plain sockets instead of
6259         libdbus, for comparison purposes.
6260
6261 2004-11-22  Havoc Pennington  <hp@redhat.com>
6262
6263         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6264         threads for more time, so sysprof can get a grip on it.
6265
6266         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6267         pointless variable
6268
6269 2004-11-13  Havoc Pennington  <hp@redhat.com>
6270
6271         * test/glib/test-profile.c: fix this thing up a bit
6272
6273         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6274         preallocation sizes by a fair bit; not sure if this will be an
6275         overall performance win or not, but it does reduce reallocs.
6276
6277         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6278         the test hack that forced constant realloc if asserts are
6279         disabled, so we can profile sanely. Sprinkle in some
6280         _DBUS_UNLIKELY() which are probably pointless, but before I
6281         noticed the real performance problem I put them in.
6282         (_dbus_string_validate_utf8): micro-optimize this thing a little
6283         bit, though callgrind says it didn't help; then special-case
6284         ascii, which did help a lot; then be sure we detect nul bytes as
6285         invalid, which is a bugfix.
6286         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6287         superstition; use memset to nul the padding instead of a manual
6288         loop.
6289         (_dbus_string_get_length): inline this as a
6290         macro; it showed up in the profile because it's used for loop
6291         tests and so forth
6292
6293 2004-11-10  Colin Walters  <walters@verbum.org>
6294
6295         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6296         for extra paranoia.
6297
6298 2004-11-09  Colin Walters  <walters@verbum.org>
6299
6300         * dbus/dbus-string.c (_dbus_string_get_length): New
6301         function, writes DBusString to C buffer.
6302
6303         * dbus/dbus-string.h: Prototype it.
6304
6305         * dbus/dbus-message.c (dbus_message_type_to_string): New
6306         function, converts message type into C string.
6307
6308         * dbus/dbus-message.h: Prototype it.
6309
6310         * bus/selinux.c (bus_selinux_check): Take source pid,
6311         target pid, and audit data.  Pass audit data to
6312         avc_has_perm.
6313         (log_audit_callback): New function, appends extra
6314         audit information.
6315         (bus_selinux_allows_acquire_service): Also take
6316         service name, add it to audit data.
6317         (bus_selinux_allows_send): Also take message
6318         type, interface, method member, error name,
6319         and destination, and add them to audit data.
6320         (log_cb): Initialize func_audit.
6321         
6322         * bus/selinux.h (bus_selinux_allows_acquire_service)
6323         (bus_selinux_allows_send): Update prototypes 
6324
6325         * bus/services.c (bus_registry_acquire_service): Pass
6326         service name to bus_selinux_allows_acquire_service.
6327
6328         * bus/bus.c (bus_context_check_security_policy): Pass
6329         additional audit data.  Move assignment of dest
6330         to its own line.
6331
6332 2004-11-07  Colin Walters  <walters@verbum.org>
6333
6334         * dbus/dbus-transport-unix.c (do_authentication): Always
6335         initialize auth_completed.
6336         
6337 2004-11-07  Colin Walters  <walters@verbum.org>
6338
6339         * bus/bus.c (load_config): Break into three
6340         separate functions: process_config_first_time_only,
6341         process_config_every_time, and process_config_postinit.
6342         (process_config_every_time): Move call of
6343         bus_registry_set_service_context_table into
6344         process_config_postinit.
6345         (process_config_postinit): New function, does
6346         any processing that needs to happen late
6347         in initialization (and also on reload).
6348         (bus_context_new): Instead of calling load_config,
6349         open config parser here and call process_config_first_time_only
6350         and process_config_every_time directly.  Later, after
6351         we have forked but before changing UID,
6352         invoke bus_selinux_full_init, and then call
6353         process_config_postinit.
6354         (bus_context_reload_config): As in bus_context_new,
6355         load parse file inside here, and call process_config_every_time
6356         and process_config_postinit.
6357
6358         * bus/services.h, bus/services.c
6359         (bus_registry_set_service_context_table): Rename
6360         from bus_registry_set_sid_table.  Take string hash from config
6361         parser, and convert them here into SIDs.
6362
6363         * bus/config-parser.c (struct BusConfigParser): Have
6364         config parser only store a mapping of service->context
6365         string.
6366         (merge_service_context_hash): New function.
6367         (merge_included): Merge context string hashes instead
6368         of using bus_selinux_id_table_union.
6369         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6370         simply create a new string hash.
6371         (bus_config_parser_unref): Unref it.
6372         (start_selinux_child): Simply insert strings into hash,
6373         don't call bus_selinux_id_table_copy_over.
6374
6375         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6376         (bus_selinux_id_table_copy_over): Delete.
6377
6378 2004-11-03  Colin Walters  <walters@verbum.org>
6379
6380         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6381         variables.
6382         
6383 2004-11-03  Colin Walters  <walters@verbum.org>
6384
6385         * bus/test-main.c (test_pre_hook): Fix test logic,
6386         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6387
6388 2004-11-02  Colin Walters  <walters@redhat.com>
6389
6390         * bus/selinux.c (bus_selinux_init): Split into two functions,
6391         bus_selinux_pre_init and bus_selinux_post_init.
6392         (bus_selinux_pre_init): Just determine whether SELinux is
6393         enabled.
6394         (bus_selinux_post_init): Do everything else.
6395
6396         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6397         config file, and bus_selinux_post_init after.  This ensures that
6398         we don't lose the policyreload notification thread that
6399         bus_selinux_init created before forking previously.
6400         
6401         * bus/test-main.c (test_pre_hook): Update for split.
6402
6403 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6404
6405         Patch from Johan Fischer <linux@fischaz.com>
6406         
6407         * mono/doc/Makefile.am (install-data-local): Added directory
6408         install for DESTDIR
6409
6410 2004-10-29  Colin Walters  <walters@redhat.com>
6411
6412         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6413         parameter for fd to write pid to.       
6414
6415         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6416         
6417         * bus/bus.c (bus_context_new): Pass print_pid_fd
6418         to _dbus_become_daemon (bug #1720)
6419
6420 2004-10-29  Colin Walters  <walters@redhat.com>
6421
6422         Patch from Ed Catmur <ed@catmur.co.uk>
6423
6424         * mono/doc/Makefile.am (install-data-local): Handle
6425         DESTDIR.
6426
6427 2004-10-29  Colin Walters  <walters@redhat.com>
6428
6429         * bus/.cvsignore, qt/.cvsignore: Update.
6430
6431 2004-10-29  Colin Walters  <walters@redhat.com>
6432
6433         Patch from Kristof Vansant <de_lupus@pandora.be>
6434
6435         * configure.in: Detect Slackware.
6436         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6437         * bus/rc.messagebus.in: New file.
6438
6439 2004-10-29  Colin Walters  <walters@redhat.com>
6440
6441         * tools/dbus-monitor.c (filter_func): Return
6442         DBUS_HANDLER_RESULT_HANDLED in filter function
6443         for now.  See:
6444         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6445
6446 2004-10-29  Colin Walters  <walters@redhat.com>
6447
6448         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6449
6450         * bus/services.c (bus_registry_acquire_service): 
6451         Correctly retrieve service name from DBusString
6452         for printing.
6453
6454 2004-10-29  Colin Walters  <walters@redhat.com>
6455
6456         * dbus/dbus-glib.h: Update documentation to not
6457         refer to internal APIs.
6458
6459 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6460
6461         * mono/Arguments.cs (GetDBusTypeConstructor):
6462         type.UnderlyingSystemType will return "System.Byte" if you do it
6463         on "byte[]", which is not what we want.  So check the type.IsArray
6464         property and use System.Array instead.
6465
6466 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6467
6468         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6469         the DBusUserInfo structure since this is passed into the function.
6470         This would cause a double free when the function that allocated
6471         the structure would try to free it when an error occured.
6472
6473         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6474         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6475         for service activation to avoid 32bit/64bit parallel install issues
6476
6477 2004-10-21  Colin Walters  <walters@verbum.org>
6478
6479         * AUTHORS: Fix my email address, the @gnu.org one
6480         has been bouncing for some time.  Also add J5.
6481         
6482 2004-10-21  Colin Walters  <walters@verbum.org>
6483
6484         * dbus/dbus-transport-unix.c (do_authentication): Return
6485         authentication status to callers.
6486         (unix_handle_watch): If we completed authentication this round,
6487         don't do another read.  Instead wait until the next iteration,
6488         after we've read any pending data in the auth buffer.
6489         (unix_do_iteration): Ditto.
6490         (unix_handle_watch): Updated for new do_authentication prototype.
6491
6492 2004-10-18  Colin Walters  <walters@verbum.org>
6493
6494         * bus/selinux.c (bus_selinux_enabled): Handle
6495         --disable-selinux case.
6496         
6497 2004-10-18  Colin Walters  <walters@verbum.org>
6498
6499         * bus/selinux.h: Add bus_selinux_enabled.
6500         
6501         * bus/selinux.c (bus_selinux_enabled): Implement it.
6502         
6503         * bus/config-parser.c (struct include): Add
6504         if_selinux_enabled member.
6505         (start_busconfig_child): Parse if_selinux_enabled
6506         attribute for include.
6507         (bus_config_parser_content): Handle it.
6508
6509         * bus/session.conf.in, bus/system.conf.in: Add
6510         inclusion of context mapping to default config files;
6511         conditional on SELinux being enabled.
6512         
6513         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6514         
6515         * test/data/invalid-config-files/badselinux-1.conf, 
6516         test/data/invalid-config-files/badselinux-2.conf:
6517         Test files for bad syntax.
6518         
6519 2004-10-17  Colin Walters  <walters@verbum.org>
6520
6521         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6522         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6523         format specifier mismatches.
6524
6525 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6526
6527         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6528         format string.
6529
6530         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6531         pointer (bug #1540, Leonardo Boiko).
6532
6533 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6534
6535         * mono/BusDriver.cs: Changed BusDriver struct to remove
6536         the ServiceCreated and ServiceDeleted events and replace them
6537         with the new ServiceOwnerChanged event.
6538
6539         * mono/example/BusListener.cs: Added a new example program,
6540         which listens for and reports any ServiceOwnerChanged events
6541         on the bus driver.
6542
6543         * mono/example/Makefile.am (DESTDIR): Build changes for the
6544         new BusListener.cs example.
6545
6546 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6547
6548         * bus/signals.c (bus_match_rule_parse): validate the components of
6549         match rules (bug #1439).
6550
6551         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6552
6553 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6554
6555         * doc/dbus-specification.xml: document ServiceOwnerChanged
6556         signal.
6557         
6558         * bus/driver.c, bus/driver.h, bus/services.c: Use
6559         ServiceOwnerChanged signal instead of ServiceCreated and
6560         ServiceDeleted.
6561         
6562         * bus/dispatch.c: update testcase for the new signal.
6563
6564 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6565
6566         Patch from Nat Friedman <nat@novell.com>
6567
6568         * mono/Makefile.am: A number of small build fixes to allow "make
6569         distcheck" to succeed.
6570
6571         * mono/example/Makefile.am: "make distcheck" fixes.
6572
6573         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6574         key in @srcdir@.
6575
6576         * test/Makefile.am: "make distcheck" fixes.
6577
6578 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6579
6580         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6581
6582         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6583
6584         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6585         messages after the first one (bug #1389).
6586         
6587         * bus/dispatch.c (check_double_hello_message): add a test case for
6588         the double hello message bug.
6589         (check_existent_service_activation): fix check of spawning error.
6590         
6591 2004-09-16  David Zeuthen  <david@fubar.dk>
6592
6593         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6594
6595 2004-09-12  David Zeuthen  <david@fubar.dk>
6596
6597         Patch from Kay Sievers <kay.sievers@vrfy.org>
6598
6599         * bus/bus.c (bus_context_new):
6600         * bus/bus.h:
6601         * bus/main.c (usage)
6602         (main):
6603         Add commandline option --nofork to override configuration file
6604         setting.
6605
6606 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6607
6608         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6609         compilers don't like it (bug #974).
6610
6611 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6612
6613         * qt/connection.*: Applied patch by Jérôme Lodewyck
6614         <lodewyck@clipper.ens.fr> to integrate an existing
6615         connection into the Qt eventloop
6616
6617 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6618
6619         * mono/BusDriver.cs: Added.  This is a class for interacting with
6620         the org.freedesktop.DBus service.
6621
6622         * mono/Message.cs: Added a mechanism to expose the message that is
6623         currently being dispatched via the static Message.Current
6624         property.  Added Message.Sender and Message.Destination
6625         properties.
6626
6627         * mono/Handler.cs: Expose the dispatched message via
6628         Message.Current when handling method calls.
6629
6630         * mono/Service.cs: Expose the dispatched message via
6631         Message.Current when handling signal emissions.
6632         
6633         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6634         Connection.BaseService property.
6635
6636 2004-08-28  Havoc Pennington  <hp@redhat.com>
6637
6638         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6639
6640         More fixes from Steve Grubb
6641         
6642         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6643         (_dbus_listen_tcp_socket): fix fd leak
6644
6645         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6646         EINTR to a bit lower in the code
6647
6648 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6649
6650         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6651         TRUE if we are inquiring about the existence of the built-in
6652         org.freedesktop.DBus service.
6653
6654 2004-08-25  John Palmieri  <johnp@redhat.com>
6655         * bus/config-parser.c:
6656         (struct PolicyType): Add POLICY_CONSOLE
6657         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6658         (start_busconfig_child): Sets up console element when
6659         <policy at_console=""> is encountered in a policy file
6660         (append_rule_from_element): Convert console elements to console
6661         rules.
6662
6663         * bus/policy.c: 
6664         (bus_policy_create_client_policy): Add console rules to the client
6665         policy based on if the client is at the console
6666         (bus_policy_append_console_rule): New function for adding a
6667         console rule to a policy
6668         (bus_policy_merge): Handle console rule merging
6669
6670         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6671         where we check for console user files
6672         
6673         * dbus/dbus-sysdeps.c:
6674         (_dbus_file_exists): New function which checks if the given
6675         file exists
6676         (_dbus_user_at_console): New function which does the system
6677         specific process of checking if the user is at the console
6678
6679         * dbus/dbus-userdb.c:
6680         (_dbus_is_console_user): New function converts a UID to user name
6681         and then calls the system specific _dbus_user_at_console to 
6682         see if the user is at the console and therefor a console user
6683
6684 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6685
6686         * bus/config-parser.c (set_limit):
6687         * bus/dbus-daemon-1.1.in:
6688         * test/data/valid-config-files/many-rules.conf: set the
6689         max_match_rules_per_connection limt from the config file. 
6690
6691         * doc/busconfig.dtd: update the DTD.
6692
6693         * bus/driver.c: remove some unused variables.
6694
6695 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6696
6697         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6698         it's been replaced by dbus_g_bus_get
6699
6700 2004-08-23  Colin Walters  <walters@redhat.com>
6701
6702         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6703
6704         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6705
6706         * bus/selinux.c: Create a thread for policy reload notification.
6707         (bus_selinux_get_policy_root): Implement.
6708
6709         * bus/config-parser.c (start_busconfig_child)
6710         (bus_config_parser_content): Support SELinux-root relative
6711         inclusion.
6712
6713         * configure.in <HAVE_SELINUX>: Add -lpthread.
6714         
6715         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6716         (test_post_hook): Move memory checking into here.
6717         (test_pre_hook, test_post_hook): Move SELinux checks in
6718         here, but conditional on a DBUS_TEST_SELINUX environment
6719         variable.  Unfortunately we can't run the SELinux checks
6720         as a normal user, since they won't have any permissions
6721         for /selinux.  So this will have to be tested manually
6722         for now, until we have virtualization for most of
6723         libselinux.
6724         
6725 2004-08-23  Havoc Pennington  <hp@redhat.com>
6726
6727         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6728         drop supplementary groups, suggested by Steve Grubb
6729
6730 2004-08-20  Colin Walters  <walters@redhat.com>
6731
6732         * bus/config-parser.c (start_busconfig_child): Remove some unused
6733         variables.
6734         
6735         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6736         warning.
6737
6738 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6739
6740         * configure.in: If --enable-mono is passed in, if we can't find
6741         mono error out.
6742
6743         * mono/Makefile.am: Use /gacutil to install assemblies into the
6744         GAC and not /root.
6745
6746 2004-08-12  Havoc Pennington  <hp@redhat.com>
6747
6748         * NEWS: update for 0.22
6749
6750         * configure.in: release 0.22
6751
6752 2004-08-11  Colin Walters  <walters@redhat.com>
6753
6754         * tools/dbus-send.c (main, usage): Add --reply-timeout
6755         argument.
6756
6757 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6758
6759         * bus/bus.c (process_config_first_time_only): get rid of an unused
6760         DBusError that was causing a memoy leak (bug #989).
6761
6762         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6763         fix compilation on Solaris/Forte C (bug #974)
6764
6765         * bus/main.c (main): plug two minuscule memleaks.
6766
6767 2004-08-10  Havoc Pennington  <hp@redhat.com>
6768
6769         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6770
6771 2004-08-09  Havoc Pennington  <hp@redhat.com>
6772
6773         * COPYING: switch to Academic Free License version 2.1 instead of
6774         2.0, to resolve complaints about patent termination clause.
6775
6776 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6777
6778         * README: added documentation for the --enable-python 
6779         configure switch.
6780
6781 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6782
6783         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6784         _unref in the SELinux support.
6785
6786         * doc/busconfig.dtd: update DTD for SELinux support.
6787
6788         * bus/config-loader-libxml.c: fix error handler and parser
6789         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6790
6791         * configure.in: remove the warning about libxml2.
6792
6793         * dbus/dbus-bus.c: silence doxygen warning.
6794
6795 2004-07-31  Colin Walters  <walters@redhat.com>
6796
6797         * configure.in: Move #error in SELinux check to its own line.
6798
6799 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6800
6801         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6802         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6803         dbus_error_set.
6804
6805         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6806         broken by the change in the _SET_OOM macros.
6807
6808 2004-07-31  Colin Walters  <walters@redhat.com>
6809
6810         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6811         BUS_SET_OOM.
6812
6813 2004-07-31  Colin Walters  <walters@redhat.com>
6814
6815         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6816         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6817         AC_MSG_CHECKING.
6818
6819 2004-07-24  Havoc Pennington  <hp@redhat.com>
6820
6821         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6822
6823         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6824         functionality
6825
6826         * configure.in: add --enable-selinux
6827         
6828         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6829
6830         * bus/main.c (main): initialize and shut down selinux
6831
6832         * bus/connection.c: store SELinux ID on each connection, to avoid 
6833         repeated getting of the string context and converting it into 
6834         an ID
6835
6836         * bus/bus.c (bus_context_get_policy): new accessor, though it
6837         isn't used
6838         (bus_context_check_security_policy): check whether the security
6839         context of sender connection can send to the security context of
6840         recipient connection
6841
6842         * bus/config-parser.c: add parsing for <selinux> and <associate>
6843         
6844         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6845         implement dbus_connection_get_unix_fd()
6846
6847         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6848         function, used by the selinux stuff
6849         
6850 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6851
6852         * bus/config-loader-libxml.c: complete the implementation of
6853         libxml backend for config file loader. Doesn't work with full OOM
6854         test yet. 
6855         
6856         * configure.in: change error when selecting libxml into a warning.
6857         
6858         * test/data/invalid-config-files: add two non-well-formed XML
6859         files. 
6860         
6861         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6862         
6863         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6864         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6865         be necessary to read all the buffer. (bug #894)
6866
6867         * bus/activation.c (bus_activation_activate_service): fix a
6868         potential assertion failure (bug #896). Small optimization in the
6869         case of auto-activation messages.
6870
6871         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6872         add test case for byte-through-vararg bug (#901). patch by Kimmo
6873         Hämäläinen. 
6874
6875 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6876
6877         * python/dbus.py:
6878         * python/dbus_bindings.pyx.in:
6879         Add dbus.init_gthreads (), allow emit_signal to pass
6880         arguments to the signal.
6881         
6882 2004-07-24  Havoc Pennington  <hp@redhat.com>
6883
6884         * AUTHORS: add some people, not really comprehensively, let me
6885         know if I missed you
6886
6887 2004-07-24  Havoc Pennington  <hp@redhat.com>
6888
6889         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6890         Owen
6891
6892         * test/Makefile.am (DIST_SUBDIRS): here also
6893
6894 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6895
6896         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6897         breaking build on Solaris, reported by Farhad Saberi on the ML.
6898
6899         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6900         va_arg invocation to account for integer promotion in the case of
6901         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6902
6903         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6904         _dbus_list_get_first_link, not _dbus_list_get_first.
6905
6906         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6907
6908         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6909         handler functions so that the asserts in _dbus_object_subtree_unref
6910         do not fail.
6911
6912         * dbus/dbus-transport-unix.c (do_reading):
6913         _dbus_transport_queue_messages return value is of type
6914         dbus_bool_t, not DBusDispatchStatus.
6915         
6916 2004-07-19  David Zeuthen  <david@fubar.dk>
6917
6918         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6919
6920         * bus/dispatch.c:
6921         (check_get_connection_unix_user): Debug says GetProperty; but the
6922         method is called GetConnectionUnixUser
6923         (check_get_connection_unix_process_id): New function
6924         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6925         also call check_get_connection_unix_process_id()
6926         
6927         * bus/driver.c:
6928         (bus_driver_handle_get_connection_unix_process_id): New function,
6929         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6930         interface
6931         
6932         * dbus/dbus-auth.c:
6933         (handle_server_data_external_mech): Set pid from the credentials
6934         obtained from the socket
6935         
6936         * dbus/dbus-connection.c:
6937         (dbus_connection_get_unix_process_id): New function
6938         
6939         * dbus/dbus-connection.h: 
6940         Add prototype for dbus_connection_get_unix_process_id
6941         
6942         * dbus/dbus-transport.c:
6943         (_dbus_transport_get_unix_process_id): New function
6944         
6945         * dbus/dbus-transport.h:
6946         Add prototype for _dbus_transport_get_unix_process_id
6947         
6948 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6949
6950         * dbus/dbus-message.c: Message counter fix, patch by Christian
6951         Hammond <chipx86@gnupdate.org>
6952
6953 2004-07-18  Seth Nickell  <seth@gnome.org>
6954
6955         * python/dbus.py:
6956         * python/dbus_bindings.pyx.in:
6957         * python/tests/test-client.py:
6958
6959         Add dbus.ByteArray and dbus_bindings.ByteArray
6960         types so that byte streams can be passed back.
6961
6962         Give jdahlin the heaps of credit that are so
6963         rightfully his.
6964         
6965 2004-07-12  Seth Nickell  <seth@gnome.org>
6966
6967         * python/dbus.py:
6968
6969         Add message argument to the default object_method_handler
6970         function.
6971         
6972         * python/dbus_bindings.pyx.in:
6973
6974         Automatically return NIL when passed an empty list
6975         (we can't pass back a list since lists are typed
6976         and we don't have any idea what type the the client
6977         intended the list to be... :-( )
6978         
6979 2004-07-10  Seth Nickell  <seth@gnome.org>
6980
6981         * python/examples/Makefile.am:
6982
6983         Fix distcheck breakage caused by new examples.
6984
6985 2004-07-10  Seth Nickell  <seth@gnome.org>
6986
6987         * python/dbus.py:
6988
6989         Add "message" argument to service-side dbus.Object
6990         methods. This will break existing services written
6991         using the python bindings, but will allow extraction
6992         of all the message information (e.g. who its from).
6993
6994         Add improved "object oriented" signal handling/emission.
6995         
6996         * python/examples/example-service.py:
6997
6998         Nix this example.
6999         
7000         * python/examples/example-signal-emitter.py:
7001         * python/examples/example-signal-recipient.py:
7002
7003         Two new examples that show how to emit and receive
7004         signals using the new APIs.
7005         
7006         * python/examples/example-signals.py:
7007         * python/examples/gconf-proxy-service.py:
7008         * python/examples/gconf-proxy-service2.py:
7009
7010         Add "message" argument to service methods.
7011
7012 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7013
7014         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7015         * dbus/bus.c (dbus_bus_get_unix_user)
7016         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7017         method of org.freedesktop.DBus interface.
7018
7019         * bus/dispatch.c: test case
7020
7021 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7022
7023         * python/Makefile.am: switched include directory from glib/ to dbus/
7024         since dbus-glib.h moved
7025  
7026 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7027
7028         * configure.in: prevent building the gcj stuff and libxml loader
7029         since they are broken.
7030
7031 2004-06-20  Havoc Pennington  <hp@redhat.com>
7032
7033         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7034         codes from the dbus error names
7035         
7036         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7037         as dbus/dbus-glib.h and that breakage is now visible due to 
7038         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7039         
7040         * glib/dbus-glib.h: s/gproxy/g_proxy/
7041
7042         * dbus/dbus-shared.h: new header to hold stuff shared with
7043         binding APIs
7044         
7045         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7046         than dbus-errors.h
7047
7048         * glib/dbus-glib.h (dbus_set_g_error): move to
7049         dbus-glib-lowlevel.h
7050
7051         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7052         of stuff to enable this
7053
7054         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7055
7056         * a bunch of other changes with the same basic "separate glib 
7057         bindings from dbus.h" theme
7058         
7059 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7060
7061         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7062
7063         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7064
7065 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7066
7067         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7068         the reply value of the ServiceExists message.
7069
7070 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7071
7072         * python/dbus_bindings.pyx.in: No longer need to parse path
7073         elements and pass them as arrays of strings.  The C API now
7074         accepts plain path strings.
7075         (_build_parsed_path): removed 
7076
7077 2004-06-07  Havoc Pennington  <hp@redhat.com>
7078
7079         * doc/TODO: remove auto-activation item since it's done; sort
7080         items by importance/milestone
7081
7082 2004-06-07  Havoc Pennington  <hp@redhat.com>
7083
7084         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7085         random signature when using REQUIRED_FIELDS (this hack won't work
7086         in the long term)
7087
7088         * dbus/dbus-message.c: change the signature to be a header field,
7089         instead of message->signature special-case string. Incremental
7090         step forward. Then we can fix up code to send the signature in the
7091         message, then fix up code to validate said signature, then fix up
7092         code to not put the typecodes inline, etc.
7093         (load_one_message): don't make up the signature after the fact
7094         (decode_header_data): require signature field for the known
7095         message types
7096
7097         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7098
7099         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7100
7101 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7102
7103         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7104
7105         * mono/Handler.cs: Updated to follow new path argument for
7106         (un-)registering objects.
7107
7108         * mono/example/Makefile.am:
7109         * mono/Makefile.am:
7110         * configure.in: Bumped required version for mono and use new -pkg
7111         syntax for deps
7112
7113 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7114
7115         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7116         registration functions take the path argument as char* instead of
7117         char**.
7118
7119         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7120         split off the path decompostion part of
7121         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7122         warnings. 
7123
7124         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7125         
7126 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7127  
7128         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7129         machine approach.  A state is implemented as a function that
7130         handles incoming events as specified for that state.
7131         
7132         * doc/dbus-specification.xml: Update auth protocol state machine
7133         specification to match implementation.  Remove some leftover
7134         base64 examples.
7135
7136 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7137
7138         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7139         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7140         quiet doxygen.
7141
7142         * Doxyfile.in: remove deprecated options.
7143
7144         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7145         glib/test-thread.h, glib/test-thread-client.c,
7146         glib/test-thread-server.c, glib/test-profile.c,
7147         glib/test-dbus-glib.c: remove these unused files.
7148
7149 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7150
7151         * dbus/dbus-object-tree.c
7152         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7153         non-fallback handlers (bug #684).
7154         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7155         (find_subtree_recurse): report wether the returned subtree is an
7156         exact match or a "fallback" match higher up in the tree.
7157         (object_tree_test_iteration): update test case.
7158
7159 2004-06-01  Seth Nickell  <seth@gnome.org>
7160
7161         * python/dbus_bindings.pyx.in:
7162         * python/tests/test-client.py:
7163
7164         Round off basic type support. Add dicts (yay!), and 
7165         remaining array types.
7166
7167         Make MessageIter more general so it works for dicts too.
7168
7169         Mark all loop variables as C integers.
7170         
7171 2004-05-31  Havoc Pennington  <hp@redhat.com>
7172
7173         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7174         "in" before "out"
7175
7176         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7177
7178         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7179         option that runs the tests, and start filling in some code
7180         including for starters just dumping the interfaces to stdout
7181
7182         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7183
7184         * test/data/valid-introspection-files/lots-of-types.xml: test of
7185         an example introspection file
7186
7187         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7188         "node" (I think...)
7189
7190 2004-05-31  Seth Nickell  <seth@gnome.org>
7191
7192         * python/dbus_bindings.pyx.in:
7193         * python/tests/test-client.py:
7194
7195         Test Suite: 1
7196         Python Bindings: 0
7197
7198         Fix string array memory trashing bug... oops...
7199
7200 2004-05-30  Seth Nickell  <seth@gnome.org>
7201
7202         * python/dbus.py:
7203
7204         Add a nicer-but-less-flexible alternate API for handling 
7205         calls to virtual objects in dbus.ObjectTree.
7206
7207         Screw up the argument order to the dbus.Object constructor
7208         for consistency with dbus.ObjectTree (and to make dbus_methods
7209         optional for future extension)
7210         
7211         * python/examples/Makefile.am:
7212         * python/examples/gconf-proxy-service.py:
7213         * python/examples/gconf-proxy-service2.py:
7214
7215         Alternate implementation of gconf-proxy-service using the
7216         nicer dbus.ObjectTree API.
7217         
7218         * python/examples/example-service.py:
7219         * python/tests/test-server.py
7220
7221         Reverse the argument order to deal with dbus.Object constructor
7222         changes.
7223         
7224 2004-05-30  Seth Nickell  <seth@gnome.org>
7225
7226         * python/examples/example-client.py:
7227         * python/examples/example-service.py:
7228
7229         Take it back. Lists seem to work but they're broken
7230         in the test suite. Make the base examples use
7231         lists (works fine).
7232
7233 2004-05-30  Seth Nickell  <seth@gnome.org>
7234
7235         * python/dbus_bindings.pyx.in:
7236         * python/tests/test-client.py:
7237
7238         Add some more tests and fix errors that crop up.
7239         Unfortunately, currently it seems like marshalling
7240         and unmarshalling of lists is completely broken :-(
7241
7242 2004-05-30  Seth Nickell  <seth@gnome.org>
7243
7244         * python/dbus_bindings.pyx.in:
7245
7246         Add support for ObjectPath type.
7247
7248         * python/dbus.py:
7249
7250         Refactor message handling code to a common function.
7251         
7252         * python/tests/test-client.py:
7253         * python/tests/test-server.py:
7254
7255         Add tests that check to make sure values of all types
7256         can be echoed from a service w/o mangling.
7257         
7258 2004-05-29  Seth Nickell  <seth@gnome.org>
7259
7260         * python/dbus.py:
7261
7262         Add ObjectTree class which allows implementation
7263         of trees of "virtual" objects. Basically the python
7264         wrapper for "register_fallback".
7265         
7266         * python/examples/Makefile.am
7267         * python/examples/gconf-proxy-client.py:
7268         * python/examples/gconf-proxy-service.py:
7269
7270         Implement a simple GConf proxy service that supports
7271         get/set on string and int GConf keys using the ObjectTree.
7272         
7273 2004-05-29  Seth Nickell  <seth@gnome.org>
7274
7275         * python/dbus.py:
7276         * python/examples/example-client.py:
7277         * python/examples/example-service.py:
7278         * python/examples/list-system-services.py:
7279
7280         Add SessionBus, SystemBus and ActivationBus classes
7281         so you don't need to know the special little BUS_TYPE
7282         flag.
7283         
7284 2004-05-29  Havoc Pennington  <hp@redhat.com>
7285
7286         * bus/config-parser.c (process_test_valid_subdir): temporarily
7287         stop testing config parser OOM handling, since expat has issues
7288         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7289
7290         * bus/dbus-daemon-1.1.in: change requested_reply to
7291         send_requested_reply/receive_requested_reply so we can send the
7292         replies, not just receive them.
7293
7294         * bus/config-parser.c: parse the new
7295         send_requested_reply/receive_requested_reply
7296
7297         * bus/policy.c (bus_client_policy_check_can_send): add
7298         requested_reply argument and use it
7299
7300         * bus/bus.c (bus_context_check_security_policy): pass through
7301         requested_reply status to message send check
7302
7303         * bus/system.conf.in: adapt to requested_reply change
7304         
7305 2004-05-28  Havoc Pennington  <hp@redhat.com>
7306
7307         * test/glib/test-service-glib.c (main): remove unused variable
7308
7309         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7310
7311         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7312         from the enum, no longer in use.
7313
7314         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7315         works right.
7316
7317         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7318         whether error_name passed in is a valid error name.
7319
7320 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7321
7322         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7323         OBJECT_PATH and OBJECT_PATH_ARRAY
7324
7325 2004-05-28  Seth Nickell  <seth@gnome.org>
7326
7327         * python/examples/Makefile.am:
7328
7329         Forget to add Makefile.am. Do not pass go.
7330
7331 2004-05-28  Michael Meeks  <michael@ximian.com>
7332
7333         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7334         fix no int64 case.
7335
7336         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7337
7338         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7339         (_dbus_message_iter_get_basic_type_array): impl.
7340         drastically simplify ~all relevant _get methods to use these.
7341         (_dbus_message_iter_append_basic_array),
7342         (dbus_message_iter_append_basic): impl
7343         drastically simplify ~all relevant _append methods to use these.
7344
7345         * dbus/dbus-message-builder.c (parse_basic_type) 
7346         (parse_basic_array, lookup_basic_type): impl.
7347         (_dbus_message_data_load): prune scads of duplicate /
7348         cut & paste coding.
7349
7350         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7351         (_dbus_demarshal_basic_type): implement,
7352         (demarshal_and_validate_len/arg): beef up debug.
7353         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7354
7355 2004-05-27  Seth Nickell  <seth@gnome.org>
7356
7357         * configure.in:
7358         * python/Makefile.am:
7359
7360         Include the example python apps in the tarball.
7361         
7362         * python/examples/list-system-services.py
7363
7364         Add a python new example that fetches the list of services
7365         from the system bus.
7366         
7367 2004-05-27  Seth Nickell  <seth@gnome.org>
7368
7369         * python/dbus.py:
7370         * python/dbus_bindings.pyx.in:
7371
7372         Fix failure to notify that a signal was not handled,
7373         resulted in hung functions.
7374         
7375 2004-05-25  Colin Walters  <walters@redhat.com>
7376
7377         * tools/dbus-monitor.c (main): Monitor all types of messages.
7378
7379 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7380
7381         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7382         which unregisters the object path and disposes the handler.
7383
7384 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7385  
7386         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7387          
7388         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7389         operands to && so we call dbus_message_iter_next () for the last
7390         argument also.
7391
7392 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7393
7394         * dbus/dbus-object-tree.c
7395         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7396         children even if the requested path isn't registered.
7397         (object_tree_test_iteration): test object_tree_list_registered.
7398
7399         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7400         it to 0.
7401         
7402 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7403
7404         * doc/TODO: Remove resolved items.
7405
7406         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7407         field.
7408         
7409         * bus/connection.c (bus_connections_expect_reply): Enforce the
7410         per-connection limit on pending replies.
7411         
7412         Patch from Jon Trowbridge <trow@ximian.com>:
7413  
7414         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7415         up a watch that triggers a config reload when one end of the pipe
7416         becomes readable.
7417         (signal_handler): Instead of doing the config reload in our SIGHUP
7418         handler, just write to the reload pipe and let the associated
7419         watch handle the reload when control returns to the main loop.
7420  
7421         * bus/driver.c (bus_driver_handle_reload_config): Added.
7422         Implements a ReloadConfig method for requesting a configuration
7423         file reload via the bus driver.
7424  
7425 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7426
7427         * HACKING: Updated release instructions concerning the wiki page.
7428
7429 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7430
7431         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7432         filter against auth->allowed_mechs; we only add allowed mechs in
7433         record_mechanisms().
7434  
7435         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7436         ALLOWED_MECHS to auth-script format so we can set the list of
7437         allowed mechanisms.
7438  
7439         * data/auth/client-out-of-mechanisms.auth-script: New test to
7440         check client disconnects when it is out of mechanisms to try.
7441  
7442         * dbus/dbus-auth.c (process_command): Remove check for lines
7443         longer that 1 MB; we only buffer up maximum 16 kB.
7444  
7445         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7446         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7447         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7448         assume there might be unused bytes.
7449  
7450         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7451         client-out-of-mechs, it is handled in process_reject(). Move check
7452         for max failures to send_rejected(), as it's a server-only thing.
7453
7454         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7455         send_auth(), send_data(), send_rejected(), send_error(),
7456         send_ok(), send_begin() and send_cancel().
7457
7458 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7459
7460         Remove base64 encoding, replace with hex encoding. Original patch
7461         from trow@ximian.com, added error handling.
7462
7463         * dbus/dbus-string.c (_dbus_string_base64_encode)
7464         (_dbus_string_base64_decode): Remove.
7465         (_dbus_string_hex_decode): Add end_return argument so we can
7466         distinguish between OOM and invalid hex encoding.
7467         (_dbus_string_test): Remove base64 tests and add test case for
7468         invalid hex.
7469
7470         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7471         Replace base64 with hex.
7472
7473         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7474         for invalid hex encoded data in auth protocol.
7475
7476 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7477
7478         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7479         leak.
7480
7481 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7482
7483         * mono/dbus-sharp.dll.config.in: Added for GAC
7484         * mono/dbus-sharp.snk: Added for GAC
7485         * mono/Assembly.cs.in: Added for GAC
7486         * mono/Makefile.am: Changes for GAC installation        
7487         * configure.in: Added refs for dbus-sharp.dll.config.in and
7488         Assembly.cs.in. More fixes for mono testing
7489         * mono/example/Makefile.am: Changed var to CSC
7490         * Makefile.am: Changed flag name to DBUS_USE_CSC
7491
7492 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7493
7494         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7495         * mono/doc/*: Added documentation framework
7496         * configure.in: Added monodoc check
7497         * README: Added description of mono configure flags
7498
7499 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7500
7501         * doc/dbus-specification.xml: Added a "Required" column to the 
7502         header fields table and changed the "zero or more" verbage in
7503         the above paragraph to read "The header must contain the required 
7504         named header fields and zero or more of the optional named header 
7505         fields".
7506         * test/data/invalid-messages/*.message: Added the required PATH 
7507         named header field to the tests so that they don't fail on 
7508         'Missing path field'
7509
7510 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7511
7512         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7513         the stack by implicitly defining variable and parameter types and
7514         removing the hack of defining C pointers as python objects and later
7515         casting them.
7516
7517 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7518
7519         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7520
7521 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7522
7523         * mono/DBusType/Dict.cs: Handle empty dicts
7524         * mono/DBusType/Array.cs: Handle empty arrays
7525         * mono/Arguments.cs: Handle empty arguments
7526
7527 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7528
7529         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7530         field
7531
7532 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7533
7534         * test/data/valid-messages/standard-*.message: Update message
7535         test scripts to new header field names.
7536
7537 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7538
7539         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7540         overflow to times_we_did_each_thing array which would chop off the
7541         first character of the failure_dir string. Increased the size of
7542         the array to 7 to reflect the number of random mutation functions
7543         we have.
7544
7545 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7546
7547         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7548         unix_server->watch here, it is unreffed in disconnect.
7549         (_dbus_server_new_for_tcp_socket): convert NULL host to
7550         "localhost" here so we don't append NULL to address.
7551         
7552         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7553         various addresses, including tcp with no explicit host.
7554
7555 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7556
7557         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7558         fix incorrect setting of .name_offset in the HeaderField (it was
7559         off by two bytes, positioned right after the name and typecode)
7560
7561         * bus/bus.c (bus_context_new, bus_context_unref): test before
7562         calling dbus_server_free_data_slot and _dbus_user_database_unref
7563         in case of an error.
7564
7565         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7566         by libdbus-gtool.
7567
7568 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7569
7570         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7571         _dbus_poll() instead of select().
7572
7573 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7574
7575         * bus/main.c (signal_handler): Reload the configuration files
7576         on SIGHUP.
7577         (main): Set up our SIGHUP handler.
7578
7579         * bus/bus.c (struct BusContext): Store the config file, user and
7580         fork flag in the BusContext.
7581         (process_config_first_time_only): Added.  Contains the code
7582         (previously in bus_context_new) for setting up the BusContext from
7583         the BusConfigParser that should only be run the first time the
7584         config files are read.
7585         (process_config_every_time): Added.  Contains the code (previously
7586         in bus_context_new) for setting up the BusContext from the
7587         BusConfigParser that should be run every time the config files are
7588         read.
7589         (load_config): Added.  Builds a BusConfigParser from the config
7590         files and passes the resulting structure off to
7591         process_config_first_time_only (assuming this is the first time)
7592         and process_config_every_time.
7593         (bus_context_new): All of the config-related code has been moved
7594         to process_config_first_time_only and process_config_every_time.
7595         Now this function just does the non-config-related initializations
7596         and calls load_config.
7597         (bus_context_reload_config): Added.
7598
7599 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7600
7601         * bus/driver.c (bus_driver_handle_get_service_owner):
7602         implement a GetServiceOwner method.
7603         * doc/dbus-specification.xml: document it.
7604         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7605         
7606         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7607         implement, using the bus GetServiceOwner method.
7608
7609         * test/glib/test-dbus-glib.c:
7610         use dbus_gproxy_new_for_service_owner so that we can receive the
7611         signal. 
7612
7613 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7614
7615         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7616         dbus/dbus-message.c, dbus/dbus-protocol.h
7617         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7618
7619         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7620         dbus/dbus-message.c, dbus/dbus-protocol.h
7621         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7622
7623         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7624         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7625         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7626
7627         * doc/dbus-specification.xml (Header Fields Table):
7628         s/SERVICE/DESTINATION
7629         s/SENDER_SERVICE/SENDER
7630
7631
7632 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7633
7634         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7635         a few seconds.
7636
7637 2004-04-13  Michael Meeks  <michael@ximian.com>
7638
7639         * glib/dbus-gobject.c (handle_introspect): split out
7640         (introspect_properties): this.
7641         (handle_introspect): implement this.
7642
7643         * test/glib/Makefile.am: use the absolute path so the bus
7644         daemon's chdir ("/") doesn't kill us dead.
7645
7646         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7647
7648 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7649
7650         * bus/config-parser.c (struct BusConfigParser): Added
7651         included_files field.
7652         (seen_include): Added.  Checks whether or not a file has already
7653         been included by any parent BusConfigParser.
7654         (bus_config_parser_new): Copy the parent's included_files.
7655         (include_file): Track which files have been included, and fail on
7656         circular inclusions.
7657         (process_test_valid_subdir): Changed printf to report if we are
7658         testing valid or invalid conf files.
7659         (all_are_equiv): Changed printf to be a bit clearer about
7660         what we are actually doing.
7661         (bus_config_parser_test): Test invalid configuration files.
7662
7663 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7664
7665         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7666         argument.  If non-null, the newly-constructed BusConfigParser will
7667         be initialized with the parent's BusLimits instead of the default
7668         values.
7669         (include_file): When including a config file, pass in
7670         the current parser as the parent and then copy the BusLimits
7671         from the included BusConfigParser pack to the current parser.
7672         (process_test_valid_subdir): Renamed from process_test_subdir.
7673         (process_test_equiv_subdir): Added.  Walks through a directory,
7674         descending into each subdirectory and loading the config files
7675         it finds there.  If any subdirectory contains two config files
7676         that don't produce identical BusConfigParser structs, fail.
7677         For now, the BusConfigParser's BusPolicies are not compared.
7678         (bus_config_parser_test): Call both process_test_valid_subdir and
7679         process_test_equiv_subdir.
7680
7681         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7682         argument and pass it along to the call to bus_config_parser_new.
7683         Also made a few small changes to allow this code to compile.
7684
7685         * bus/config-loader-expat.c (bus_config_load): Take a parent
7686         argument and pass it along to the call to bus_config_parser_new.
7687
7688         * bus/bus.c (bus_context_new): Load the config file
7689         with a NULL parent argument.
7690
7691 2004-03-29  Michael Meeks  <michael@ximian.com>
7692
7693         * glib/dbus-gobject.c (introspect_properties): split
7694         out, fix mangled 'while' flow control.
7695         (introspect_signals): implement.
7696         (handle_introspect): update.
7697
7698 2004-03-29  Michael Meeks  <michael@ximian.com>
7699
7700         * glib/dbus-gobject.c (set_object_property): split out / 
7701         re-work, use the property type, and not the message type(!)
7702         (get_object_property): ditto.
7703
7704         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7705         (dbus_gvalue_marshal): make this code re-usable, needed
7706         for signals too, also on both proxy and server side.
7707         Re-write for more efficiency / readability.
7708
7709 2004-03-29  Michael Meeks  <michael@ximian.com>
7710
7711         * dbus/dbus-message.c
7712         (dbus_message_new_error_printf): impl.
7713
7714         * dbus/dbus-connection.c
7715         (dbus_connection_unregister_object_path): fix warning.
7716
7717         * configure.in: fix no-mono-installed situation.
7718
7719 2004-03-27  Havoc Pennington  <hp@redhat.com>
7720
7721         Patch from Timo Teräs:
7722         
7723         * tools/dbus-send.c (main): if --print-reply, assume type is
7724         method call; support boolean type args
7725         
7726         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7727         bunch of memleak and logic bugs
7728         
7729 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7730
7731         * mono/Arguments.cs:
7732         * mono/Introspector.cs:
7733         * mono/Handler.cs:
7734         * mono/InterfaceProxy.cs:
7735         * mono/Message.cs
7736         * mono/ProxyBuilder.cs:
7737         * mono/Service.cs:
7738         Added InterfaceProxy class to avoid building proxies for every
7739         object.
7740
7741         * dbus-message.h:
7742         * dbus-message.c (dbus_message_append_args_valist)
7743         (dbus_message_iter_get_object_path)
7744         (dbus_message_iter_get_object_path_array)
7745         (dbus_message_iter_append_object_path)
7746         (dbus_message_iter_append_object_path_array):
7747         Added object_path iter functions to handle OBJECT_PATH arguments
7748         
7749 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7750
7751         First checkin of mono bindings.
7752         * configure.in:
7753         * Makefile.am:
7754         Build stuff for the bindings
7755         * dbus-sharp.pc.in: Added for pkgconfig
7756         
7757 2004-03-21  Havoc Pennington  <hp@redhat.com>
7758
7759         * test/test-service.c (main): remove debug spew
7760
7761 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7762
7763         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7764         arrays
7765
7766         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7767         (dbus_message_iter_init_array_iterator)
7768         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7769         indicate whether the iterator is empty
7770
7771         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7772         warnings
7773
7774 2004-03-19  Havoc Pennington  <hp@redhat.com>
7775
7776         * NEWS: 0.21 updates
7777
7778         * configure.in: 0.21
7779
7780         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7781         
7782         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7783         you don't need pyrex to make dist
7784
7785         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7786         sources; run moc
7787         
7788 2004-03-18  Richard Hult  <richard@imendio.com>
7789
7790         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7791         (dbus_message_set_auto_activation): Add doxygen docs.
7792
7793 2004-03-16  Richard Hult  <richard@imendio.com>
7794
7795         * bus/activation.c: (bus_activation_service_created),
7796         (bus_activation_send_pending_auto_activation_messages),
7797         (bus_activation_activate_service):
7798         * bus/activation.h:
7799         * bus/dispatch.c: (bus_dispatch),
7800         (check_nonexistent_service_auto_activation),
7801         (check_service_auto_activated),
7802         (check_segfault_service_auto_activation),
7803         (check_existent_service_auto_activation), (bus_dispatch_test):
7804         * bus/driver.c: (bus_driver_handle_activate_service):
7805         * bus/services.c: (bus_registry_acquire_service):
7806         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7807         (dbus_message_get_auto_activation):
7808         * dbus/dbus-message.h:
7809         * dbus/dbus-protocol.h: Implement auto-activation.
7810         
7811         * doc/dbus-specification.xml: Add auto-activation to the spec.
7812
7813 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7814
7815         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7816         fix a bug with CUSTOM types.
7817
7818         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7819         a unit test for this bug (used to fail).
7820
7821 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7822
7823         * bus/activation.c:
7824         (babysitter_watch_callback): notify all pending activations waiting for
7825           the same exec that the activation failed.
7826         (bus_activation_activate_service): shortcut the activation if we 
7827           already waiting for the same executable to start up.
7828
7829 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7830
7831         * bus/activation.c: 
7832         - Added service file reloading. 
7833           Each service files directory is kept in an hash table in 
7834           BusActivation and each BusActivationEntry knows what .service-file it
7835           was read from. So when you try to activate a service the bus will 
7836           check if it's been updated, removed or if new .service-files has 
7837           been installed.
7838         - Test code at the bottom for the service file reloading.
7839         * bus/test-main.c: (main):
7840         * bus/test.h:
7841         - added service reloading test.
7842         * dbus/dbus-sysdeps.c: 
7843         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7844
7845 2004-03-08  Michael Meeks  <michael@ximian.com>
7846
7847         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7848         bail immediately if disconnected, to avoid busy loop.
7849
7850         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7851         cleanup cut/paste/inefficiency.
7852
7853 2004-03-01  David Zeuthen  <david@fubar.dk>
7854
7855         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7856         bug where args were used twice. This bug resulted in a segfault
7857         on a Debian/PPC system when starting the messagebus daemon. Include
7858         dbus-sysdeps.h for DBUS_VA_COPY
7859
7860         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7861
7862         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7863         appropriate va_copy implementation. From GLib
7864         
7865 2004-02-24  Joe Shaw  <joe@ximian.com>
7866
7867         * bus/services.c (bus_registry_acquire_service): We need to pass
7868         in the service name to dbus_set_error() to prevent a crash.
7869
7870 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7871
7872         * AUTHORS: Reveal my True identity.
7873
7874 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7875
7876         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7877         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7878
7879 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7880
7881         * doc/TODO: Added not about better error check of configuration files.
7882
7883 2003-12-02  Richard Hult  <richard@imendio.com>
7884
7885         * Update AFL version to 2.0 throughout the source files to reflect
7886         the update that was done a while ago.
7887
7888 2003-12-02  Richard Hult  <richard@imendio.com>
7889
7890         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7891         wrote_dict_key to FALSE on the iter that the dict is appended to,
7892         just like when appending other types. Fixes a bug where a dict
7893         couldn't be put inside a dict.
7894         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7895         (message_iter_test, _dbus_message_test): Add test case for dict
7896         inside dict.
7897
7898 2003-12-01  David Zeuthen  <david@fubar.dk>
7899
7900         * python/dbus.py: Add the actual message when calling the reciever
7901         of a signal such that parameters can be inspected. Add the method
7902         remove_signal_receiver
7903         
7904 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7905
7906         * bus/*.[ch]:
7907         * dbus/*.[ch]:
7908         * glib/*.[ch]: Made ref functions return the pointer
7909
7910 2003-11-25  Zack Rusin  <zack@kde.org>
7911
7912         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7913
7914         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7915         wrappers,
7916
7917         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7918         the Integrator and to better fit with the server,
7919
7920 2003-11-24  Zack Rusin  <zack@kde.org>
7921
7922         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7923         the integrator handles it now
7924
7925         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7926         since QTimer wasn't really meant to be used the way DBusTimeout is
7927
7928 2003-11-24  Zack Rusin  <zack@kde.org>
7929
7930         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7931         Integrator class which integrates D-BUS with the Qt event loop,
7932
7933         * qt/connection.h, qt/connection.cpp: Move all the code which
7934         was dealing with D-BUS integration to the Integrator class,
7935         and start using Integrator,
7936
7937 2003-11-23  Zack Rusin  <zack@kde.org>
7938
7939         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7940         wrapper
7941
7942         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7943         switching namespaces to DBusQt, reworking the class,
7944
7945         * Makefile.cvs: switching dependencies so that it matches KDE 
7946         schematics,
7947         
7948         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7949         the library
7950
7951 2003-11-19  Havoc Pennington  <hp@redhat.com>
7952
7953         * NEWS: update
7954
7955         * configure.in: bump version to 0.20
7956
7957         * configure.in (have_qt): add yet another place to look for qt
7958         (someone hand trolltech a .pc file...)
7959
7960 2003-11-01  Havoc Pennington  <hp@redhat.com>
7961
7962         * doc/dbus-specification.xml: add state machine docs on the auth
7963         protocol; just a first draft, I'm sure it's wrong.      
7964
7965 2003-10-28  David Zeuthen  <david@fubar.dk>
7966
7967         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7968         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7969         
7970 2003-10-28  Havoc Pennington  <hp@redhat.com>
7971
7972         * dbus/dbus-message.c (get_next_field): delete unused function
7973
7974 2003-10-28  Havoc Pennington  <hp@redhat.com>
7975
7976         * bus/expirelist.c (do_expiration_with_current_time): detect
7977         failure of the expire_func due to OOM
7978
7979         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7980
7981         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7982         NoReply error that's now created by the bus when the service exits
7983
7984 2003-10-28  Havoc Pennington  <hp@redhat.com>
7985
7986         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7987         tests for set_path, set_interface, set_member, etc.
7988
7989         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7990
7991         * dbus/dbus-message.c (set_string_field): always just delete and
7992         re-append the field; accept NULL for deletion
7993         (re_align_fields_recurse): reimplement
7994         
7995 2003-10-26  Havoc Pennington  <hp@redhat.com>
7996
7997         * dbus/dbus-connection.c: fix docs to properly describe the
7998         disconnected message
7999         (_dbus_connection_notify_disconnected): remove this function; 
8000         we can't synchronously add the disconnected message, we have to 
8001         do it after we've queued any remaining real messages
8002         (_dbus_connection_get_dispatch_status_unlocked): queue the
8003         disconnect message only if the transport has finished queueing all
8004         its real messages and is disconnected.
8005         (dbus_connection_disconnect): update the dispatch status here
8006
8007 2003-10-22  Havoc Pennington  <hp@redhat.com>
8008
8009         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8010
8011         * bus/connection.c (bus_transaction_send_from_driver): set the
8012         destination to the connection's base service
8013
8014 2003-10-20  Havoc Pennington  <hp@redhat.com>
8015
8016         hmm, make check is currently not passing.
8017         
8018         * doc/dbus-specification.xml: add requirement that custom type
8019         names follow the same rules as interface names.
8020
8021         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8022         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8023         'map'
8024
8025         * doc/dbus-specification.xml: update type codes to match
8026         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8027         CUSTOM. Add type OBJECT_PATH to the spec.
8028
8029 2003-10-17  Havoc Pennington  <hp@redhat.com>
8030
8031         * bus/driver.c (create_unique_client_name): use "." as separator
8032         in base service names instead of '-'
8033
8034         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8035         byte at the end of the string
8036
8037         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8038         optimization macros since string validation seems to be a slow
8039         point.
8040         
8041         * doc/dbus-specification.xml: restrict valid
8042         service/interface/member/error names. Add test suite code for the
8043         name validation.
8044
8045         * dbus/dbus-string.c: limit service/interface/member/error names 
8046         to [0-9][A-Z][a-z]_
8047
8048         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8049         format arg to verbose spew
8050
8051         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8052         memory, return instead of g_error
8053
8054         * test/test-service.c (path_message_func): support emitting a
8055         signal on request
8056
8057         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8058         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8059         assuming the activation bus was the session bus so that services
8060         started manually will still register.
8061         (init_connections_unlocked): fix so that in OOM situation we get
8062         the same semantics when retrying the function
8063         
8064         * test/test-service.c (main): change to use path registration, to
8065         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8066         than DBUS_BUS_SESSION
8067
8068 2003-10-16  Havoc Pennington  <hp@redhat.com>
8069
8070         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8071
8072         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8073         coverage of the tests
8074         (coverage-report.txt): don't move the .da and .bbg files around
8075
8076 2003-10-16  Havoc Pennington  <hp@redhat.com>
8077
8078         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8079         to put there
8080
8081 2003-10-16  Havoc Pennington  <hp@redhat.com>
8082
8083         * bus/connection.c (bus_pending_reply_expired): either cancel or
8084         execute, not both
8085         (bus_connections_check_reply): use unlink, not remove_link, as we
8086         don't want to free the link; fixes double free mess
8087
8088         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8089         where no reply was received
8090
8091         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8092         fix a refcount leak
8093
8094         * bus/signals.c (match_rule_matches): add special cases for the
8095         bus driver, so you can match on sender/destination for it.
8096
8097         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8098         DBUS_PRINT_BACKTRACE is set
8099
8100         * dbus/dbus-internals.c: add pid to assertion failure messages
8101
8102         * dbus/dbus-connection.c: add message type code to the debug spew
8103
8104         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8105         sender=foo not service=foo
8106
8107         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8108         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8109         DBUS_ACTIVATION_ADDRESS instead
8110
8111         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8112         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8113
8114         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8115         context struct
8116
8117         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8118         (dbus_message_iter_get_object_path_array): new function (half
8119         finished, disabled for the moment)
8120         
8121         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8122         DBUS_MESSAGE_TYPE_ERROR
8123
8124         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8125         avoid redirecting stderr to /dev/null
8126         (babysit): close stdin if not doing the "exit_with_session" thing
8127
8128         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8129         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8130         stdout/stdin, so things don't get confused
8131         
8132         * bus/system.conf.in: fix to allow replies, I modified .conf
8133         instead of .conf.in again.
8134
8135 2003-10-14  David Zeuthen  <david@fubar.dk>
8136
8137         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8138         argtype to arg_type when raising unknown arg type exception.
8139         Changed type list to reflect the changes in dbus-protocol.h so 
8140         the bindings actually work.
8141
8142 2003-10-14  Havoc Pennington  <hp@redhat.com>
8143
8144         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8145         to have a bug keeping it from outputting the .da files sometimes
8146         (string_get_string): don't append garbage nul bytes to the string.
8147
8148 2003-10-15  Seth Nickell  <seth@gnome.org>
8149
8150         * python/Makefile.am:
8151
8152         Include dbus_h_wrapper.h in the dist tarball.
8153
8154 2003-10-14  Havoc Pennington  <hp@redhat.com>
8155
8156         * bus/bus.c (bus_context_check_security_policy): revamp this to
8157         work more sanely with new policy-based requested reply setup
8158
8159         * bus/connection.c (bus_transaction_send_from_driver): set bus
8160         driver messages as no reply
8161
8162         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8163         requested_reply attribute on allow/deny rules
8164
8165         * bus/system.conf: add <allow requested_reply="true"/>
8166
8167         * bus/driver.c (bus_driver_handle_message): fix check for replies
8168         sent to the bus driver, which was backward. How did this ever work
8169         at all though? I think I'm missing something.
8170
8171         * dbus/dbus-message.c (decode_header_data): require error and
8172         method return messages to have a reply serial field to be valid
8173         (_dbus_message_loader_queue_messages): break up this function;
8174         validate that reply serial and plain serial are nonzero; 
8175         clean up the OOM/error handling.
8176         (get_uint_field): don't return -1 from this
8177         (dbus_message_create_header): fix signed/unsigned bug
8178
8179         * bus/connection.c (bus_connections_expect_reply): save serial of
8180         the incoming message, not reply serial
8181
8182 2003-10-14  Havoc Pennington  <hp@redhat.com>
8183
8184         * bus/connection.c: implement pending reply tracking using
8185         BusExpireList
8186
8187         * bus/bus.c (bus_context_check_security_policy): verify that a
8188         reply is pending in order to allow a reply to be sent. Deny 
8189         messages of unknown type.
8190
8191         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8192
8193         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8194         (bus_context_get_reply_timeout): new
8195
8196 2003-10-13  Seth Nickell  <seth@gnome.org>
8197
8198         * python/Makefile.am:
8199
8200         Pass "make distcheck": remove a couple files from DIST_FILES
8201         that weren't included in the final version.
8202
8203 2003-10-12  Havoc Pennington  <hp@pobox.com>
8204
8205         Added test code that 1) starts an actual bus daemon and 2) uses
8206         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8207         more testing possible, but this is the basic framework.
8208         
8209         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8210         empty proxy lists from the proxy list hash
8211
8212         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8213         couple of return_if_fail checks
8214
8215         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8216         to allocate, so everything is cleared to NULL as it should be.
8217
8218         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8219         source as data to dbus_connection_set_timeout_functions() as the 
8220         timeout functions expected
8221
8222         * test/glib/run-test.sh: add a little script to start up a message
8223         bus and run tests using it
8224
8225         * tools/dbus-launch.1: updates
8226
8227         * tools/dbus-launch.c (main): add --config-file option
8228
8229         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8230         that could never be reached.
8231
8232         * dbus/dbus-message.c (dbus_message_new_method_return) 
8233         (dbus_message_new_error, dbus_message_new_signal): set the
8234         no-reply-expected flag on all these. Redundant, but may
8235         as well be consistent.
8236
8237 2003-10-11  Havoc Pennington  <hp@pobox.com>
8238
8239         * test/decode-gcov.c (function_solve_graph): make broken block
8240         graph a nonfatal error since it seems to be broken. Need to debug
8241         this.
8242
8243         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8244         can't just check type > INVALID < LAST anymore
8245
8246         * dbus/dbus-message.c (dbus_message_get_signature): new function
8247         (dbus_message_has_signature): new function
8248         (struct DBusMessage): add signature field (right now it isn't sent
8249         over the wire, just generated on the fly)
8250         (dbus_message_copy): copy the signature, and init strings to
8251         proper length to avoid some reallocs
8252         (dbus_message_iter_init_array_iterator): return void, since it
8253         can't fail
8254         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8255         (_dbus_message_loader_queue_messages): add silly temporary hack to
8256         fill in message->signature on load
8257
8258         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8259         characters, so they are relatively human-readable.
8260
8261 2003-10-11  Havoc Pennington  <hp@pobox.com>
8262
8263         * dbus/dbus-message.c (_dbus_message_test): add more test
8264         coverage, but #if 0 for now since they uncover a bug 
8265         not fixed yet; I think in re_align_field_recurse()
8266         (re_align_field_recurse): add FIXME about broken assertion
8267
8268         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8269
8270         * bus/connection.c: share a couple code bits with expirelist.c
8271
8272         * bus/expirelist.h, bus/expirelist.c: implement a generic
8273         expire-items-after-N-seconds facility, was going to share between
8274         expiring connections and replies, decided not to use for expiring
8275         connections for now.
8276
8277         * COPYING: include AFL 2.0 (still need to change all the file headers)
8278
8279 2003-10-09  Havoc Pennington  <hp@redhat.com>
8280
8281         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8282         gcc 3.3. Not that we do anything about it yet.
8283
8284         * bus/signals.c (bus_match_rule_parse): impose max length on the
8285         match rule text
8286
8287         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8288
8289 2003-10-09  Havoc Pennington  <hp@redhat.com>
8290
8291         Make matching rules theoretically work (add parser).
8292         
8293         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8294         the case where destination is explicitly specified as bus driver
8295         and someone else is eavesdropping.
8296         
8297         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8298         definition of eavesdropping and assertion
8299
8300         * tools/dbus-send.c (main): use dbus_message_type_from_string
8301
8302         * bus/signals.c (bus_match_rule_parse): implement
8303
8304         * dbus/dbus-message.c (dbus_message_type_from_string): new
8305
8306         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8307
8308 2003-10-02  Havoc Pennington  <hp@pobox.com>
8309
8310         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8311         dbus_gproxy_oneway_call
8312
8313         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8314         (dbus_server_setup_with_g_main): fix to allow calling them more
8315         than once on the same args
8316         (dbus_bus_get_with_g_main): new function
8317
8318 2003-10-02  Havoc Pennington  <hp@redhat.com>
8319
8320         * doc/dbus-tutorial.xml: write some stuff
8321
8322 2003-09-29  Havoc Pennington  <hp@pobox.com>
8323
8324         * configure.in: split checks for Doxygen from XML docs, check for
8325         xmlto
8326
8327         * doc/Makefile.am: XML-ify all the docs, and add a blank
8328         dbus-tutorial.xml
8329
8330 2003-09-29  Havoc Pennington  <hp@pobox.com>
8331
8332         * Merge dbus-object-names branch. To see the entire patch 
8333         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8334         it's huuuuge though.
8335         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8336         
8337 2003-09-28  Havoc Pennington  <hp@pobox.com>
8338
8339         * HACKING: update to reflect new server
8340
8341 2003-09-26  Seth Nickell  <seth@gnome.org>
8342
8343         * python/dbus.py:
8344         * python/examples/example-signals.py:
8345
8346         Start implementing some notions of signals. The API
8347         is really terrible, but they sort of work (with the
8348         exception of being able to filter by service, and to
8349         transmit signals *as* a particular service). Need to
8350         figure out how to make messages come from the service
8351         we registered :-(
8352         
8353         * python/dbus_bindings.pyx.in:
8354
8355         Removed duplicate message_handler callbacks.
8356         
8357 2003-09-25  Havoc Pennington  <hp@redhat.com>
8358
8359         * bus/session.conf.in: fix my mess
8360
8361 2003-09-25  Havoc Pennington  <hp@pobox.com>
8362
8363         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8364
8365 2003-09-25  Seth Nickell  <seth@gnome.org>
8366
8367         * python/examples/example-service.py:
8368
8369         Johan notices complete wrong code in example-service, but
8370         completely wrong in a way that works exactly the same (!).
8371         Johan is confused, how could this possibly work? Example
8372         code fails to serve purpose of making things clear.
8373         Seth fixes.
8374
8375 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8376
8377         * doc/dbus-specification.sgml: don't require header fields
8378         to be 4-byte aligned and specify that fields should be
8379         distinguished from padding by the fact that zero is not
8380         a valid field name.
8381         
8382         * doc/TODO: remove re-alignment item and add item to doc
8383         the OBJECT_PATH type.
8384         
8385         * dbus/dbus-message.c:
8386         (HeaderField): rename the original member to value_offset
8387         and introduce a name_offset member to keep track of where
8388         the field actually begins.
8389         (adjust_field_offsets): remove.
8390         (append_int_field), (append_uint_field),
8391         (append_string_field): don't align the start of the header
8392         field to a 4-byte boundary.
8393         (get_next_field): impl finding the next marhsalled field
8394         after a given field.
8395         (re_align_field_recurse): impl re-aligning a number of
8396         already marshalled fields.
8397         (delete_field): impl deleting a field of any type and
8398         re-aligning any following fields.
8399         (delete_int_or_uint_field), (delete_string_field): remove.
8400         (set_int_field), (set_uint_field): no need to re-check
8401         that we have the correct type for the field.
8402         (set_string_field): ditto and impl re-aligning any
8403         following fields.
8404         (decode_header_data): update to take into account that
8405         the fields aren't 4-byte aligned any more and the new
8406         way to distinguish padding from header fields. Also,
8407         don't exit when there is too much header padding.
8408         (process_test_subdir): print the directory.
8409         (_dbus_message_test): add test to make sure a following
8410         field is re-aligned correctly after field deletion.
8411         
8412         * dbus/dbus-string.[ch]:
8413         (_dbus_string_insert_bytes): rename from insert_byte and
8414         allow the insert of multiple bytes.
8415         (_dbus_string_test): test inserting multiple bytes.
8416
8417         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8418         warning note to docs about having to re-align any
8419         marshalled values following the string.
8420         
8421         * dbus/dbus-message-builder.c:
8422         (append_string_field), (_dbus_message_data_load):
8423         don't align the header field.
8424         
8425         * dbus/dbus-auth.c: (process_test_subdir): print the
8426         directory.
8427         
8428         * test/break-loader.c: (randomly_add_one_byte): upd. for
8429         insert_byte change.
8430         
8431         * test/data/invalid-messages/bad-header-field-alignment.message:
8432         new test case.
8433         
8434         * test/data/valid-messages/unknown-header-field.message: shove
8435         a dict in the unknown field.
8436
8437 2003-09-25  Seth Nickell  <seth@gnome.org>
8438
8439         * python/dbus.py:
8440         * python/dbus_bindings.pyx.in:
8441
8442         Handle return values.
8443         
8444         * python/examples/example-client.py:
8445         * python/examples/example-service.py:
8446
8447         Pass back return values from the service to the client.
8448         
8449 2003-09-24  Seth Nickell  <seth@gnome.org>
8450
8451         * python/dbus.py:
8452
8453         Connect Object methods (when you are sharing an object) up... pass
8454         in a list of methods to be shared. Sharing all the methods just
8455         worked out too weird. You can now create nice Services over the
8456         DBus in Python. :-)
8457         
8458         * python/dbus_bindings.pyx.in:
8459
8460         Keep references to user_data tuples passed into C functions so 
8461         Python doesn't garbage collect on us.
8462
8463         Implement MethodReturn and Error subclasses of Message for creating
8464         DBusMessage's of those types.
8465         
8466         * python/examples/example-client.py:
8467         * python/examples/example-service.py:
8468
8469         Simple example code showing both how create DBus services and objects,
8470         and how to use them.
8471
8472 2003-09-23  Havoc Pennington  <hp@pobox.com>
8473
8474         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8475
8476 2003-09-23  Havoc Pennington  <hp@redhat.com>
8477
8478         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8479         (dbus_gproxy_disconnect_signal): implement
8480         (dbus_gproxy_manager_remove_signal_match): implement
8481         (dbus_gproxy_manager_add_signal_match): implement
8482         (dbus_gproxy_oneway_call): implement
8483
8484 2003-09-23  Havoc Pennington  <hp@pobox.com>
8485
8486         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8487         subclass. This means dropping the transparent thread safety of the
8488         proxy; you now need a separate proxy per-thread, or your own
8489         locking on the proxy. Probably right anyway.
8490         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8491
8492 2003-09-22  Havoc Pennington  <hp@redhat.com>
8493
8494         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8495
8496 2003-09-21  Seth Nickell  <seth@gnome.org>
8497
8498         First checkin of the Python bindings.
8499         
8500         * python/.cvsignore:
8501         * python/Makefile.am:
8502         * python/dbus_bindings.pyx.in:
8503         * python/dbus_h_wrapper.h:
8504
8505         Pieces for Pyrex to operate on, building a dbus_bindings.so
8506         python module for low-level access to the DBus APIs.
8507         
8508         * python/dbus.py:
8509
8510         High-level Python module for accessing DBus objects.
8511
8512         * configure.in:
8513         * Makefile.am:
8514
8515         Build stuff for the python bindings.
8516
8517         * acinclude.m4:
8518
8519         Extra macro needed for finding the Python C header files.
8520
8521 2003-09-21  Havoc Pennington  <hp@pobox.com>
8522
8523         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8524         implementing the proxy manager, didn't get very far.
8525
8526         * dbus/dbus-bus.c (dbus_bus_add_match): new
8527         (dbus_bus_remove_match): new
8528
8529         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8530         path_name argument; adjust the other not-yet-implemented 
8531         gproxy constructors to be what I think they should be.
8532
8533 2003-09-21  Havoc Pennington  <hp@pobox.com>
8534
8535         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8536         by default for message bus connections.
8537
8538         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8539         exit_on_disconnect flag is set and we process the disconnected
8540         signal.
8541         (dbus_connection_set_exit_on_disconnect): new function
8542
8543 2003-09-21  Havoc Pennington  <hp@pobox.com>
8544
8545         Get matching rules mostly working in the bus; only actually
8546         parsing the rule text remains. However, the client side of
8547         "signal connections" hasn't been started, this patch is only the
8548         bus side.
8549         
8550         * dbus/dispatch.c: fix for the matching rules changes
8551         
8552         * bus/driver.c (bus_driver_handle_remove_match)
8553         (bus_driver_handle_add_match): send an ack reply from these
8554         method calls
8555
8556         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8557         arguments, reported by Seth Nickell
8558
8559         * bus/config-parser.c (append_rule_from_element): support
8560         eavesdrop=true|false attribute on policies so match rules 
8561         can be prevented from snooping on the system bus.
8562
8563         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8564         and "destination" in attribute names; fix some docs bugs; 
8565         add eavesdrop=true|false attribute
8566
8567         * bus/driver.c (bus_driver_handle_add_match)
8568         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8569         messages
8570
8571         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8572         rid of broadcast service concept, signals are just always broadcast
8573
8574         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8575         mostly implement matching rules stuff (currently only exposed as signal
8576         connections)
8577
8578 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8579
8580         * doc/dbus-specification.sgml: Change the header field name
8581         to be an enum and update the rest of the spec to reference
8582         the fields using the conventinal name.
8583
8584         * dbus/dbus-protocol.h: update to reflect the spec.
8585
8586         * doc/TODO: add item to remove the 4 byte alignment requirement.
8587         
8588         * dbus/dbus-message.c: Remove the code to generalise the
8589         header/body length and serial number header fields as named
8590         header fields so we can reference field names using the 
8591         protocol values.
8592         (append_int_field), (append_uint_field), (append_string_field):
8593         Append the field name as a byte rather than four chars.
8594         (delete_int_or_uint_field), (delete_string_field): reflect the
8595         fact that the field name and typecode now occupy 4 bytes instead
8596         of 8.
8597         (decode_string_field), (decode_header_data): update to reflect
8598         protocol changes and move the field specific encoding from
8599         decode_string_field() back into decode_header_data().
8600         
8601         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8602         Add utility to aid debugging.
8603         
8604         * dbus/dbus-message-builder.c:
8605         (append_string_field), (_dbus_message_data_load): Update to
8606         reflect protocol changes; Change the FIELD_NAME directive
8607         to HEADER_FIELD and allow it to take the field's conventional
8608         name rather than the actual value.
8609         
8610         * test/data/*/*.message: Update to use HEADER_FIELD instead
8611         of FIELD_NAME; Always align the header on an 8 byte boundary
8612         *before* updating the header length.
8613
8614 2003-09-15  Havoc Pennington  <hp@pobox.com>
8615
8616         * dbus/dbus-pending-call.c: add the get/set object data
8617         boilerplate as for DBusConnection, etc. Use generic object data
8618         for the notify callback.
8619
8620         * glib/dbus-gparser.c (parse_node): parse child nodes
8621
8622         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8623         
8624         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8625         contain functions shared between the convenience lib and the
8626         installed lib
8627
8628         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8629         -export-symbols-regex to the GLib library
8630
8631         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8632         fix the locking in here, and add a default handler for
8633         Introspect() that just returns sub-nodes.
8634
8635 2003-09-14  Havoc Pennington  <hp@pobox.com>
8636
8637         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8638         rather than gfoo consistent
8639
8640         * glib/dbus-gproxy.h: delete for now, move contents to
8641         dbus-glib.h, because the include files don't work right since we
8642         aren't in the dbus/ subdir.
8643         
8644         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8645         (dbus_gproxy_end_call): finish
8646         (dbus_gproxy_begin_call): finish
8647
8648         * glib/dbus-gmain.c (dbus_set_g_error): new
8649
8650         * glib/dbus-gobject.c (handle_introspect): include information
8651         about child nodes in the introspection
8652
8653         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8654         function to help in implementation of introspection
8655
8656         * dbus/dbus-object-tree.c
8657         (_dbus_object_tree_list_registered_and_unlock): new function
8658
8659 2003-09-12  Havoc Pennington  <hp@pobox.com>
8660
8661         * glib/dbus-gidl.h: add common base class for all the foo_info
8662         types
8663
8664         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8665         similar to kdcop
8666
8667         * test/Makefile.am: try test srcdir -ef . in addition to test
8668         srcdir = ., one of them should work (yeah lame)
8669         
8670         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8671         library
8672         
8673         * glib/dbus-gparser.h: make description_load routines return
8674         NodeInfo* not Parser*
8675
8676         * Makefile.am (SUBDIRS): build test dir after all library dirs
8677
8678         * configure.in: add GTK+ detection
8679
8680 2003-09-07  Havoc Pennington  <hp@pobox.com>
8681
8682         * Make Doxygen contented.
8683
8684 2003-09-07  Havoc Pennington  <hp@pobox.com>
8685
8686         * doc/dbus-specification.sgml: more updates
8687
8688 2003-09-06  Havoc Pennington  <hp@pobox.com>
8689
8690         * doc/dbus-specification.sgml: partial updates
8691
8692         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8693         zillionth time; hopefully I edited the right file this time.
8694
8695         * bus/config-parser.c (append_rule_from_element): support
8696         send_type, send_path, receive_type, receive_path
8697
8698         * bus/policy.c: add message type and path to the list of things
8699         that can be "firewalled"
8700
8701 2003-09-06  Havoc Pennington  <hp@pobox.com>
8702
8703         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8704         (dbus_connection_register_object_path): make this not handle
8705         messages to paths below the given path
8706
8707 2003-09-03  Havoc Pennington  <hp@pobox.com>
8708
8709         * test/glib/Makefile.am: add this with random glib-linked test
8710         programs
8711
8712         * glib/Makefile.am: remove the random test programs from here,
8713         leave only the unit tests
8714
8715         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8716         uscore/javacaps conversion, and fix     
8717         (get_object_property, set_object_property): change to .NET
8718         convention for mapping props to methods, set_FooBar/get_FooBar, 
8719         since one language has such a convention we may as well copy it. 
8720         Plus real methods in either getFooBar or get_foo_bar style won't 
8721         collide with this convention.
8722
8723 2003-09-01  Havoc Pennington  <hp@pobox.com>
8724
8725         * glib/dbus-gparser.c: implement
8726
8727         * glib/dbus-gobject.c: start implementing skeletons support
8728
8729         * configure.in: when disabling checks/assert, also define
8730         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8731
8732 2003-09-01  Havoc Pennington  <hp@pobox.com>
8733
8734         * glib/Makefile.am: rearrange a bunch of files and get "make
8735         check" framework set up
8736
8737 2003-08-31  Havoc Pennington  <hp@pobox.com>
8738
8739         * fix build with --disable-tests
8740
8741 2003-08-30  Havoc Pennington  <hp@pobox.com>
8742
8743         * dbus/dbus-connection.c: purge DBusMessageHandler
8744
8745         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8746         use callbacks everywhere
8747
8748 2003-08-30  Havoc Pennington  <hp@pobox.com>
8749
8750         * test/data/valid-config-files/system.d/test.conf: change to 
8751         root for the user so warnings don't get printed
8752
8753         * dbus/dbus-message.c: add dbus_message_get_path,
8754         dbus_message_set_path
8755         
8756         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8757         dispatching to a path
8758
8759         * dbus/dbus-string.c (_dbus_string_validate_path): add
8760
8761         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8762         (_dbus_marshal_object_path): implement
8763
8764         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8765         to contain the path to the target object
8766         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8767         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8768
8769 2003-08-30  Havoc Pennington  <hp@pobox.com>
8770
8771         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8772
8773 2003-08-29  Havoc Pennington  <hp@pobox.com>
8774
8775         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8776         registered
8777         (struct DBusObjectSubtree): shrink this
8778         a lot, since we may have a lot of them
8779         (_dbus_object_tree_free_all_unlocked): implement
8780         (_dbus_object_tree_dispatch_and_unlock): implement
8781
8782 2003-08-29  Havoc Pennington  <hp@pobox.com>
8783
8784         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8785
8786 2003-08-28  Havoc Pennington  <hp@pobox.com>
8787
8788         purge DBusObjectID
8789         
8790         * dbus/dbus-connection.c: port to no ObjectID, create a
8791         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8792
8793         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8794         everything except UnregisterFunction and MessageFunction
8795         
8796         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8797         add DBUS_TYPE_OBJECT_PATH
8798         
8799         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8800         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8801         path-based object IDs
8802
8803 2003-08-25  Havoc Pennington  <hp@pobox.com>
8804
8805         Just noticed that dbus_message_test is hosed, I wonder when I
8806         broke that. I thought make check was passing earlier...
8807         
8808         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8809         container tree, will replace most of dbus-object-registry
8810
8811         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8812         screwup
8813
8814 2003-08-19  Havoc Pennington  <hp@pobox.com>
8815
8816         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8817         (dbus_message_is_error): fix this function
8818
8819         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8820         match
8821
8822         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8823         reflect clarified man page
8824         (bus_client_policy_check_can_send): ditto
8825         
8826         * bus/session.conf.in: fixup
8827
8828         * bus/system.conf.in: fixup
8829
8830 2003-08-18  Havoc Pennington  <hp@redhat.com>
8831
8832         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8833
8834         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8835         dumb bug created earlier (wrong order of args to
8836         decode_header_data())
8837         
8838         * tools/dbus-send.c: port
8839
8840         * tools/dbus-print-message.c (print_message): port
8841
8842         * test/data/*messages: port all messages over
8843         
8844         * dbus/dbus-message-builder.c: support including 
8845         message type
8846         
8847         * bus/driver.c: port over
8848         
8849         * bus/dispatch.c: port over to new stuff
8850
8851         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8852         rename disconnect signal to "Disconnected"
8853
8854 2003-08-17  Havoc Pennington  <hp@pobox.com>
8855
8856         This doesn't compile yet, but syncing up so I can hack on it from
8857         work. What are branches for if not broken code? ;-)
8858         
8859         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8860         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8861         DBUS_HEADER_FIELD_ERROR_NAME
8862         
8863         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8864         for the interface+member pairs
8865         (string_hash): change to use g_str_hash algorithm
8866         (find_direct_function, find_string_function): refactor these to
8867         share most code.
8868         
8869         * dbus/dbus-message.c: port all of this over to support 
8870         interface/member fields instead of name field
8871
8872         * dbus/dbus-object-registry.c: port over
8873         
8874         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8875         from _dbus_string_validate_name
8876
8877         * bus/dbus-daemon-1.1: change file format for the 
8878         <deny>/<allow> stuff to match new message naming scheme
8879
8880         * bus/policy.c: port over
8881
8882         * bus/config-parser.c: parse new format
8883         
8884 2003-08-16  Havoc Pennington  <hp@pobox.com>
8885
8886         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8887         broken assertion
8888
8889         * glib/dbus-gproxy.c: some hacking
8890
8891 2003-08-15  Havoc Pennington  <hp@redhat.com>
8892
8893         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8894
8895         * dbus/dbus-connection.c
8896         (dbus_connection_send_with_reply_and_block): factor out internals;
8897         change to convert any error replies to DBusError instead of 
8898         returning them as a message
8899
8900 2003-08-15  Havoc Pennington  <hp@pobox.com>
8901
8902         * dbus/dbus-connection.c, 
8903         dbus/dbus-pending-call.c: Finish the pending call stuff
8904
8905 2003-08-14  Havoc Pennington  <hp@redhat.com>
8906
8907         * dbus/dbus-pending-call.c: start on new object that will replace
8908         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8909         replies
8910
8911         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8912         with remote interfaces
8913
8914         * dbus/dbus-gidl.c: do the boring boilerplate in here
8915         
8916 2003-08-12  Havoc Pennington  <hp@pobox.com>
8917
8918         * bus/dispatch.c (bus_dispatch): make this return proper 
8919         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8920
8921         * dbus/dbus-errors.c (dbus_set_error): use
8922         _dbus_string_append_printf_valist
8923
8924         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8925         (_dbus_string_append_printf): new
8926
8927         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8928         UNKNOWN_METHOD
8929
8930         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8931         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8932         message is unhandled.
8933
8934 2003-08-11  Havoc Pennington  <hp@pobox.com>
8935
8936         * bus/test.c (client_disconnect_handler): change to return
8937         HANDLED (would have been REMOVE_MESSAGE)
8938
8939         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8940         HANDLED/NOT_YET_HANDLED instead of
8941         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8942         should be used.
8943
8944 2003-08-10  Havoc Pennington  <hp@pobox.com>
8945
8946         * tools/dbus-send.c (main): add --type argument, for now
8947         supporting only method_call and signal types.
8948
8949         * tools/dbus-print-message.c: print message type
8950
8951         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8952         init connection->objects
8953
8954         * doc/dbus-specification.sgml: fix sgml
8955
8956         * bus/*.c: port over to object-instance API changes
8957
8958         * test/test-service.c: ditto
8959         
8960         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8961         name, we will have to fix up the rest of the code to also handle
8962         this
8963         (dbus_message_new): generic message-creation call
8964         (set_string_field): allow appending name field
8965
8966 2003-08-06  Havoc Pennington  <hp@pobox.com>
8967
8968         * dbus/dbus-object-registry.c: implement signal connection 
8969         and dispatch
8970
8971         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8972
8973         * dbus/dbus-internals.c (_dbus_memdup): new function
8974
8975 2003-08-02  Havoc Pennington  <hp@pobox.com>
8976
8977         * dbus/dbus-message.c (dbus_message_get_no_reply)
8978         (dbus_message_set_no_reply): add these and remove
8979         set_is_error/get_is_error
8980
8981         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8982         remove the ERROR flag, since there's now an ERROR type
8983
8984 2003-08-01  Havoc Pennington  <hp@pobox.com>
8985
8986         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8987         implement
8988
8989         * dbus/dbus-message.c (dbus_message_get_type): new function
8990
8991         * doc/dbus-specification.sgml: add "type" byte to messages
8992
8993 2003-08-01  Havoc Pennington  <hp@pobox.com>
8994
8995         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8996         a message type enum to distinguish kinds of message
8997         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8998         that need not be replied to
8999
9000 2003-08-01  Havoc Pennington  <hp@pobox.com>
9001
9002         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9003         (unpack_8_octets): fix no-64-bit-int bug
9004
9005         * dbus/dbus-object-registry.c (validate_id): validate the 
9006         connection ID bits, not just the instance ID.
9007
9008         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9009         the connection-global 33 bits of the object ID
9010
9011         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9012         object ID in the new way
9013
9014         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9015         define server/client/instance bits.
9016
9017 2003-07-30  Havoc Pennington  <hp@pobox.com>
9018
9019         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9020         build
9021
9022 2003-07-13  Havoc Pennington  <hp@pobox.com>
9023
9024         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9025         fields to DBusObjectVTable and DBusObjectInfo
9026
9027 2003-07-12  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-object-registry.c: implement unit test,
9030         fix bugs discovered in process
9031
9032         * dbus/dbus-connection.c: remove handler_table and
9033         register_handler(), add DBusObjectRegistry usage
9034
9035         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9036         (dbus_object_id_set_null): new functions
9037
9038 2003-07-08  Havoc Pennington  <hp@pobox.com>
9039
9040         * dbus/dbus-object.c: implement some of this
9041
9042         * dbus/dbus-object-registry.c
9043         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9044         param
9045         (_dbus_object_registry_new): handle OOM
9046
9047 2003-07-08  Havoc Pennington  <hp@pobox.com>
9048
9049         * dbus/dbus-object.h: sketch out an API for registering objects
9050         with a connection, that allows us to use as little as 24 bytes
9051         per object and lets application code represent an object in 
9052         any conceivable way.
9053
9054         * dbus/dbus-object-registry.c: implement the hard bits of the
9055         DBusConnection aspect of object API. Not yet wired up.
9056         
9057 2003-07-06  Havoc Pennington  <hp@pobox.com>
9058
9059         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9060         (_dbus_marshal_object_id): new
9061         (_dbus_demarshal_object_id): new
9062         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9063         consolidate identical switch cases. Don't conditionalize handling
9064         of DBUS_TYPE_UINT64, need to handle the type always.
9065         (_dbus_marshal_validate_arg): consolidate identical cases, and
9066         handle DBUS_TYPE_OBJECT_ID
9067
9068         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9069
9070         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9071
9072 2003-09-28  Havoc Pennington  <hp@pobox.com>
9073
9074         * real 0.13 release
9075
9076 2003-09-28  Havoc Pennington  <hp@pobox.com>
9077
9078         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9079         to work with Debian db2html
9080
9081 2003-09-28  Havoc Pennington  <hp@pobox.com>
9082
9083         * configure.in: 0.13
9084
9085         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9086         stylesheet-images for benefit of Debian
9087         
9088         Change back to using filesystem-linked sockets for the system
9089         bus, so only root can create the default system bus address.
9090         
9091         * bus/system.conf.in: change to use
9092         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9093
9094         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9095         from here.
9096
9097         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9098         here, and AC_DEFINE DBUS_SYSTEM_PATH
9099
9100 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9101
9102         * doc/TODO:
9103         * doc/busconfig.dtd:
9104         Add busconfig DTD.
9105         
9106 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9107
9108         * doc/dbus-specification.sgml:
9109         Add activation reply values.
9110         
9111 2003-08-05  Havoc Pennington  <hp@redhat.com>
9112
9113         * configure.in: 0.12
9114
9115 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9116
9117         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9118         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9119         (add_watch), (remove_watch), (create_source):
9120         Refcount fds, fixes some reentrancy issues.
9121         
9122 2003-07-30  Havoc Pennington  <hp@redhat.com>
9123
9124         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9125         bus address to be abstract if we have abstract sockets
9126
9127         * NEWS: update
9128
9129 2003-07-28  Havoc Pennington  <hp@redhat.com>
9130
9131         * bus/messagebus.in: fix to avoid processname/servicename 
9132         confusion, from Michael Kearey
9133         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9134         
9135 2003-07-23  Havoc Pennington  <hp@pobox.com>
9136
9137         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9138         fix from Andy Hanton to remove broken "+1"
9139
9140 2003-07-16  Havoc Pennington  <hp@pobox.com>
9141
9142         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9143         babysitter process, as suggested by Thomas Leonard, so 
9144         an "eval `dbus-launch --exit-with-session`" will actually 
9145         return
9146
9147 2003-07-16  Havoc Pennington  <hp@pobox.com>
9148
9149         * configure.in: print out EXPANDED_* variables in the summary at
9150         the end; clean up the code that computes EXPANDED_ variables and
9151         get the ones using exec_prefix right. Should make things work
9152         when you build without --prefix
9153
9154 2003-06-29  Havoc Pennington  <hp@pobox.com>
9155
9156         * mono/Test.cs (class Test): fire up a main loop and run it
9157
9158         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9159         done once, the app has to do it
9160
9161 2003-06-26  Havoc Pennington  <hp@pobox.com>
9162
9163         * mono/Connection.cs: set up connection with the glib main loop
9164
9165 2003-07-01  Havoc Pennington  <hp@redhat.com>
9166
9167         * doc/dbus-specification.sgml: clarify the format of a type code,
9168         change suggested by Jim Blandy
9169
9170 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9171
9172         * doc/Makefile.am:
9173         * tools/Makefile.am: Don't assume srcdir == builddir.
9174
9175         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9176         the allocated block.
9177         (_dbus_memory_test): New function.
9178         * dbus/dbus-test.h: Add _dbus_memory_test ().
9179         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9180
9181         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9182         of %c%c%c%c.
9183         (dbus_message_new): Remove obsolete @todo.
9184
9185         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9186         (_dbus_marshal_set_uint64): Fix comment.
9187
9188         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9189         hardcode FIELD_REPLY_SERIAL.
9190
9191         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9192         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9193
9194         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9195         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9196
9197 2003-06-24  Havoc Pennington  <hp@pobox.com>
9198
9199         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9200
9201 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9202
9203         * configure.in:
9204         * gcj/.cvsignore:
9205         * gcj/Hello.java:
9206         * gcj/Makefile.am:
9207         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9208         * gcj/org/.cvsignore:
9209         * gcj/org/Makefile.am:
9210         * gcj/org/freedesktop/.cvsignore:
9211         * gcj/org/freedesktop/Makefile.am:
9212         * gcj/org/freedesktop/dbus/.cvsignore:
9213         * gcj/org/freedesktop/dbus/Makefile.am:
9214         * gcj/org/freedesktop/dbus/Message.java: (Message),
9215         (Message.Message):
9216         * gcj/org/freedesktop/dbus/natMessage.cc:
9217         Fix the build system.
9218
9219 2003-06-22  Havoc Pennington  <hp@pobox.com>
9220
9221         * mono/Connection.cs: add more bindings
9222
9223         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9224         more than once.
9225
9226 2003-06-22  Havoc Pennington  <hp@pobox.com>
9227
9228         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9229         Start wrapping more stuff.
9230
9231 2003-06-22  Havoc Pennington  <hp@pobox.com>
9232
9233         * mono/Message.cs: implement Message.Wrap() that ensures we only
9234         have a single C# wrapper per DBusMessage, assuming it works which
9235         it probably doesn't.
9236
9237         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9238         (dbus_message_free_data_slot): new
9239         (dbus_message_set_data): new
9240         (dbus_message_get_data): new
9241
9242 2003-06-22  Havoc Pennington  <hp@pobox.com>
9243
9244         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9245         (_dbus_data_slot_allocator_alloc): rework these to keep a
9246         reference count on each slot and automatically manage a global
9247         slot ID variable passed in by address
9248
9249         * bus/bus.c: convert to new dataslot API
9250
9251         * dbus/dbus-bus.c: convert to new dataslot API
9252
9253         * dbus/dbus-connection.c: convert to new dataslot API
9254
9255         * dbus/dbus-server.c: convert to new dataslot API
9256
9257         * glib/dbus-gmain.c: ditto
9258
9259         * bus/test.c: ditto
9260
9261         * bus/connection.c: ditto
9262
9263 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9264
9265         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9266         after the gcj checks so that the correct configuration tags
9267         will be added to libtool.
9268
9269         * dbus-glib-1.pc.in: No need to specify any includes since
9270         dbus-1.pc.in has those.
9271
9272 2003-06-22  Havoc Pennington  <hp@pobox.com>
9273
9274         * mono/*, gcj/*, configure.in, Makefile.am:
9275         Check in makefiles and subdirs for mono and gcj bindings.
9276         Neither binding actually exists, just trying to get through
9277         all the build and other boring bits.
9278
9279 2003-06-21  Philip Blundell  <philb@gnu.org>
9280
9281         * tools/dbus-monitor.1: Updated.
9282
9283         * tools/dbus-send.1: Likewise.
9284
9285 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9286
9287         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9288         for hangup and error after checking read so we won't discard
9289         pending data if both hangup and read are set.
9290
9291 2003-06-19  Philip Blundell  <philb@gnu.org>
9292
9293         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9294
9295         * tools/dbus-send.c: Accept both --system and --session.
9296
9297         * tools/dbus-monitor.c: Same here.
9298
9299 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9300
9301         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9302         from C++ (Patch by Miloslav Trmac).
9303
9304 2003-06-15  Joe Shaw  <joe@assbarn.com>
9305
9306         * configure.in: Check for socklen_t.
9307
9308         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9309
9310         * test/test-segfault.c: Add #include <sys/time.h>
9311
9312         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9313         dbus-launch needs it.
9314
9315 2003-06-09  Havoc Pennington  <hp@redhat.com>
9316
9317         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9318         SUN_LEN, it breaks abstract socket usage
9319
9320         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9321         starts of lines.
9322
9323 2003-06-04  Havoc Pennington  <hp@pobox.com>
9324
9325         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9326         using unix:abstract=/foo, and when listening in a tmpdir
9327         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9328
9329         * dbus/dbus-transport.c (_dbus_transport_open): support
9330         unix:abstract=/foo
9331
9332         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9333         support abstract sockets
9334
9335         * dbus/dbus-transport-unix.c
9336         (_dbus_transport_new_for_domain_socket): support abstract sockets
9337
9338         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9339         toggle as an argument, implement abstract namespace support
9340         (_dbus_listen_unix_socket): ditto
9341
9342         * configure.in: add --enable-abstract-sockets and implement
9343         a configure check for autodetection of the right value.
9344
9345 2003-06-01  Havoc Pennington  <hp@pobox.com>
9346
9347         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9348         in /tmp (though on Linux this will end up being useless,
9349         when we add abstract namespace support)
9350
9351         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9352         subst'ing it
9353
9354 2003-05-28  Colin Walters  <walters@verbum.org>
9355
9356         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9357
9358 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9359
9360         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9361
9362 2003-05-17  Colin Walters  <walters@gnu.org>
9363
9364         * tools/dbus-send.c: Don't exit with an error code if --help was
9365         passed.  Default to using the session bus instead of the system
9366         one.
9367
9368         * tools/dbus-launch.c: Ditto.
9369
9370         * tools/dbus-monitor.c: Ditto.
9371
9372         * tools/dbus-send.1: Update with new arguments.
9373
9374         * tools/dbus-launch.c: Emit code to export variables.  New
9375         arguments -s and -c to specify shell syntax, and a bit of code to
9376         autodetect syntax.  Also, allow specifying a program to run.
9377
9378         * tools/dbus-launch.1: Update with new arguments.
9379
9380         * tools/dbus-send.1: Ditto.
9381
9382         * tools/dbus-monitor.1: Ditto.
9383
9384 2003-05-17  Havoc Pennington  <hp@pobox.com>
9385
9386         * bus/config-parser.c (merge_included): merge in policies from
9387         child configuration file.
9388
9389         * bus/policy.c (bus_policy_merge): function to merge two policies
9390         together
9391
9392 2003-05-16  Havoc Pennington  <hp@redhat.com>
9393
9394         * dbus/dbus-connection.c: disable verbose lock spew
9395
9396         * tools/dbus-send.c: add --print-reply command line option
9397
9398         * tools/dbus-print-message.h (print_message): new util function
9399         shared by dbus-send and dbus-monitor
9400
9401         * tools/dbus-monitor.c (handler_func): exit on disconnect
9402
9403         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9404         disconnected, don't try to use the read_watch
9405
9406         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9407         so we can find this bug more easily
9408
9409 2003-05-16  Havoc Pennington  <hp@redhat.com>
9410
9411         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9412         NULL as DBusHashTable is annoyingly likely to do.
9413
9414 2003-05-16  Colin Walters  <walters@verbum.org>
9415
9416         * tools/dbus-monitor.c: Add --session argument and usage()
9417         function.
9418
9419         * tools/dbus-monitor.1: Update with new --session arg.
9420
9421         * bus/Makefile.am (install-data-hook): Create
9422         $(libdir)/dbus-1.0/services so that the session bus is happy.
9423
9424 2003-05-15  Havoc Pennington  <hp@redhat.com>
9425
9426         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9427         on non-x86. ifdef's are evil.
9428
9429 2003-05-15  Havoc Pennington  <hp@redhat.com>
9430
9431         * configure.in: 0.11
9432
9433         * NEWS: update
9434
9435         * bus/Makefile.am (initddir): apparently we are supposed to put
9436         init scripts in /etc/rc.d/init.d not /etc/init.d
9437
9438         * bus/Makefile.am: remove the "you must --enable-tests to make
9439         check" as it broke distcheck
9440
9441         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9442
9443 2003-05-13  James Willcox  <jwillcox@gnome.org>
9444
9445         * configure.in:
9446         * bus/activation.c: (bus_activation_service_created),
9447         (bus_activation_activate_service):
9448         * bus/driver.c: (bus_driver_send_service_deleted),
9449         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9450         (bus_driver_send_service_acquired),
9451         (bus_driver_send_welcome_message),
9452         (bus_driver_handle_list_services):
9453         * bus/session.conf.in:
9454         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9455         (dbus_bus_service_exists), (dbus_bus_activate_service):
9456         * dbus/dbus-bus.h:
9457
9458         Add some convenience API which lets you activate a service, and did a
9459         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9460         and dbus_message_get_args()
9461
9462 2003-05-11  Havoc Pennington  <hp@pobox.com>
9463
9464         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9465         calling _dbus_marshal_validate_arg() for every byte in a byte
9466         array, etc.
9467
9468         * dbus/dbus-message-handler.c: use atomic reference counting to
9469         reduce number of locks slightly; the global lock in here sucks
9470
9471         * dbus/dbus-connection.c
9472         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9473         update_dispatch_status that can be called with lock held; then use
9474         in a couple places to reduce locking/unlocking
9475         (dbus_connection_send): hold the lock over the whole function
9476         instead of acquiring it twice.
9477
9478         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9479
9480         * bus/connection.c (bus_connections_setup_connection): fix access
9481         to already-freed memory.
9482
9483         * dbus/dbus-connection.c: keep a little cache of linked list
9484         nodes, to avoid using the global linked list alloc lock in the
9485         normal send-message case. Instead we just use the connection lock
9486         that we already have to take.
9487
9488         * dbus/dbus-list.c (_dbus_list_find_last): new function
9489
9490         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9491         change to use a struct for the atomic type; fix docs,
9492         they return value before increment, not after increment.
9493
9494         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9495         (_dbus_string_append_8_aligned): new functions to try to
9496         microoptimize this operation.
9497         (reallocate_for_length): break this out of set_length(), to
9498         improve profile info, and also so we can consider inlining the
9499         set_length() part.
9500
9501         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9502         strings with some preallocation, cuts down on our calls to realloc
9503         a fair bit. Though if we can get the "move entire string to empty
9504         string" optimization below to kick in here, it would be better.
9505
9506         * dbus/dbus-string.c (_dbus_string_move): just call
9507         _dbus_string_move_len
9508         (_dbus_string_move_len): add a special case for moving
9509         an entire string into an empty string; we can just
9510         swap the string data instead of doing any reallocs.
9511         (_dbus_string_init_preallocated): new function
9512
9513 2003-05-11  Havoc Pennington  <hp@pobox.com>
9514
9515         Write a "test-profile" that does echo client-server with threads;
9516         profile reveals lock contention, memcpy/realloc of buffers, and
9517         UTF-8 validation as hot spots. 20% of lock contention eliminated
9518         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9519         contention is global mempool locks for GList and DBusList.
9520
9521         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9522         x86 implementation
9523
9524         * dbus/dbus-connection.c (struct DBusConnection): use
9525         dbus_atomic_t for the reference count
9526
9527         * dbus/dbus-message.c (struct DBusMessage): declare
9528         dbus_atomic_t values as volatile
9529
9530         * configure.in: code to detect ability to use atomic integer
9531         operations in assembly, from GLib patch
9532
9533         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9534         time, tired of it being wrong in threads and forked processes
9535
9536         * glib/test-profile.c: a little program to bounce messages back
9537         and forth between threads and eat CPU
9538
9539         * dbus/dbus-connection.c: add debug spew macros for debugging
9540         thread locks; include config.h at top; fix deadlock in
9541         dbus_connection_flush()
9542
9543 2003-05-08  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9546         data from getting written, and there wasn't a good reason to
9547         use _exit really.
9548
9549         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9550         dbus_verbose lines in test coverage
9551         (main): add list of functions sorted by # of untested blocks
9552         to the coverage report
9553
9554         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9555
9556         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9557
9558         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9559         extend test coverage
9560
9561         * test/data/auth/cancel.auth-script: test canceling an
9562         authentication
9563
9564         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9565         aren't used. in CVS history if we end up needing them.
9566
9567 2003-05-04  Havoc Pennington  <hp@pobox.com>
9568
9569         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9570         unit test
9571
9572         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9573         function, which assumed length was in # of strings, not bytes
9574
9575         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9576         missing coverage
9577
9578         * dbus/dbus-connection.c
9579         (_dbus_connection_queue_received_message): disable function for
9580         now, we are only using it in test mode
9581
9582         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9583         remove a mistaken FIXME
9584
9585 2003-05-04  Havoc Pennington  <hp@pobox.com>
9586
9587         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9588         unlock mutex on successful return, patch from Anders Gustafsson
9589
9590 2003-05-04  Havoc Pennington  <hp@pobox.com>
9591
9592         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9593         Anders Gustafsson
9594
9595 2003-05-04  Havoc Pennington  <hp@pobox.com>
9596
9597         * tools/dbus-launch.c: implement
9598
9599         * bus/main.c (main), bus/bus.c (bus_context_new):
9600         implement --print-pid and --fork
9601
9602 2003-05-03  Havoc Pennington  <hp@redhat.com>
9603
9604         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9605         the address had no value, and add to test suite. Fix and
9606         regression test from Miloslav Trmac
9607
9608 2003-05-03  Havoc Pennington  <hp@pobox.com>
9609
9610         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9611         watch is invalid when handled
9612
9613         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9614         dbus-launch utility to launch the bus from a shell script.  Didn't
9615         actually implement dbus-launch yet, it's just a placeholder still.
9616
9617 2003-05-03  Havoc Pennington  <hp@pobox.com>
9618
9619         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9620         daemon; also documents daemon config file, so replaces
9621         doc/config-file.txt. Corrected some stuff from config-file.txt in
9622         the process of moving it.
9623
9624 2003-05-03  Havoc Pennington  <hp@pobox.com>
9625
9626         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9627         add some man pages
9628
9629 2003-05-03  Colin Walters  <walters@verbum.org>
9630
9631         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9632         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9633
9634         * Makefile.am: Update to use new .pc versioning scheme.
9635
9636 2003-05-02  Havoc Pennington  <hp@redhat.com>
9637
9638         * bus/system.conf.in: allow send/receive to/from message bus
9639         service
9640
9641 2003-04-30  Havoc Pennington  <hp@redhat.com>
9642
9643         * configure.in: print a note when building with unit tests and
9644         without assertions
9645
9646 2003-04-30  Havoc Pennington  <hp@redhat.com>
9647
9648         * Makefile.am: add a check-local that complains if you didn't
9649         configure with --enable-tests
9650
9651 2003-04-29  Havoc Pennington  <hp@redhat.com>
9652
9653         * glib/dbus-gmain.c: docs cleanups
9654
9655         * dbus/dbus-types.h: add docs on int64 types
9656
9657         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9658         public API docs section
9659
9660 2003-04-29  Havoc Pennington  <hp@redhat.com>
9661
9662         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9663         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9664         parallel install API version, not with the D-BUS package version.
9665
9666         * HACKING: move some of README over here
9667
9668         * README: updates, and document API/ABI policy
9669
9670         * configure.in: reindentation
9671
9672 2003-04-29  Havoc Pennington  <hp@redhat.com>
9673
9674         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9675         to use this library" to be sure people have the right
9676         expectations.
9677
9678 2003-04-28  Havoc Pennington  <hp@redhat.com>
9679
9680         * configure.in: add --enable-docs which by default is auto yes if
9681         doxygen and db2html found, no otherwise; but can be forced on/off
9682
9683         * doc/Makefile.am: conditionalize whether to build docs on
9684         --enable-docs
9685
9686 2003-04-28  Havoc Pennington  <hp@redhat.com>
9687
9688         * configure.in: 0.10
9689
9690         * NEWS: update
9691
9692         * bus/system.conf.in: add <includedir>system.d</includedir>
9693
9694         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9695         username was provided but not uid
9696
9697         * bus/config-parser.c (struct BusConfigParser): keep track of
9698         whether the parser is toplevel or was included; change some
9699         of the error handling if it's included.
9700
9701 2003-04-27  Havoc Pennington  <hp@pobox.com>
9702
9703         Unbreak my code...
9704
9705         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9706         report correct status if we finish processing authentication
9707         inside this function.
9708
9709         * bus/activation.c (try_send_activation_failure): use
9710         bus_transaction_send_error_reply
9711
9712         * bus/connection.c (bus_connection_get_groups): return an error
9713         explaining the problem
9714
9715         * bus/bus.c (bus_context_check_security_policy): implement
9716         restriction here that inactive connections can only send the
9717         hello message. Also, allow bus driver to send anything to
9718         any recipient.
9719
9720         * bus/connection.c (bus_connection_complete): create the
9721         BusClientPolicy here instead of on-demand.
9722         (bus_connection_get_policy): don't return an error
9723
9724         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9725         sender field in message being replied to
9726
9727         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9728         causing it to return FALSE always
9729
9730         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9731         we checked sender rather than destination
9732
9733 2003-04-25  Havoc Pennington  <hp@redhat.com>
9734
9735         test suite is slightly hosed at the moment, will fix soon
9736
9737         * bus/connection.c (bus_connections_expire_incomplete): fix to
9738         properly disable the timeout when required
9739         (bus_connection_set_name): check whether we can remove incomplete
9740         connections timeout after we complete each connection.
9741
9742         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9743         probably still broken.
9744
9745         * bus/services.c (bus_registry_acquire_service): implement max
9746         number of services owned, and honor allow/deny rules on which
9747         services a connection can own.
9748
9749         * bus/connection.c (bus_connection_get_policy): report errors here
9750
9751         * bus/activation.c: implement limit on number of pending
9752         activations
9753
9754 2003-04-25  Havoc Pennington  <hp@redhat.com>
9755
9756         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9757         where we used >= 0 instead of != DBUS_UID_UNSET.
9758
9759 2003-04-25  Havoc Pennington  <hp@redhat.com>
9760
9761         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9762         were toggled without add/remove, fix from Anders Gustafsson
9763
9764 2003-04-24  Havoc Pennington  <hp@redhat.com>
9765
9766         * test/data/valid-config-files/basic.conf: add <limit> tags to
9767         this test
9768
9769         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9770         <limit> tag in configuration file.
9771
9772 2003-04-24  Havoc Pennington  <hp@redhat.com>
9773
9774         * bus/dispatch.c: somehow missed some name_is
9775
9776         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9777         (_dbus_timeout_set_interval): new
9778
9779         * bus/connection.c (bus_connections_setup_connection): record time
9780         when each connection is first set up, and expire them after the
9781         auth timeout passes.
9782
9783 2003-04-24  Havoc Pennington  <hp@redhat.com>
9784
9785         * dbus/dbus-message.c (dbus_message_name_is): rename
9786         (dbus_message_service_is): rename
9787         (dbus_message_sender_is): rename
9788         (dbus_message_get_service): rename
9789
9790 2003-04-24  Havoc Pennington  <hp@redhat.com>
9791
9792         * configure.in: add --enable-checks
9793
9794         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9795
9796         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9797         to use thread locks.
9798         (_dbus_connection_handler_destroyed_locked): move some private
9799         functions into proper docs group
9800
9801         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9802         _dbus_return_val_if_fail
9803
9804         Throughout: use dbus_return_if_fail
9805
9806 2003-04-23  James Willcox  <jwillcox@gnome.org>
9807
9808         * glib/dbus-glib.h:
9809         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9810         (dbus_connection_setup_with_g_main),
9811         (dbus_server_setup_with_g_main):
9812         * glib/test-dbus-glib.c: (main):
9813         * glib/test-thread-client.c: (main):
9814         * glib/test-thread-server.c: (new_connection_callback), (main):
9815         * tools/dbus-monitor.c: (main):
9816
9817         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9818         and dbus_server_setup_with_g_main().
9819
9820 2003-04-20  Havoc Pennington  <hp@pobox.com>
9821
9822         * doc/dbus-specification.sgml: document the restrictions on
9823         message and service names
9824
9825 2003-04-22  Havoc Pennington  <hp@redhat.com>
9826
9827         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9828         support, and do some code cleanups to share more code and
9829         speed up array marshal/demarshal.
9830
9831         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9832
9833         * configure.in: generate dbus-arch-deps.h
9834
9835         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9836         64-bit typecodes
9837
9838 2003-04-22  Havoc Pennington  <hp@redhat.com>
9839
9840         * test/data/valid-messages/opposite-endian.message: fix test
9841         to use proper type for rply field
9842
9843         * test/data/invalid-messages: add tests for below validation
9844
9845         * dbus/dbus-message.c (decode_header_data): validate field types,
9846         and validate that named fields are valid names
9847         (decode_name_field): consider messages in the
9848         org.freedesktop.Local. namespace to be invalid.
9849
9850         * dbus/dbus-string.c (_dbus_string_validate_name): new
9851
9852 2003-04-19  Havoc Pennington  <hp@pobox.com>
9853
9854         * bus/driver.c (bus_driver_handle_hello): check limits and
9855         return an error if they are exceeded.
9856
9857         * bus/connection.c: maintain separate lists of active and inactive
9858         connections, and a count of each. Maintain count of completed
9859         connections per user. Implement code to check connection limits.
9860
9861         * dbus/dbus-list.c (_dbus_list_unlink): export
9862
9863         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9864         number of bytes in the message queue for a connection
9865
9866 2003-04-18  Havoc Pennington  <hp@pobox.com>
9867
9868         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9869
9870         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9871         memleaks
9872
9873         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9874         on realloc be sure to update the pointer in the keyring
9875
9876         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9877         offset to avoid writing to unallocated memory
9878
9879         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9880         try the next mechanism, so we properly handle OOM
9881
9882         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9883         on OOM.
9884         (_dbus_keyring_new): fix OOM bug
9885         (_dbus_keyring_new_homedir): always set error; impose a maximum
9886         number of keys we'll load from the file, mostly to speed up the
9887         test suite and make its OOM checks more useful, but also for
9888         general sanity.
9889
9890         * dbus/dbus-auth.c (process_error_server): reject authentication
9891         if we get an error from the client
9892         (process_cancel): on cancel, send REJECTED, per the spec
9893         (process_error_client): send CANCEL if we get an error from the
9894         server.
9895
9896 2003-04-18  Havoc Pennington  <hp@pobox.com>
9897
9898         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9899         debug spew
9900
9901         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9902         handling problem
9903
9904         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9905         about DBUS_TEST_HOMEDIR once
9906
9907         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9908         the environment
9909
9910         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9911         config file so we test the right thing
9912
9913         Throughout: assorted docs improvements
9914
9915 2003-04-18  Havoc Pennington  <hp@pobox.com>
9916
9917         * glib/dbus-gmain.c: adapt to watch changes
9918
9919         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9920
9921         * dbus/dbus-server.h: remove dbus_server_handle_watch
9922
9923         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9924
9925         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9926         like DBusTimeout, so we don't need dbus_connection_handle_watch
9927         etc.
9928
9929 2003-04-17  Havoc Pennington  <hp@redhat.com>
9930
9931         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9932         database usage so it all goes via the DBusUserDatabase cache.
9933
9934 2003-04-17  Havoc Pennington  <hp@redhat.com>
9935
9936         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9937         there was an OOM watch we skipped, we always return TRUE so we
9938         iterate again to have a look at it again. Fixes test suite hang.
9939         Code rearrangement also lets us lose some memset and only iterate
9940         over callbacks once.
9941
9942         * bus/driver.c (bus_driver_handle_message): sense of test for
9943         reply was backward
9944
9945 2003-04-16  Havoc Pennington  <hp@pobox.com>
9946
9947         * doc/dbus-specification.sgml: make spec say serials are unsigned
9948
9949         * dbus/dbus-message.h: change message serials to unsigned
9950
9951         * dbus/dbus-connection.c: adapt to message serials being unsigned
9952
9953 2003-04-15  Havoc Pennington  <hp@pobox.com>
9954
9955         * bus/bus.c: create and keep around a shared DBusUserDatabase
9956         object.
9957
9958         * bus/connection.c (bus_connection_get_groups): don't cache
9959         groups for user in the connection object, since user database
9960         object now does that.
9961
9962 2003-04-16  Havoc Pennington  <hp@redhat.com>
9963
9964         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9965         list of size counters
9966         (_dbus_message_loader_putback_message_link): put back a popped link
9967
9968         * dbus/dbus-connection.c
9969         (dbus_connection_set_max_live_messages_size): rename
9970         max_received_size
9971         (dbus_connection_get_outgoing_size): get size of outgoing
9972         queue
9973         (_dbus_connection_set_connection_counter): remove this cruft
9974
9975 2003-04-14  Havoc Pennington  <hp@redhat.com>
9976
9977         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9978         caching, but at some point we might want to be able to use a
9979         different database.
9980
9981         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9982         SHA1 conf file to test the sha1 auth mechanism, since the regular
9983         test always uses EXTERNAL when available.
9984
9985         * configure.in,
9986         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9987         add conf file that requires use of sha1 auth
9988
9989 2003-04-13  Havoc Pennington  <hp@pobox.com>
9990
9991         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9992         from Philip Blundell to send messages and monitor them.
9993
9994 2003-04-13  Havoc Pennington  <hp@pobox.com>
9995
9996         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9997         callbacks
9998
9999         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10000         users
10001
10002         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10003         fix to only recover unused bytes if we're already authenticated
10004         (_dbus_transport_get_is_authenticated): fix to still mark us
10005         authenticated if there are unused bytes.
10006
10007         * bus/dispatch.c: implement security policy checking
10008
10009         * bus/connection.c (bus_transaction_send_from_driver): new
10010
10011         * bus/bus.c (bus_context_check_security_policy): new
10012
10013         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10014         now we just set the DBusError and it gets converted to an error
10015         reply.
10016
10017         * bus/connection.c (allow_user_function): enable code using actual
10018         data from the config file
10019
10020         * bus/policy.c (list_allows_user): handle wildcard rules for
10021         user/group connection perms
10022
10023 2003-04-13  Havoc Pennington  <hp@pobox.com>
10024
10025         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10026
10027         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10028
10029         * bus/policy.c (bus_policy_append_mandatory_rule)
10030         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10031         (bus_policy_append_group_rule): new functions
10032
10033 2003-04-12  Havoc Pennington  <hp@pobox.com>
10034
10035         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10036
10037         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10038         the pid/gid/uid, just for paranoia.
10039
10040         * test/break-loader.c (randomly_do_n_things): find a byte
10041         containing a type code, and randomly change it to a different
10042         type code.
10043
10044 2003-04-12  Havoc Pennington  <hp@pobox.com>
10045
10046         * bus/policy.h: change BusPolicy to be the thing from the config
10047         file, and rename old BusPolicy to BusClientPolicy
10048
10049         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10050         match change in how policy works
10051
10052         * dbus/dbus-internals.h: mark assert_not_reached as
10053         __attribute((noreturn))__
10054
10055 2003-04-11  Havoc Pennington  <hp@redhat.com>
10056
10057         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10058         the broadcast service. Use boolean return for ServiceExists.
10059
10060 2003-04-11  Havoc Pennington  <hp@redhat.com>
10061
10062         * configure.in: add another directory to look for qt in.
10063
10064 2003-04-11  Havoc Pennington  <hp@redhat.com>
10065
10066         * AUTHORS: add Colin Walters
10067
10068 2003-04-11  Havoc Pennington  <hp@redhat.com>
10069
10070         * NEWS: update
10071
10072         * configure.in: 0.9
10073
10074 2003-04-11  Havoc Pennington  <hp@redhat.com>
10075
10076         * bus/messagebus.in: remove pid file when stopping the
10077         message bus, since the bus won't have privileges to remove it
10078         itself.
10079
10080 2003-04-11  Havoc Pennington  <hp@redhat.com>
10081
10082         * bus/bus.c (bus_context_new): move credentials change after
10083         creating pidfile
10084
10085 2003-04-11  Havoc Pennington  <hp@pobox.com>
10086
10087         * test/decode-gcov.c: add "below average functions" to the
10088         coverage report, and change how some of the code works.
10089
10090         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10091         not in the coverage stats.
10092
10093         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10094         couple places so running the test suite doesn't result in megaspam.
10095
10096 2003-04-11  Havoc Pennington  <hp@pobox.com>
10097
10098         * bus/dispatch.c (check_existent_service_activation): accept a no
10099         memory error in a place we didn't before
10100
10101         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10102         in case the first one failed," since the test suite is less
10103         broken now.
10104
10105 2003-04-10  Havoc Pennington  <hp@pobox.com>
10106
10107         * bus/dispatch.c (check_segfault_service_activation): add test
10108         for launching an executable that just crashes.
10109
10110         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10111         don't leave a million cores. We'll see how portable this is.
10112
10113 2003-04-10  Havoc Pennington  <hp@pobox.com>
10114
10115         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10116         the possible parent failures before we fork, so that we don't
10117         fail to create a babysitter after creating the child.
10118
10119         * bus/activation.c (bus_activation_activate_service): kill child
10120         if we don't successfully complete the activation.
10121
10122 2003-04-10  Havoc Pennington  <hp@redhat.com>
10123
10124         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10125         the connection if it's disconnected
10126
10127         * bus/activation.c (bus_activation_service_created): use new
10128         transaction features to roll back removal of pending activation if
10129         we don't successfully create the service after all. Don't remove
10130         pending activation if the function fails.
10131
10132         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10133         (_dbus_list_insert_after_link): new code to facilitate
10134         services.c fixes
10135
10136         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10137         new functionality, so we can preallocate the ability to insert
10138         into a hash table.
10139
10140         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10141         allowing us to put custom hooks in a transaction to be used for
10142         cancelling said transaction
10143
10144         * doc/dbus-specification.sgml: add some discussion of secondary
10145         service owners, and disallow zero-length service names
10146
10147         * bus/services.c (bus_registry_acquire_service): new function,
10148         splits out part of bus_driver_handle_acquire_service() and fixes
10149         a bug where we didn't remove the service doing the acquiring
10150         from the secondary queue if we failed to remove the current owner
10151         from the front of the queue.
10152
10153 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10154
10155         * doc/dbus-specification.sgml:
10156         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10157
10158 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10159
10160         * bus/.cvsignore:
10161         * glib/.cvsignore:
10162         * test/.cvsignore:
10163         Added files to cvsignore
10164
10165         * dbus/dbus-message.h:
10166         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10167         Make get_named() take two out argument and return a boolean.
10168         (dbus_message_iter_get_args_valist):
10169         Update usage of get_named().
10170         (dbus_message_iter_append_byte):
10171         Fix typo
10172         (dbus_message_iter_append_named)
10173         Fix typo
10174         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10175         More tests.
10176
10177 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10178
10179         * dbus/dbus-marshal.[ch]:
10180         Add array_type_pos argument to _dbus_marshal_validate_arg.
10181         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10182
10183         * dbus/dbus-message.[ch]:
10184         Multi-dimensional arrays have full type specification in the
10185         outermost array. Iter code re-arranged to handle this.
10186         Added some more iter tests.
10187
10188         * doc/dbus-specification.sgml:
10189         Add me to authors.
10190         Remove old FIXME.
10191         Update new array encoding description.
10192         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10193
10194         * test/data/invalid-messages/array-with-mixed-types.message:
10195         * test/data/valid-messages/array-of-array-of-uint32.message:
10196         Change to the new array format.
10197
10198         * test/data/invalid-messages/too-short-dict.message:
10199         Fix bug in test.
10200
10201         * test/data/valid-messages/recursive-types.message:
10202         Fix up and extend test.
10203
10204 2003-04-10  Havoc Pennington  <hp@pobox.com>
10205
10206         * bus/dispatch.c: lots of fixes
10207
10208         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10209         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10210         that was crack, broke the test service.
10211
10212         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10213         handling to avoid piling up errors if we get a failure on the
10214         first address.
10215
10216         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10217         pid in assertion failures.
10218
10219         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10220         to some fixed size of file descriptor array. Don't return TRUE
10221         anytime a timeout exists, that led to lots of busy loop silliness
10222         in the tests.
10223
10224 2003-04-09  Havoc Pennington  <hp@redhat.com>
10225
10226         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10227         I'd checked this in earlier but hadn't.
10228
10229 2003-04-09  Havoc Pennington  <hp@redhat.com>
10230
10231         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10232         the activation test (man this is getting old!)
10233
10234 2003-04-09  Havoc Pennington  <hp@redhat.com>
10235
10236         * test/test-utils.c: use dispatch status function to fix this up
10237
10238         * bus/connection.c (connection_watch_callback): don't dispatch
10239         from here
10240         (connection_timeout_callback): don't dispatch from here
10241         (bus_connections_setup_connection): set the dispatch status function
10242         (bus_connection_disconnected): unset it
10243
10244         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10245         used to add a connection to be dispatched
10246         (_dbus_loop_iterate): do the dispatching at the end of each
10247         iteration
10248
10249         * dbus/dbus-connection.c
10250         (dbus_connection_set_dispatch_status_function): new function
10251         allowing us to fix up main loop usage
10252         (_dbus_connection_last_unref): free all the various function
10253         user data
10254         (dbus_connection_dispatch): call the DispatchStatusFunction
10255         whenever this function returns
10256         (dbus_connection_handle_watch): call DispatchStatusFunction
10257         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10258         (reply_handler_timeout): call DispatchStatusFunction
10259         (dbus_connection_flush): call DispatchStatusFunction
10260
10261 2003-04-09  Havoc Pennington  <hp@redhat.com>
10262
10263         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10264         a memory leak
10265
10266         * bus/dispatch.c (check_service_activated): fix bug in test
10267
10268         * dbus/dbus-mainloop.c (check_timeout): fix this up
10269
10270         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10271         verbose output so we can sort out output from different processes,
10272         e.g. in the activation case.
10273
10274 2003-04-08  Colin Walters  <walters@gnu.org>
10275
10276         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10277         the pid file.
10278         (bus_context_new): Set it.
10279         (bus_context_unref): Use it to delete the pid file.
10280
10281 2003-04-08  Havoc Pennington  <hp@redhat.com>
10282
10283         * test/data/invalid-messages/array-with-mixed-types.message:
10284         regression test that fails for the moment
10285
10286         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10287         tests for convenience
10288
10289         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10290         array of nil, it broke things.
10291
10292         * test/data/invalid-messages/array-of-nil.message: regression test
10293
10294         * test/data/valid-messages/array-of-array-of-uint32.message:
10295         happened to write this so added it to suite
10296
10297 2003-04-08  Havoc Pennington  <hp@redhat.com>
10298
10299         * bus/driver.c (bus_driver_handle_acquire_service): init
10300         retval/reply before checking name
10301
10302         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10303         recursion depth argument
10304
10305         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10306         in the public struct for future extension
10307
10308         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10309         typo
10310
10311         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10312         message
10313
10314         * doc/dbus-specification.sgml: fix typo
10315
10316 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10317
10318         Implemented recursive types, named types and new-style iters
10319
10320         * bus/driver.c:
10321         * glib/test-thread-client.c: (thread_func):
10322         * glib/test-thread-server.c: (handle_test_message):
10323         * test/test-service.c: (handle_echo):
10324         Update to new api
10325
10326         * dbus/Makefile.am:
10327         * dbus/dbus-dict.c:
10328         * dbus/dbus-dict.h:
10329         * dbus/dbus.h
10330         Remove DBusDict
10331
10332         * dbus/dbus-internals.c: (_dbus_type_to_string):
10333         Update for new types.
10334
10335         * dbus/dbus-marshal.[ch]:
10336         Implement recursive types and the new marshalling format.
10337         Remove hardcoded dict marshalling.
10338         Marshal named types.
10339
10340         * dbus/dbus-message-builder.c:
10341         Add BYTE_ARRAY.
10342         Remove references to old types
10343
10344         * dbus/dbus-message.[ch]:
10345         New non-refcounted iter API that supports recursive iters.
10346         Use iters for appending, including support for recursive
10347         iters.
10348         Add byte and named type support.
10349         Update everything to new marshalling formats.
10350         Add tests for new API.
10351
10352         * dbus/dbus-protocol.h:
10353         Remove old array types.
10354         Add types: BYTE, ARRAY, DICT, NAMED
10355
10356         * dbus/dbus-string.c:
10357         * dbus/dbus-sysdeps.c:
10358         Make parse_double locale safe.
10359
10360         * dbus/dbus-test-main.c:
10361         Call setlocale.
10362
10363         * dbus/dbus-test.c:
10364         Kill dict test
10365
10366         * doc/dbus-specification.sgml:
10367         Update spec
10368
10369         * test/data/incomplete-messages/missing-body.message:
10370         * test/data/invalid-messages/bad-boolean.message:
10371         * test/data/invalid-messages/bad-boolean-array.message:
10372         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10373         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10374         * test/data/invalid-messages/too-short-dict.message:
10375         * test/data/valid-messages/dict-simple.message:
10376         * test/data/valid-messages/dict.message:
10377         * test/data/valid-messages/emptiness.message:
10378         * test/data/valid-messages/lots-of-arguments.message:
10379         * test/data/valid-messages/no-padding.message:
10380         * test/data/valid-messages/recursive-types.message:
10381         Add missing NAME fields
10382         Fix up dicts & arrays
10383
10384         * test/data/invalid-messages/dict-with-nil-value.message:
10385         Removed, this is not invalid anymore.
10386
10387         * test/data/valid-messages/recursive-types.message:
10388         Add new test for deeply recursive types.
10389
10390 2003-04-07  Havoc Pennington  <hp@pobox.com>
10391
10392         * bus/driver.c (bus_driver_handle_acquire_service): return an
10393         error if you try to acquire a service that starts with ':'
10394
10395 2003-04-07  Havoc Pennington  <hp@redhat.com>
10396
10397         * doc/dbus-specification.sgml: require that base service names
10398         start with ':' and that the base service is created/deleted
10399         as first and last things a connection does on the bus
10400
10401         * bus/dispatch.c (check_existent_service_activation): lots more
10402         work on the activation test; it doesn't fully pass yet...
10403
10404         * test/test-service.c (main): fix so we don't memleak the
10405         connection to the message bus
10406         (filter_func): accept a message asking us to exit
10407
10408 2003-04-06  Havoc Pennington  <hp@pobox.com>
10409
10410         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10411         from Colin Walters
10412
10413         * configure.in: fixes to Qt detection from Colin Walters
10414
10415         * doc/Makefile.am: Only remove generated docbook dirs if they
10416         exist, from Colin Walters
10417
10418         * dbus/dbus-bus.c: change how we set well-known connections to
10419         NULL, so that it works if a single connection is stored in
10420         two well-known array slots.
10421
10422         * test/Makefile.am: remove a lot of stuff that isn't immediately
10423         useful, it's in CVS history if we want it.
10424
10425         * test/test-service.c: use dbus-mainloop instead of that
10426         watch.[hc] crack
10427
10428 2003-04-06  Havoc Pennington  <hp@pobox.com>
10429
10430         * dbus/Makefile.am: split lists of sources into stuff that goes in
10431         the library, util functions that go in the lib and are also used
10432         elsewhere, and util functions that are used in tests/daemon but
10433         don't go in the lib.
10434
10435         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10436         here so it can be used in test binaries also
10437
10438 2003-04-06  Havoc Pennington  <hp@pobox.com>
10439
10440         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10441         here in the parent process, so we can return an error if it
10442         fails. Also, move some of the code into the child so the parent
10443         is less hosed if we fail midway through.
10444
10445         * bus/bus.c (bus_context_new): move pidfile detection further up
10446         in the function, before we start overwriting sockets and such.
10447
10448         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10449
10450         * configure.in: add --with-system-pid-file and --with-system-socket
10451
10452 2003-04-06  Colin Walters  <walters@verbum.org>
10453
10454         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10455
10456         * bus/system.conf.in: Declare a pidfile.
10457
10458         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10459         create one (if appropriate).
10460
10461         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10462         (struct BusConfigParser) [pidfile]: New.
10463         (element_type_to_name, merge_included, start_busconfig_child)
10464         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10465         (bus_config_parser_unref): Free it.
10466         (bus_config_parser_get_pidfile): New function.
10467
10468         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10469
10470         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10471
10472         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10473
10474         * dbus/dbus-sysdeps.h: Prototype it.
10475
10476 2003-04-06  Havoc Pennington  <hp@pobox.com>
10477
10478         * bus/bus.c (bus_context_new): print the address in here, rather
10479         than in main(), because we need to do it before forking the daemon
10480
10481         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10482         on the service nonexistent error
10483
10484         * bus/driver.c (bus_driver_handle_acquire_service): set the
10485         sender on the AcquireService reply
10486
10487         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10488         server also listen on a UNIX socket so services can connect to it.
10489
10490 2003-04-06  Havoc Pennington  <hp@pobox.com>
10491
10492         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10493         so it detects deadlocks and also we actually init threads when
10494         debugging.
10495
10496 2003-04-06  Havoc Pennington  <hp@pobox.com>
10497
10498         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10499         save the domain socket name, and unlink it when we disconnect the
10500         server. Means that at least when we exit normally, we won't leave
10501         a bunch of junk in /tmp
10502
10503         * dbus/dbus-transport-unix.c
10504         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10505         memory management). (I was making a real change here but then
10506         didn't)
10507
10508 2003-04-06  Havoc Pennington  <hp@pobox.com>
10509
10510         * bus/bus.c (bus_context_new): fix wrong handling of
10511         server_data_slot_unref() in the error case.
10512
10513         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10514         "(condition) != 0" to _dbus_real_assert so that
10515         "_dbus_assert (pointer)" doesn't cause a warning
10516
10517         * bus/main.c (main): accept --print-address option to print out
10518         the message bus address
10519
10520         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10521
10522         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10523         "tmpdir" option to unix: address on client side
10524
10525         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10526         to unix: address
10527
10528         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10529         we can use to create sockets in the test suite.
10530
10531         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10532         cleanly. To be used for testing.
10533
10534         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10535
10536         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10537
10538         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10539         handle trying to call this when there's no servers active
10540
10541 2003-04-05  Havoc Pennington  <hp@pobox.com>
10542
10543         * NEWS: update
10544
10545         * configure.in: 0.8
10546
10547 2003-04-05  Havoc Pennington  <hp@pobox.com>
10548
10549         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10550         crash on startup. Need to get "try starting the daemon"
10551         in the test suite I guess. ;-)
10552
10553         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10554         tracked the number of open connections; it's better done in
10555         application-specific code as you want it to span all servers etc.
10556
10557 2003-04-05  Havoc Pennington  <hp@pobox.com>
10558
10559         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10560         patch from Colin Walters
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10565         reality; in fact multiple mechanisms are allowed.
10566
10567         * dbus/dbus-internals.c (_dbus_real_assert)
10568         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10569         _dbus_assert_not_reached() into functions, so that they don't show
10570         up in basic block counts for test coverage, and don't use up as
10571         much disk space. Does mean slower execution speed though, so
10572         assumes --disable-asserts is the normal production case.
10573
10574 2003-04-05  Havoc Pennington  <hp@pobox.com>
10575
10576         * test/Makefile.am (dist-hook): also dist *.in files
10577
10578         * NEWS: update
10579
10580         * configure.in: 0.7
10581
10582 2003-04-05  Havoc Pennington  <hp@pobox.com>
10583
10584         * dbus/dbus-string.c: docs warning
10585
10586         * dbus/dbus-spawn.c: missing docs
10587
10588         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10589
10590 2003-04-05  Havoc Pennington  <hp@pobox.com>
10591
10592         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10593         magic from GLib
10594
10595         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10596         to -1 once we've reaped the babysitter
10597         (_dbus_babysitter_handle_watch): do as much work as we can, not
10598         just one go of it
10599
10600         * bus/activation.c: add code using DBusBabysitter so that we
10601         handle it when a service fails to start up properly.
10602         (bus_activation_service_created): don't remove the activation
10603         entries as we go, just let them get removed when we free the pending
10604         activation. Unref reply messages after sending them.
10605
10606 2003-04-05  Havoc Pennington  <hp@pobox.com>
10607
10608         * test/decode-gcov.c (main): print per-directory stats in the report
10609
10610         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10611
10612 2003-04-05  Havoc Pennington  <hp@pobox.com>
10613
10614         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10615
10616         * test/decode-gcov.c: hack up a little program to suck data
10617         out of gcov files. Yes this is sort of silly.
10618
10619         * configure.in: define something in config.h and do an
10620         AM_CONDITIONAL when gcov is enabled
10621
10622 2003-04-04  Havoc Pennington  <hp@redhat.com>
10623
10624         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10625         return a "babysitter" object that is used to monitor the status of
10626         the spawned process and reap it when required.
10627
10628         * test/test-segfault.c, test/test-exit.c,
10629         test/test-sleep-forever.c: binaries that do various lame things,
10630         used in the test suite.
10631
10632         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10633
10634 2003-04-03  Havoc Pennington  <hp@pobox.com>
10635
10636         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10637         in preparation for modifying it, dbus-sysdeps is getting
10638         a bit unmanageable.
10639
10640 2003-04-03  Havoc Pennington  <hp@redhat.com>
10641
10642         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10643         have multiple ones
10644
10645         * bus/*.[hc]: adapt to mainloop change
10646
10647 2003-04-03  Havoc Pennington  <hp@redhat.com>
10648
10649         * bus/activation.c (load_directory): fix up memleaks
10650         (bus_activation_entry_free): free the entry
10651
10652         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10653         we get one from the message bus; fix memleaks.
10654
10655         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10656
10657 2003-04-03  Havoc Pennington  <hp@pobox.com>
10658
10659         * bus/config-parser.c (bus_config_parser_unref): free
10660         list of mechanisms, bug discovered by test suite enhancements
10661         (putting system.conf and session.conf into suite)
10662
10663         * test/Makefile.am, test/test-service.c: add placeholder for a
10664         test service that we'll activate as part of test suite. Doesn't
10665         do anything yet.
10666
10667         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10668         setting NULL value, and use system malloc not dbus_malloc()
10669         when we have unavoidable memleakage.
10670
10671         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10672         didn't work, and support DBUS_BUS_ACTIVATION.
10673
10674         * bus/activation.c (child_setup): pass our well-known bus type to
10675         the child
10676
10677         * bus/config-parser.c: support <type> to specify well-known type
10678
10679         * doc/dbus-specification.sgml: document the env variables to
10680         locate well-known buses and find service activator
10681
10682 2003-04-02  Havoc Pennington  <hp@redhat.com>
10683
10684         * test/Makefile.am (all-local): add a rule to copy tests to
10685         builddir, so we can have generated tests. Use this to remove the
10686         silly hack for testing system.conf and session.conf. Will use this
10687         shortly to generate .service files pointing to test binaries.
10688
10689 2003-04-02  Havoc Pennington  <hp@redhat.com>
10690
10691         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10692         current alloc and needed new length, not max of the doubled
10693         allocation and needed new length. Also, when building tests,
10694         don't do the double-allocation stuff, just realloc every time.
10695
10696 2003-04-02  Havoc Pennington  <hp@redhat.com>
10697
10698         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10699         in error messages
10700         (_dbus_string_get_dirname): new
10701         (_dbus_sysdeps_test): new
10702         (_dbus_directory_open): include dirnames in error messages
10703
10704         * bus/config-parser.c: interpret <include> and <includedir> and
10705         <servicedir> relative to config file location if the given
10706         filename is not absolute.
10707
10708         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10709
10710 2003-04-02  Havoc Pennington  <hp@redhat.com>
10711
10712         * bus/connection.c (bus_transaction_send_error_reply): set sender
10713         service for the error, and unref the reply on success
10714
10715         * bus/activation.c: convert to use BusTransaction so OOM can be
10716         handled correctly
10717         (bus_activation_service_created): set sender of the message
10718
10719 2003-04-01  Havoc Pennington  <hp@redhat.com>
10720
10721         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10722         <includedir> (at least mostly)
10723
10724         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10725         first, then the user ID
10726
10727 2003-04-01  Havoc Pennington  <hp@pobox.com>
10728
10729         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10730         function
10731
10732         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10733
10734         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10735
10736         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10737         socket 0777, and unlink any existing socket.
10738
10739         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10740         the configuration file so specifies; set up auth mechanism
10741         restrictions
10742
10743         * bus/config-parser.c (bus_config_parser_content): add support
10744         for <fork> option and fill in code for <auth>
10745
10746         * bus/system.conf.in: add <fork/> to default configuration,
10747         and limit auth mechanisms to EXTERNAL
10748
10749         * doc/config-file.txt (Elements): add <fork>
10750
10751         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10752         (_dbus_change_identity): new function
10753
10754 2003-03-31  Havoc Pennington  <hp@redhat.com>
10755
10756         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10757         (_dbus_listen_unix_socket): fix off-by-one error in null
10758         termination spotted by Nalin
10759
10760 2003-03-31  Havoc Pennington  <hp@redhat.com>
10761
10762         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10763         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10764         having a real home directory available.
10765
10766 2003-03-31  Havoc Pennington  <hp@redhat.com>
10767
10768         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10769
10770         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10771
10772         * configure.in: add support for specifying a style of init script
10773         to install
10774
10775 2003-03-31  Havoc Pennington  <hp@redhat.com>
10776
10777         Fix some annoying DBusString API and fix all affected code.
10778
10779         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10780         max_length argument
10781         (_dbus_string_get_data): change to return string instead of using
10782         an out param
10783         (_dbus_string_get_const_data): ditto
10784         (_dbus_string_get_data_len): ditto
10785         (_dbus_string_get_const_data_len): ditto
10786
10787 2003-03-31  Havoc Pennington  <hp@redhat.com>
10788
10789         * bus/main.c (main): fix up the command line arguments to be nicer
10790
10791 2003-03-31  Havoc Pennington  <hp@redhat.com>
10792
10793         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10794         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10795         final location that lands in the config file
10796
10797         * bus/config-loader-expat.c (bus_config_load): fix type of
10798         XML_Parser variable
10799
10800         * doc/TODO: remove TODO item for dbus_bus_get()
10801
10802         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10803
10804 2003-03-31  Havoc Pennington  <hp@pobox.com>
10805
10806         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10807         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10808         argument since they are always client side
10809
10810         * dbus/dbus-server.c (dbus_server_get_address): new function
10811
10812         * bus/main.c (main): take the configuration file as an argument.
10813
10814         * test/data/valid-config-files/debug-allow-all.conf: new file to
10815         use with dispatch.c tests for example
10816
10817         * bus/test-main.c (main): require test data dir
10818
10819         * bus/bus.c (bus_context_new): change this to take a
10820         configuration file name as argument
10821
10822         * doc/config-file.txt (Elements): add <servicedir>
10823
10824         * bus/system.conf, bus/session.conf: new files
10825
10826         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10827         well-known socket if none set
10828
10829         * configure.in: create system.conf and session.conf
10830
10831 2003-03-30  Havoc Pennington  <hp@pobox.com>
10832
10833         * bus/config-parser.c: hacking
10834
10835         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10836         to shut down, since it could cause weirdness with the DBusList
10837         lock
10838
10839         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10840         link-oriented stack routines
10841         (alloc_link): free the mempool if the first alloc from it fails
10842
10843         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10844
10845         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10846         from GLib
10847         (_dbus_string_skip_white): new
10848
10849         * doc/config-file.txt (Elements): add <includedir>
10850
10851 2003-03-28  Havoc Pennington  <hp@pobox.com>
10852
10853         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10854         (_dbus_string_copy_data): new functions
10855
10856 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10857
10858         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10859         * dbus/dbus-bus.h:
10860         Add dbus_bus_get.
10861
10862         * dbus/dbus-memory.c:
10863         Fix a doc comment.
10864
10865 2003-03-28  Havoc Pennington  <hp@pobox.com>
10866
10867         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10868         I think it may have just been superstition. Not sure.
10869
10870         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10871         failures that were not being handled.
10872
10873         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10874
10875         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10876         row that will fail on out-of-memory.
10877
10878         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10879         function for testing out-of-memory handling.
10880
10881         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10882         allocation functions, they do map exactly to the expat ones.
10883
10884 2003-03-27  Havoc Pennington  <hp@redhat.com>
10885
10886         * bus/config-loader-libxml.c (bus_config_load): add another error
10887         check
10888
10889 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10890
10891         * doc/TODO:
10892         Add note about automatic service activation.
10893
10894         * doc/dbus-specification.sgml:
10895         Rename the specification and clarify a few things.
10896
10897 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10898
10899         * Doxyfile.in:
10900         * dbus/dbus-address.c:
10901         * dbus/dbus-dict.c:
10902         * dbus/dbus-marshal.c:
10903         * dbus/dbus-server-debug-pipe.c:
10904         * dbus/dbus-transport-unix.c:
10905         Fix documentation warnings.
10906
10907 2003-03-26  Havoc Pennington  <hp@pobox.com>
10908
10909         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10910         after every test so it's quick and easy to see which leaked, and
10911         so we test multiple dbus_shutdown() calls
10912
10913         * configure.in: change configure.in XML stuff to also support
10914         expat
10915
10916         * config-loader-libxml.c: some hacking
10917
10918         * config-loader-expat.c: some hacking
10919
10920         * config-parser.c: some hacking, plus tests
10921
10922 2003-03-25  Havoc Pennington  <hp@redhat.com>
10923
10924         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10925
10926         * configure.in: add --with-xml option to specify XML library,
10927         right now only libxml is supported.
10928
10929         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10930         nonworking code between home and work, still just stubs
10931
10932 2003-03-24  Havoc Pennington  <hp@redhat.com>
10933
10934         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10935         file
10936
10937         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10938         NULL argument for "message" if the error is a well-known one,
10939         fill in a generic message in this case.
10940
10941         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10942         favor of DBusError
10943
10944         * bus/test.c (bus_test_flush_bus): add
10945
10946         * bus/policy.c (bus_policy_test): test code stub
10947
10948 2003-03-24  Havoc Pennington  <hp@pobox.com>
10949
10950         * bus/connection.c (bus_connections_setup_connection): set up
10951         the "can this user connect" function, but it always returns
10952         TRUE until we have a config file parser so we can have a config
10953         file that allows connections.
10954
10955 2003-03-23  Havoc Pennington  <hp@pobox.com>
10956
10957         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10958         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10959         the mutex, so we can check for proper memory management
10960         and OOM handling.
10961
10962         * dbus/dbus-dataslot.c: remove the mutex from
10963         DBusDataSlotAllocator and lock it manually when using it,
10964         to simplify fitting it into the global slots framework.
10965
10966         * dbus/dbus-threads.c (init_static_locks): rework how we're
10967         handling global locks so they are easily shut down.
10968
10969         * bus/policy.c (bus_policy_append_rule): fix
10970
10971         * bus/test-main.c (main): check for memleaks
10972
10973         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10974         test suite check for memleaks
10975
10976         * dbus/dbus-memory.c: add support in test mode for tracking
10977         number of outstanding blocks
10978
10979 2003-03-23  Havoc Pennington  <hp@pobox.com>
10980
10981         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10982         policies code
10983
10984         * dbus/dbus-hash.h: add ULONG hash keys
10985
10986         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10987         (_dbus_get_group_id): new function
10988
10989 2003-03-20  Havoc Pennington  <hp@redhat.com>
10990
10991         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10992         new function
10993         (dbus_connection_get_unix_user): new function
10994
10995 2003-03-20  Havoc Pennington  <hp@pobox.com>
10996
10997         * bus/connection.c (bus_connection_send_oom_error): assert that
10998         message has a sender
10999         (connection_execute_transaction): ditto
11000         (bus_connection_preallocate_oom_error): fix to set the sender, and
11001         set recipient to the destination service, not the bus driver
11002
11003         * bus/policy.c: hacking
11004
11005         * dbus/dbus-message.c (dbus_message_service_is): new function
11006         (dbus_message_sender_is): new
11007
11008 2003-03-19  Havoc Pennington  <hp@redhat.com>
11009
11010         * bus/policy.c: start sketching code for policy restrictions on
11011         what connections can do.
11012
11013 2003-03-18  Havoc Pennington  <hp@redhat.com>
11014
11015         * doc/TODO: some notes on high-level todo items. Little nitpick
11016         stuff is all in @todo, so no need to add it here.
11017
11018         * doc/config-file.txt: some notes on how config file might look
11019
11020 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11021
11022         * configure.in: 0.6
11023
11024         * NEWS: Update.
11025
11026 2003-03-17  Havoc Pennington  <hp@redhat.com>
11027
11028         * dbus/dbus-internals.h: add gcc attributes so that
11029         our printf-style functions warn on bad arguments to
11030         format
11031
11032         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11033         format bug
11034
11035         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11036         printf format bug
11037
11038 2003-03-17  Havoc Pennington  <hp@redhat.com>
11039
11040         * bus/test-main.c (main): make it print something as it runs
11041         so make check doesn't look stuck
11042
11043         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11044         from CVS, now obsolete
11045
11046 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11047
11048         * bus/dispatch.c: (bus_dispatch):
11049         Refetch the service name since it may have been reallocated
11050         when dbus_message_set_sender was called.
11051
11052         * dbus/dbus-sysdeps.c: (_dbus_accept):
11053         Add address and address length variables and use them to stop
11054         valgrind from complaining.
11055
11056 2003-03-17  Havoc Pennington  <hp@pobox.com>
11057
11058         All tests pass, no memleaks, no valgrind complaints.
11059
11060         * bus/test.c: refcount handler_slot
11061
11062         * bus/connection.c (bus_connections_new): refcount
11063         connection_data_slot
11064
11065         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11066         bytes so that auth scripts pass.
11067
11068         * bus/dispatch.c: init message_handler_slot so it gets allocated
11069         properly
11070
11071         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11072
11073         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11074         dealloc server_pipe_hash when no longer used for benefit of
11075         leak checking
11076
11077         * dbus/dbus-auth.c (process_command): memleak fix
11078
11079         * bus/dispatch.c (check_hello_message): memleak fix
11080
11081 2003-03-16  Havoc Pennington  <hp@pobox.com>
11082
11083         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11084
11085 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11086
11087         * bus/activation.c (bus_activation_activate_service): Append
11088         the pending activation entry to the list of pending activations.
11089
11090 2003-03-16  Havoc Pennington  <hp@pobox.com>
11091
11092         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11093         connections
11094
11095         * dbus/dbus-address.c (create_entry): fix OOM handling when
11096         failing to alloc entry->method
11097
11098 2003-03-16  Havoc Pennington  <hp@pobox.com>
11099
11100         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11101         the watch
11102
11103         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11104         add some missing dbus_set_result
11105
11106         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11107         alloc the DBusMessageHandler
11108
11109         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11110         the transport here, since we call this from the finalizer; it
11111         resulted in a double-finalize.
11112
11113         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11114         where we tried to use transport->connection that was NULL,
11115         happened when transport was disconnected early on due to OOM
11116
11117         * bus/*.c: adapt to handle OOM for watches/timeouts
11118
11119         * dbus/dbus-transport-unix.c: port to handle OOM during
11120         watch handling
11121
11122         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11123         reference to unused bytes instead of a copy
11124
11125         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11126         out of memory
11127
11128         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11129         FALSE on OOM
11130
11131         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11132         of memory
11133
11134 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11135
11136         * doc/dbus-specification.sgml:
11137         Document reply message for ActivateService.
11138
11139 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11140
11141         * bus/activation.c: (bus_pending_activation_entry_free),
11142         (bus_pending_activation_free), (bus_activation_new),
11143         (bus_activation_unref), (bus_activation_service_created),
11144         (bus_activation_activate_service):
11145         * bus/activation.h:
11146         * bus/bus.c: (bus_context_new):
11147         * bus/desktop-file.c: (new_section):
11148         * bus/driver.c: (bus_driver_send_service_deleted),
11149         (bus_driver_handle_activate_service):
11150         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11151         * bus/services.h:
11152         * dbus/dbus-connection.c:
11153         (dbus_connection_send_with_reply_and_block):
11154         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11155         * dbus/dbus-protocol.h:
11156         Make activation work better. Now pending activations will be queued
11157         and the daemon won't try to activate services that are already registered.
11158
11159 2003-03-16  Havoc Pennington  <hp@pobox.com>
11160
11161         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11162         connection data
11163
11164         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11165         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11166
11167 2003-03-16  Havoc Pennington  <hp@pobox.com>
11168
11169         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11170         this. always run the test suite before commit...
11171
11172         * bus/*: adapt to DBusConnection API changes
11173
11174         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11175         requires renaming stuff to avoid dbus_connection_dispatch name
11176         conflict.
11177
11178         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11179         function
11180
11181         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11182         separate from _dbus_message_loader_return_buffer()
11183
11184         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11185         this, because it's now always broken to use; the number of
11186         messages in queue vs. the number still buffered by the message
11187         loader is undefined/meaningless. Should use
11188         dbus_connection_get_dispatch_state().
11189         (dbus_connection_dispatch): rename from
11190         dbus_connection_dispatch_message
11191
11192 2003-03-16  Havoc Pennington  <hp@pobox.com>
11193
11194         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11195         implementation
11196
11197 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11198
11199         * dbus/dbus-connection.c:
11200         (dbus_connection_send_with_reply_and_block):
11201         Decrease connection->n_incoming when removing an entry
11202         from the list.
11203         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11204         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11205         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11206         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11207         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11208         (dbus_dict_get_byte_array):
11209         Handle NULL arrays and strings. Also add support for byte arrays.
11210
11211         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11212         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11213         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11214         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11215         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11216         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11217         * dbus/dbus-marshal.h:
11218         Add support for marshalling and demarshalling empty arrays and strings.
11219
11220         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11221         (dbus_message_append_string_array),
11222         (dbus_message_iter_get_boolean),
11223         (dbus_message_iter_get_boolean_array),
11224         (dbus_message_iter_get_int32_array),
11225         (dbus_message_iter_get_uint32_array),
11226         (dbus_message_iter_get_double_array),
11227         (dbus_message_iter_get_byte_array),
11228         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11229         (check_message_handling):
11230         Add support for getting empty arrays and dicts.
11231
11232         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11233         Don't do any validation at all for now, that's better than just checking
11234         for ASCII.
11235
11236         * test/data/valid-messages/emptiness.message:
11237         New test message with lots of empty arrays.
11238
11239 2003-03-16  Havoc Pennington  <hp@pobox.com>
11240
11241         * dbus/dbus-connection.c
11242         (_dbus_connection_queue_received_message_link): new function that
11243         can't fail due to OOM
11244
11245         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11246         new function pops a message together with a list link
11247         containing it.
11248
11249         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11250         message queuing functions to avoid needing to alloc memory
11251
11252 2003-03-16  Havoc Pennington  <hp@pobox.com>
11253
11254         Oops - test code was only testing failure of around 30 of the
11255         mallocs in the test path, but it turns out there are 500+
11256         mallocs. I believe this was due to misguided linking setup such
11257         that there was one copy of dbus_malloc etc. in the daemon and one
11258         in the shared lib, and only daemon mallocs were tested. In any
11259         case, the test case now tests all 500+ mallocs, and doesn't pass
11260         yet, though there are lots of fixes in this patch.
11261
11262         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11263         this so that it doesn't need to allocate memory, since it
11264         has no way of indicating failure due to OOM (and would be
11265         annoying if it did).
11266
11267         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11268
11269         * bus/Makefile.am: rearrange to create two self-contained
11270         libraries, to avoid having libraries with overlapping symbols.
11271         that was resulting in weirdness, e.g. I'm pretty sure there
11272         were two copies of global static variables.
11273
11274         * dbus/dbus-internals.c: move the malloc debug stuff to
11275         dbus-memory.c
11276
11277         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11278         empty.
11279
11280         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11281
11282         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11283         on failure.
11284
11285         * bus/dispatch.c (bus_dispatch_add_connection): free
11286         message_handler_slot when no longer using it, so
11287         memory leak checkers are happy for the test suite.
11288
11289         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11290
11291         * bus/bus.c (new_connection_callback): disconnect in here if
11292         bus_connections_setup_connection fails.
11293
11294         * bus/connection.c (bus_connections_unref): fix to free the
11295         connections
11296         (bus_connections_setup_connection): if this fails, don't
11297         disconnect the connection, just be sure there are no side
11298         effects.
11299
11300         * dbus/dbus-string.c (undo_alignment): unbreak this
11301
11302         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11303         leaking
11304         (_dbus_auth_new): fix the order in which we free strings
11305         on OOM failure
11306
11307         * bus/connection.c (bus_connection_disconnected): fix to
11308         not send ServiceDeleted multiple times in case of memory
11309         allocation failure
11310
11311         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11312         get the base service name
11313         (dbus_bus_register_client): don't return base service name,
11314         instead store it on the DBusConnection and have an accessor
11315         function for it.
11316         (dbus_bus_register_client): rename dbus_bus_register()
11317
11318         * bus/dispatch.c (check_hello_message): verify that other
11319         connections on the bus also got the correct results, not
11320         just the one sending hello
11321
11322 2003-03-15  Havoc Pennington  <hp@pobox.com>
11323
11324         Make it pass the Hello handling test including all OOM codepaths.
11325         Now to do other messages...
11326
11327         * bus/services.c (bus_service_remove_owner): fix crash when
11328         removing owner from an empty list of owners
11329         (bus_registry_ensure): don't leave service in the list of
11330         a connection's owned services if we fail to put the service
11331         in the hash table.
11332
11333         * bus/connection.c (bus_connection_preallocate_oom_error): set
11334         error flag on the OOM error.
11335
11336         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11337         handle _dbus_transport_set_connection failure
11338
11339         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11340         to create watches up front and simply enable/disable them as
11341         needed.
11342         (unix_connection_set): this can now fail on OOM
11343
11344         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11345         of enabling/disabling a watch or timeout.
11346
11347         * bus/loop.c (bus_loop_iterate): don't touch disabled
11348         watches/timeouts
11349
11350         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11351
11352 2003-03-15  Havoc Pennington  <hp@pobox.com>
11353
11354         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11355         write useful test code, after all that futzing around ;-)
11356
11357         Test does not yet pass because we can't handle OOM in
11358         _dbus_transport_messages_pending (basically,
11359         dbus_connection_preallocate_send() does not prealloc the write
11360         watch). To fix this, I think we need to add new stuff to
11361         set_watch_functions, namely a SetEnabled function so we can alloc
11362         the watch earlier, then enable it later.
11363
11364         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11365         dbus-memory.c to the convenience lib
11366
11367         * bus/test.c: rename some static functions to keep them clearly
11368         distinct from stuff in connection.c. Handle client disconnection.
11369
11370 2003-03-14  Havoc Pennington  <hp@pobox.com>
11371
11372         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11373         transport, tests more of the real codepath. Set up clients
11374         with bus_setup_debug_client.
11375
11376         * bus/test.c (bus_setup_debug_client): function to set up debug
11377         "clients" on the main loop
11378
11379         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11380         support
11381
11382         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11383         server type
11384
11385         * dbus/dbus-server-debug.c: support a debug server based on pipes
11386
11387         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11388         (_dbus_close): new function
11389
11390         * configure.in: check for socketpair
11391
11392 2003-03-14  Havoc Pennington  <hp@redhat.com>
11393
11394         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11395         cheesy hack
11396
11397         * dbus/dbus-transport-debug.c: rework this a good bit to be
11398         less complicated. hopefully still works.
11399
11400         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11401         manually
11402
11403         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11404         after running it
11405
11406         * dbus/dbus-message.c (dbus_message_copy): rename from
11407         dbus_message_new_from_message, fix it up to copy
11408         all the message fields, add test case
11409
11410         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11411         not quite passing yet
11412
11413 2003-03-14  Havoc Pennington  <hp@pobox.com>
11414
11415         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11416         until no work remains" in test code. (the large diff here
11417         is just code movement, no actual changes)
11418
11419         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11420         1, no point waiting around for test code.
11421         (_dbus_server_debug_accept_transport): unref the timeout
11422         after adding it (right?)
11423
11424         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11425
11426 2003-03-13  Havoc Pennington  <hp@redhat.com>
11427
11428         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11429         out of memory
11430
11431         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11432         of memory
11433
11434         * dbus/dbus-connection.h: Make AddWatchFunction and
11435         AddTimeoutFunction return a bool so they can fail on out-of-memory
11436
11437         * bus/bus.c (bus_context_new): set up timeout handlers
11438
11439         * bus/connection.c (bus_connections_setup_connection): set up
11440         timeout handlers
11441
11442         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11443         can fail
11444
11445         * bus/bus.c (bus_context_new): adapt to changes
11446
11447         * bus/connection.c: adapt to changes
11448
11449         * test/watch.c: adapt to DBusWatch changes
11450
11451         * bus/dispatch.c (bus_dispatch_test): started adding this but
11452         didn't finish
11453
11454 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11455
11456         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11457
11458 2003-03-13  Havoc Pennington  <hp@pobox.com>
11459
11460         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11461         set up a test framework as for the library
11462
11463 2003-03-12  Havoc Pennington  <hp@pobox.com>
11464
11465         Throughout: purge global variables, introduce BusActivation,
11466         BusConnections, BusRegistry, etc. objects instead.
11467
11468         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11469         message bus object
11470
11471         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11472         going to redo this a bit differently I think
11473
11474 2003-03-12  Havoc Pennington  <hp@redhat.com>
11475
11476         Mega-patch that gets the message bus daemon initially handling
11477         out-of-memory. Work still needed. Also lots of random
11478         moving stuff to DBusError instead of ResultCode.
11479
11480         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11481
11482         * dbus/dbus-connection.c
11483         (dbus_connection_send_with_reply_and_block): use DBusError
11484
11485         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11486         DBusResultCode
11487
11488         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11489         code here, as the only failure possible is OOM.
11490
11491         * bus/connection.c (bus_connection_disconnect):
11492         rename bus_connection_disconnected as it's a notification only
11493
11494         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11495         "name" on get_args failure, should be done by get_args;
11496         don't disconnect client for bad args, just return an error.
11497         (bus_driver_handle_service_exists): ditto
11498
11499         * bus/services.c (bus_services_list): NULL-terminate returned array
11500
11501         * bus/driver.c (bus_driver_send_service_lost)
11502         (bus_driver_send_service_acquired): send messages from driver to a
11503         specific client to the client's unique name, not to the broadcast
11504         service.
11505
11506         * dbus/dbus-message.c (decode_header_data): reject messages that
11507         contain no name field
11508         (_dbus_message_get_client_serial): rename to
11509         dbus_message_get_serial and make public
11510         (_dbus_message_set_serial): rename from set_client_serial
11511         (_dbus_message_set_reply_serial): make public
11512         (_dbus_message_get_reply_serial): make public
11513
11514         * bus/connection.c (bus_connection_foreach): allow stopping
11515         iteration by returning FALSE from foreach function.
11516
11517         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11518         (dbus_connection_free_preallocated_send)
11519         (dbus_connection_preallocate_send): new API for sending a message
11520         without possibility of malloc failure.
11521         (dbus_connection_send_message): rename to just
11522         dbus_connection_send (and same for whole function family)
11523
11524         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11525
11526         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11527
11528         * bus/activation.c: handle/return errors
11529
11530         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11531
11532         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11533         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11534         (_dbus_result_from_errno): move to this file
11535
11536 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11537
11538         * dbus/dbus-marshal.c:
11539         (_dbus_marshal_set_string):
11540         Take a length argument so we can marshal the correct string
11541         length.
11542
11543         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11544         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11545         (_dbus_marshal_test):
11546         * dbus/dbus-marshal.h:
11547         Add support for marshalling and demarshalling dicts.
11548
11549         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11550         Add support for TYPE DICT.
11551
11552         * dbus/dbus-message.c: (set_string_field):
11553         Adjust header padding.
11554
11555         (dbus_message_append_args_valist), (dbus_message_append_dict),
11556         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11557         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11558         (check_message_handling), (check_have_valid_message):
11559         * dbus/dbus-message.h:
11560         Add functions for setting and getting dicts.
11561
11562         * dbus/dbus-protocol.h:
11563         Add DBUS_TYPE_DICT.
11564
11565         * dbus/dbus.h:
11566         Add dbus-dict.h
11567
11568         * doc/dbus-specification.sgml:
11569         Add information about how dicts are marshalled.
11570
11571         * test/data/invalid-messages/dict-with-nil-value.message:
11572         * test/data/invalid-messages/too-short-dict.message:
11573         * test/data/valid-messages/dict-simple.message:
11574         * test/data/valid-messages/dict.message:
11575         Add sample messages containing dicts.
11576
11577 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11578
11579         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11580
11581 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11582
11583         * dbus/Makefile.am:
11584         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11585         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11586         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11587         (dbus_dict_set_double), (dbus_dict_set_string),
11588         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11589         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11590         (dbus_dict_set_string_array), (_dbus_dict_test):
11591         * dbus/dbus-dict.h:
11592         Fix according to comments from Havoc.
11593
11594 2003-03-06  Michael Meeks  <michael@server.home>
11595
11596         * configure.in: if we don't have kde-config, disable have_qt.
11597
11598 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * dbus/Makefile.am:
11601         Add dbus-dict.[ch]
11602
11603         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11604         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11605         (dbus_dict_remove), (dbus_dict_get_value_type),
11606         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11607         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11608         (dbus_dict_put_double), (dbus_dict_put_string),
11609         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11610         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11611         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11612         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11613         (dbus_dict_get_double), (dbus_dict_get_string),
11614         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11615         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11616         (dbus_dict_get_string_array), (_dbus_dict_test):
11617         * dbus/dbus-dict.h:
11618         Add DBusDict implementation
11619
11620         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11621         * dbus/dbus-test.h:
11622         Add _dbus_dict_test
11623
11624 2003-03-04  Havoc Pennington  <hp@pobox.com>
11625
11626         * test/data/auth/*: adapt to changes
11627
11628         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11629         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11630         userid
11631
11632         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11633         more stuff from being in a context name, to make the protocol
11634         simpler to deal with
11635
11636         * dbus/dbus-errors.c (dbus_error_has_name): new function
11637         (dbus_error_is_set): new function
11638
11639         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11640         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11641
11642         * dbus/dbus-connection.c (dbus_connection_flush): also read
11643         messages during a flush operation
11644
11645         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11646
11647 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11648
11649         * configure.in: Check for gethostbyname on Solaris.
11650
11651         * dbus/dbus-transport.c: (_dbus_transport_open):
11652         Remove duplicate "tcp" entry.
11653
11654         * doc/dbus-specification.sgml:
11655         Clarify some things.
11656
11657 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11658
11659         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11660         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11661         (_dbus_keyring_test):
11662         * dbus/dbus-md5.c: (_dbus_md5_compute):
11663         * dbus/dbus-sha.c: (_dbus_sha_compute):
11664         Plug memory leaks.
11665
11666 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11667
11668         * README: Add some things.
11669
11670 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11671
11672         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11673         after case DBUS_TYPE_BOOELAN.
11674
11675 2003-03-02  Havoc Pennington  <hp@pobox.com>
11676
11677         * test/break-loader.c (randomly_set_extreme_ints): add test that
11678         sets really huge and small integers
11679
11680         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11681         that length of boolean array fits in the string, and that
11682         string has room for boolean value in single-bool case.
11683
11684         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11685         optional value to "ALIGN" command which is what to fill the
11686         alignment with.
11687
11688         * test/data/valid-messages/no-padding.message: add regression
11689         test for the message padding problem
11690
11691 2003-03-02  Havoc Pennington  <hp@pobox.com>
11692
11693         * dbus/dbus-message.c (decode_header_data): fix to always init
11694         message_padding, from Benjamin Dauvergne
11695
11696 2003-03-02  Havoc Pennington  <hp@pobox.com>
11697
11698         * configure.in: 0.5
11699
11700         * NEWS: Update.
11701
11702 2003-03-01  Joe Shaw  <joe@assbarn.com>
11703
11704         * configure.in: Check for "struct cmsgcred" and try to access its
11705         members for BSD-like unices.
11706
11707         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11708         _dbus_read_credentials_unix_socket().
11709         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11710         read() for reading the credential byte off the unix socket.  Use
11711         struct cmsgcred on systems that support it.
11712
11713 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11714
11715         * glib/Makefile.am:
11716         * configure.in:
11717         Make gthreads-2.0 dependency optional. Don't build thread test if
11718         its not found.
11719
11720 2003-02-27  Havoc Pennington  <hp@pobox.com>
11721
11722         * dbus/dbus-connection.c
11723         (dbus_connection_send_message_with_reply_and_block): fix doh!
11724         doh! doh! bug that resulted in never removing a reply from the
11725         queue, no wonder we called get_reply_serial so much ;-)
11726
11727         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11728         and client serial instead of demarshaling them every time
11729
11730 2003-02-27  Havoc Pennington  <hp@pobox.com>
11731
11732         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11733         more inlined, using dbus-string-private.h, speeds things up
11734         substantially
11735
11736         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11737         when freeing the string
11738         (_dbus_string_steal_data): fix for align offset
11739         (undo_alignment): new function
11740
11741 2003-02-26  Havoc Pennington  <hp@redhat.com>
11742
11743         All kinds of audit fixes from Owen, plus initial attempt to
11744         handle unaligned memory returned from malloc.
11745
11746         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11747         leave room for align_offset and nul byte
11748         (fixup_alignment): function to track an align_offset and
11749         ensure real->str is aligned
11750         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11751         to allow a nul byte plus align offset
11752         (_dbus_string_lock): fix overflow issue
11753         (_dbus_string_init_const_len): add assertions on sanity of len,
11754         assign allocated to be ALLOCATION_PADDING larger than len
11755         (set_length): fixup the overflow handling
11756         (_dbus_string_get_data_len): fix overflow in assertion
11757         (open_gap): detect overflow in size of gap to be opened
11758         (_dbus_string_lengthen): add overflow check
11759         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11760         (_dbus_string_append): add overflow check
11761         (_dbus_string_append_unichar): overflow
11762         (_dbus_string_delete): fix overflow in assertion
11763         (_dbus_string_copy_len): overflow in assertion
11764         (_dbus_string_replace_len): overflows in assertions
11765         (_dbus_string_find): change to implement in terms of
11766         _dbus_string_find_to
11767         (_dbus_string_find_to): assorted fixage
11768         (_dbus_string_equal_c_str): assert c_str != NULL,
11769         fix logic so the function works
11770         (_dbus_string_ends_with_c_str): fix overflow thingy
11771         (_dbus_string_base64_encode): overflow fix
11772         (_dbus_string_validate_ascii): overflow
11773         (_dbus_string_validate_nul): overflow
11774
11775 2003-02-26  Havoc Pennington  <hp@redhat.com>
11776
11777         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11778
11779 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11780
11781         * configure.in:
11782         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11783
11784         * dbus/dbus-connection.c:
11785         * dbus/dbus-connection.h:
11786         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11787         Add dbus_connection_set_wakeup_main_function and use it when queueing
11788         incoming and outgoing messages.
11789
11790
11791         * dbus/dbus-dataslot.c:
11792         Threadsafe usage of DBusDataSlotAllocator
11793
11794         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11795         dbus_new can fail.
11796
11797         * dbus/dbus-server-unix.c:
11798         Add todo comment
11799
11800         * glib/dbus-gmain.c:
11801         Implement the new wakeup functions for glib.
11802
11803         * glib/Makefile.am:
11804         * glib/test-thread-client.c:
11805         * glib/test-thread-server.c:
11806         * glib/test-thread.h:
11807         Initial cut at some thread test code. Not really done yet.
11808
11809 2003-02-26  Havoc Pennington  <hp@pobox.com>
11810
11811         * dbus/dbus-connection.c
11812         (dbus_connection_send_message_with_reply_and_block): fix crash
11813         where we ref'd the outgoing message instead of the returned reply
11814
11815         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11816         at the end of this function, so if we didn't need to read for
11817         authentication, we reinstall it for receiving messages
11818
11819         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11820         a NULL sender for peer-to-peer case
11821
11822         * dbus/dbus-transport-unix.c (check_read_watch): handle
11823         !authenticated case correctly
11824
11825         * glib/dbus-gmain.c: add support for DBusServer
11826
11827         * dbus/dbus-server.c: add data slot support
11828
11829         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11830         return values and handle errors
11831
11832         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11833         DBusConnection
11834
11835         * Doxyfile.in (INPUT): add glib subdir
11836
11837         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11838         setup_with_g_main instead of hookup_with_g_main; write docs
11839
11840 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11841
11842         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11843         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11844         * dbus/dbus-message.c: (dbus_message_append_boolean),
11845         (dbus_message_append_boolean_array),
11846         (dbus_message_get_args_valist), (_dbus_message_test):
11847         * dbus/dbus-message.h:
11848         * doc/dbus-specification.sgml:
11849         Various fixes as pointed out by Havoc.
11850
11851         * test/data/invalid-messages/bad-boolean-array.message:
11852         * test/data/invalid-messages/bad-boolean.message:
11853         Add invalid boolean value test cases.
11854
11855 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11856
11857         * dbus/dbus-internals.c: (_dbus_type_to_string):
11858         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11859         (_dbus_marshal_validate_arg):
11860         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11861         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11862         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11863         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11864         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11865         (dbus_message_iter_get_double),
11866         (dbus_message_iter_get_boolean_array), (message_iter_test):
11867         * dbus/dbus-message.h:
11868         * dbus/dbus-protocol.h:
11869         * doc/dbus-specification.sgml:
11870         * test/data/valid-messages/lots-of-arguments.message:
11871         Add support for boolean and boolean array types.
11872
11873 2003-02-23  Havoc Pennington  <hp@pobox.com>
11874
11875         * dbus/dbus-keyring.c: finish most of this implementation and
11876         simple unit test
11877
11878         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11879         these barf if the error isn't cleared to NULL
11880
11881         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11882         (_dbus_create_directory): new function
11883
11884         * dbus/dbus-errors.c (dbus_set_error): fix warning
11885
11886         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11887         (_dbus_string_hex_decode): new function
11888         (test_hex_roundtrip): test code
11889
11890         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11891
11892         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11893
11894         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11895         the save-to-temp/rename trick to atomically write the new file
11896         (_dbus_string_parse_uint): new function
11897
11898 2003-02-22  Havoc Pennington  <hp@pobox.com>
11899
11900         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11901
11902 2003-02-22  Havoc Pennington  <hp@pobox.com>
11903
11904         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11905         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11906
11907         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11908
11909         * dbus/test/data/sha-1: add US government test suite for SHA-1
11910
11911 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11912
11913         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11914         Make string arrays NULL-terminated.
11915
11916         * dbus/dbus-memory.c: (dbus_free_string_array):
11917         * dbus/dbus-memory.h:
11918         New function for freeing NULL-terminated string arrays.
11919
11920         * dbus/dbus-message-builder.c: (append_quoted_string),
11921         (_dbus_message_data_load):
11922         Add support for array types.
11923
11924         * dbus/dbus-message.c: (check_message_handling):
11925         Add more types as test cases.
11926
11927         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11928         (_dbus_string_parse_double):
11929         Add the start offset to the end offset.
11930
11931         * test/data/valid-messages/lots-of-arguments.message:
11932         New test message with lots of arguments.
11933
11934 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11935
11936         * dbus/dbus-message.c: (dbus_message_append_nil),
11937         (dbus_message_append_int32), (dbus_message_append_uint32),
11938         (dbus_message_append_double), (dbus_message_append_string),
11939         (dbus_message_append_int32_array),
11940         (dbus_message_append_uint32_array),
11941         (dbus_message_append_double_array),
11942         (dbus_message_append_byte_array),
11943         (dbus_message_append_string_array):
11944         Fix all out-of-memory handling in these functions.
11945
11946 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11947
11948         * dbus/dbus-message.c: (dbus_message_append_nil):
11949         Fix a silly.
11950
11951 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11952
11953         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11954         (dbus_message_append_nil), (dbus_message_append_int32_array),
11955         (dbus_message_append_uint32_array),
11956         (dbus_message_append_double_array),
11957         (dbus_message_append_byte_array),
11958         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11959         (dbus_message_iter_get_int32_array),
11960         (dbus_message_iter_get_uint32_array),
11961         (dbus_message_iter_get_double_array),
11962         (dbus_message_iter_get_byte_array),
11963         (dbus_message_iter_get_string_array):
11964
11965         * dbus/dbus-message.h:
11966         Add functions for appending and getting arrays.
11967
11968 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11969
11970         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11971         element size at least 8 bytes, fixes mempool tests on
11972         64-bit machines.
11973
11974 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11975
11976         * dbus/dbus-transport-unix.c (unix_do_iteration):
11977         Unlock the connection mutex during a blocking select call.
11978         Add todo about how we need a way to wake up the select.
11979
11980         * dbus/dbus-connection-internal.h:
11981         * dbus/dbus-connection.c:
11982         Add _dbus_connection_lock and _dbus_connection_unlock.
11983
11984 2003-02-19  Havoc Pennington  <hp@pobox.com>
11985
11986         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11987         Doxyfile.in, not Doxyfile
11988
11989         * dbus/dbus-keyring.c: do some hacking on this
11990
11991         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11992
11993         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11994         dbus_error_init
11995         (dbus_set_error): remove dbus_error_init, check for message ==
11996         NULL *before* we sprintf into it, and add @todo about including
11997         system headers in this file
11998
11999         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12000
12001         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12002
12003         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12004         get various bits of user information based on either username
12005         or user ID
12006         (_dbus_homedir_from_username): new function
12007
12008 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12009
12010         * configure.in:
12011         Add check for nonposix getpwnam_r
12012
12013         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12014         Align the pool element size to a sizeof (void *) boundary.
12015
12016         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12017         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12018         General Solaris fixes.
12019
12020         * test/data/valid-messages/simplest-manual.message:
12021         Explicitly state that we want little-endian packing.
12022
12023 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12024
12025         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12026
12027         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12028         Added to create a transport connecting using a tcp/ip socket.
12029
12030         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12031         to a tcp socket at given host and port.
12032         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12033         hostname and port.
12034
12035         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12036
12037         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12038         Added to create a server listening on a TCP/IP socket.
12039
12040 2003-02-19  Havoc Pennington  <hp@pobox.com>
12041
12042         Throughout: mop up all the Doxygen warnings and undocumented
12043         stuff.
12044
12045         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12046         to search any paths.
12047
12048         * dbus/dbus-threads.c: move global mutex initializers to
12049         dbus-internals.h, multiple prototypes was confusing doxygen
12050         besides being kind of ugly
12051
12052         * Doxyfile (PREDEFINED): have Doxygen define
12053         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12054         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12055         (do not abuse the feature! it's for stuff like the autogenerated
12056         macros in dbus-md5.c, not just for things you don't feel like
12057         documenting...)
12058
12059 2003-02-18  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-string.c (_dbus_string_zero): new function
12062
12063         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12064         wrap it in some dbus-friendly API
12065
12066         * dbus/dbus-types.h: add 16-bit types
12067
12068 2003-02-18  Joe Shaw  <joe@assbarn.com>
12069
12070         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12071         credentials from our currently running process.
12072         (get_word): Fix a buglet where we were copying the entire length
12073         instead of relative to our position.
12074
12075         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12076         keys on the stack... it's 640k of data.
12077
12078         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12079         read the credentials byte off the socket, even if we don't have
12080         SO_PEERCRED.
12081         (_dbus_poll): Implement poll() using select() for systems which
12082         don't have it.
12083
12084         * glib/test-dbus-glib.c (main): Print out an error if no
12085         parameters are given.
12086
12087         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12088         can fallback to a secondary auth mechanism if the first fails.
12089
12090 2003-02-18  Havoc Pennington  <hp@pobox.com>
12091
12092         * AUTHORS: add Alex
12093
12094 2003-02-17  Havoc Pennington  <hp@pobox.com>
12095
12096         * doc/dbus-specification.sgml: lots of cosmetic
12097         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12098         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12099         s/server/bus/ (except in authentication section). Add a section
12100         "Message Bus Message Routing"
12101
12102 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12103
12104         Release 0.4
12105
12106         * NEWS: Update
12107
12108 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12109
12110         * doc/dbus-specification.sgml:
12111         Specification updates.
12112
12113 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12114
12115         * bus/activation.c: (bus_activation_init), (child_setup),
12116         (bus_activation_activate_service):
12117         * bus/activation.h:
12118         * bus/main.c: (main):
12119         Set DBUS_ADDRESS environment variable.
12120
12121         * dbus/dbus-errors.c: (dbus_set_error):
12122         Don't use va_copy since that's a C99 feature.
12123
12124         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12125         (_dbus_spawn_async):
12126         * dbus/dbus-sysdeps.h:
12127         Add child_setup_func to _dbus_spawn_async.
12128
12129         * doc/dbus-specification.sgml:
12130         Update specification.
12131
12132         * test/spawn-test.c: (setup_func), (main):
12133         Fix test.
12134
12135 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12136
12137         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12138         Added todo.
12139
12140 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12141
12142         * doc/.cvsignore:
12143         * doc/Makefile.am:
12144         * doc/dbus-test-plan.sgml:
12145         Add test plan document.
12146
12147         * test/Makefile.am:
12148         Fix distcheck.
12149
12150 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12151
12152         * dbus/dbus-message.c: (decode_header_data),
12153         (_dbus_message_loader_return_buffer):
12154         Set the header padding amount when loading a message.
12155
12156 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12157
12158         * bus/dispatch.c: (send_one_message):
12159         Only send broadcast messages to registered connections.
12160
12161         * dbus/dbus-message.c: (dbus_message_name_is):
12162         * dbus/dbus-message.h:
12163         New convenience function.
12164
12165         * dbus/dbus-transport-debug.c: (do_reading):
12166         Only dispatch one message per run.
12167
12168         * test/Makefile.am:
12169         * test/bus-test.c: (new_connection_callback), (die),
12170         (test_hello_client1_handler), (test_hello_client2_handler),
12171         (test_hello_replies), (main):
12172
12173         * test/bus-test-loop.[ch]:
12174         Add these.
12175
12176 2003-02-16  Havoc Pennington  <hp@pobox.com>
12177
12178         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12179         backward conditional
12180
12181 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12182
12183         * dbus/dbus-connection.c:
12184         Implement sent_message_with_reply. (with_reply_and block is still
12185         busted).
12186         Made dispatch_message not lose message if OOM.
12187
12188         * dbus/dbus-errors.h:
12189         Add NoReply error (for reply timeouts).
12190
12191 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12192
12193         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12194         Actually free keys and values when destroying hashtable.
12195
12196 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12197
12198         * dbus/dbus-auth.c: (client_try_next_mechanism):
12199         Plug a leak.
12200
12201         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12202         Return TRUE if there's no thread implementation around.
12203
12204         * glib/dbus-gmain.c: (free_source),
12205         (dbus_connection_hookup_with_g_main):
12206         Make sure to remove the GSource when the connection is finalized.
12207
12208 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12209
12210         * bus/dispatch.c: (bus_dispatch_message_handler):
12211         * dbus/dbus-errors.h:
12212         Return an error if someone tries to send a message to a service
12213         that doesn't exist.
12214
12215 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12216
12217         * bus/activation.c: (load_directory), (bus_activation_init),
12218         (bus_activation_activate_service):
12219         * bus/activation.h:
12220         * bus/driver.c:
12221         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12222         More work on the activation handling.
12223
12224         * dbus/dbus-errors.h:
12225         Add some error messages
12226
12227         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12228         * dbus/dbus-message.h:
12229         New function that creates an error message.
12230
12231         * dbus/dbus-protocol.h:
12232         Add ACTIVATE_SERVER message.
12233
12234         * dbus/dbus-server-unix.c: (unix_handle_watch),
12235         (_dbus_server_new_for_domain_socket):
12236         Call _dbus_fd_set_close_on_exec.
12237
12238         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12239         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12240         (_dbus_fd_set_close_on_exec):
12241         * dbus/dbus-sysdeps.h:
12242         Add _dbus_fd_set_close_on exec function. Also add function that checks
12243         that all open fds are set to close-on-exec and warns otherwise.
12244
12245         * dbus/dbus-transport-unix.c:
12246         (_dbus_transport_new_for_domain_socket):
12247         Call _dbus_fd_set_close_on_exec.
12248
12249 2003-02-16  Havoc Pennington  <hp@pobox.com>
12250
12251         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12252         allow people to avoid setting SIGPIPE to SIG_IGN
12253         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12254         we've been asked not to
12255
12256 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12257
12258         * dbus/dbus-list.c: (_dbus_list_append_link),
12259         (_dbus_list_prepend_link):
12260         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12261         (dbus_realloc):
12262         Warning fixes.
12263
12264 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12265
12266         * bus/Makefile.am:
12267         * bus/activation.c: (bus_activation_entry_free),
12268         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12269         * bus/activation.h:
12270         * bus/main.c: (main):
12271         Add simple activation support, doesn't work yet though.
12272
12273 2003-02-15   Zack Rusin  <zack@kde.org>
12274
12275         * qt/dbus-qthread.cpp:  small casting fix
12276
12277 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12278
12279         * dbus/dbus-errors.c: (dbus_set_error):
12280         * dbus/dbus-errors.h:
12281         Add a few errors and make dbus_set_error void.
12282
12283         * dbus/dbus-sysdeps.c:
12284         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12285         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12286         * dbus/dbus-sysdeps.h:
12287         Add _dbus_spawn_async.
12288
12289         * test/spawn-test.c: (main):
12290         Test for _dbus_spawn_async.
12291
12292 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12293
12294         * dbus/dbus-internals.h:
12295         Fix build without tests.
12296
12297         * dbus/dbus-list.c: (alloc_link):
12298         Fix a segfault when a malloc fails.
12299
12300         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12301         (dbus_malloc0), (dbus_realloc):
12302         Add support for malloc debugging.
12303
12304 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12305
12306         * dbus/dbus-threads.c:
12307         * dbus/dbus-threads.h:
12308         Add condvars. Remove static mutext from API.
12309         Implement static mutexes by initializing them from threads_init.
12310
12311         * glib/dbus-gthread.c:
12312         * qt/dbus-qthread.cpp:
12313         Update with the thread api changes.
12314
12315
12316         * dbus/dbus-list.c:
12317         * dbus/dbus-list.h:
12318         Turn StaticMutex into normal mutex + init function.
12319         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12320         _dbus_list_append_link, _dbus_list_prepend_link
12321
12322
12323         * dbus/dbus-sysdeps.c:
12324         * dbus/dbus-sysdeps.h:
12325         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12326         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12327
12328         * dbus/dbus-protocol.h:
12329         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12330
12331         * dbus/dbus-message.c:
12332         Make ref/unref atomic.
12333         Fix some docs.
12334
12335         * dbus/dbus-connection-internal.h:
12336         * dbus/dbus-connection.c:
12337         * dbus/dbus-connection.h:
12338         Make threadsafe.
12339         Change _peek to _borrow,_return & _steal_borrowed.
12340         Change disconnect callback to event.
12341         Make dbus_connection_dispatch_messages reentrant.
12342
12343         * dbus/dbus-transport.c:
12344         Don't ref the connection on calls to the transport
12345         implementation.
12346
12347         * dbus/dbus-message-handler.c:
12348         Make threadsafe.
12349
12350         * glib/dbus-gmain.c:
12351         Don't use peek_message anymore
12352
12353         * test/Makefile.am:
12354         * test/debug-thread.c:
12355         * test/debug-thread.h:
12356         Simple thread implementation that asserts() on deadlocks in
12357         single-threaded code.
12358
12359         * test/bus-test.c:
12360         (main) Call debug_threads_init.
12361
12362         * test/watch.c:
12363         Use disconnect message instead of disconnect callback.
12364
12365         * bus/connection.c:
12366         * bus/connection.h:
12367         Don't call dbus_connection_set_disconnect_function. Instead export
12368         bus_connection_disconnect.
12369
12370         * bus/dispatch.c:
12371         Call bus_connection_disconnect when we get a disconnected message.
12372
12373 2003-02-15  Havoc Pennington  <hp@pobox.com>
12374
12375         * dbus/dbus-message.c (dbus_message_new): fool around with the
12376         docs
12377
12378 2003-02-14  Havoc Pennington  <hp@pobox.com>
12379
12380         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12381
12382         * dbus/dbus-memory.c: fail if the debug functions indicate we
12383         should
12384
12385         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12386         (_dbus_decrement_fail_alloc_counter): debug functions to
12387         simulate memory allocation failures
12388
12389 2003-02-14  Havoc Pennington  <hp@pobox.com>
12390
12391         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12392         to DBusError
12393
12394 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12395
12396         * bus/driver.c: (bus_driver_handle_hello):
12397         * bus/driver.h:
12398         * bus/services.c: (bus_service_lookup):
12399         Reorder message sending so we get a more sane order.
12400
12401         * test/bus-test.c: (message_handler):
12402         Fix tyop.
12403
12404 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12405
12406         * bus/driver.c: (bus_driver_send_service_deleted),
12407         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12408         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12409         (bus_driver_send_welcome_message),
12410         (bus_driver_handle_list_services),
12411         (bus_driver_handle_acquire_service),
12412         (bus_driver_handle_service_exists):
12413         * dbus/dbus-bus.c: (dbus_bus_register_client),
12414         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12415         * dbus/dbus-errors.c: (dbus_result_to_string):
12416         * dbus/dbus-errors.h:
12417         * dbus/dbus-message.c: (dbus_message_append_args),
12418         (dbus_message_append_args_valist), (dbus_message_get_args),
12419         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12420         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12421         (dbus_message_iter_get_byte_array),
12422         (dbus_message_iter_get_string_array), (message_iter_test),
12423         (check_message_handling), (_dbus_message_test):
12424         * dbus/dbus-message.h:
12425         * test/bus-test.c: (main):
12426         Change fields to arguments in messages, so that they won't be
12427         confused with header fields.
12428
12429         * glib/test-dbus-glib.c: (main):
12430         Remove append_fields from hello message.
12431
12432 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12433
12434         * dbus/dbus-errors.c:
12435         * dbus/dbus-message.c:
12436         * dbus/dbus-string.c:
12437         Documentation fixes.
12438
12439 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12442         (remove_timeout):
12443         Implement support for timeouts in dbus-glib.
12444
12445 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12446
12447         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12448         * dbus/dbus-message.c: (process_test_subdir):
12449         * test/break-loader.c: (find_breaks_based_on):
12450         Plug some memory leaks.
12451
12452 2003-02-13  Richard Hult  <rhult@codefactory.se>
12453
12454         * bus/main.c: Fix build.
12455
12456         * dbus/dbus-errors.h:
12457         * dbus/dbus-errors.c: Fix copyright for Anders.
12458
12459 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12460
12461         * bus/Makefile.am:
12462         Add utils.[ch]
12463
12464         * bus/connection.c: (bus_connection_foreach):
12465         Fix a warning.
12466
12467         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12468         (unescape_string), (new_section), (parse_section_start),
12469         (parse_key_value), (report_error), (bus_desktop_file_load),
12470         (bus_desktop_file_get_string):
12471         * bus/desktop-file.h:
12472         Use DBusError for error reporting.
12473
12474         * bus/dispatch.c: (send_one_message),
12475         (bus_dispatch_message_handler):
12476         * bus/driver.c: (bus_driver_send_service_deleted),
12477         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12478         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12479         (bus_driver_send_welcome_message),
12480         (bus_driver_handle_list_services),
12481         (bus_driver_handle_acquire_service),
12482         (bus_driver_handle_service_exists):
12483         * bus/loop.c: (bus_loop_run):
12484         * bus/main.c:
12485         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12486
12487         * bus/utils.c: (bus_wait_for_memory):
12488         * bus/utils.h:
12489         New files with general utility functions.
12490
12491         * dbus/dbus-internals.h:
12492         Remove _DBUS_HANDLE_OOM.
12493
12494 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12497         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12498         * dbus/dbus-errors.h:
12499         Add DBusError structure.
12500
12501 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12502
12503         * test/data/valid-messages/standard-acquire-service.message:
12504         * test/data/valid-messages/standard-hello.message:
12505         * test/data/valid-messages/standard-list-services.message:
12506         * test/data/valid-messages/standard-service-exists.message:
12507         Add some standard messages.
12508
12509 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12510
12511         * bus/driver.c: (bus_driver_send_welcome_message),
12512         (bus_driver_handle_list_services),
12513         (bus_driver_handle_acquire_service),
12514         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12515         Update for API changes in libdbus.
12516
12517         * dbus/dbus-message.c: (dbus_message_new_reply):
12518         * dbus/dbus-message.h:
12519         Remove the name argument. The spec states that replies shouldn't
12520         have a name.
12521
12522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12523
12524         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12525         (report_error), (bus_desktop_file_load), (lookup_section),
12526         (lookup_line), (bus_desktop_file_get_raw),
12527         (bus_desktop_file_get_string):
12528         * bus/desktop-file.h:
12529         Some fixes, and new functions for getting a key value from a section.
12530
12531 2003-02-13  Havoc Pennington  <hp@pobox.com>
12532
12533         * test/data/auth/fail-after-n-attempts.auth-script: new test
12534
12535         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12536         reject the client.
12537
12538 2003-02-13  Havoc Pennington  <hp@pobox.com>
12539
12540         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12541         dbus_credentials_match were backward
12542
12543         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12544         NO_CREDENTIALS and ROOT_CREDENTIALS
12545
12546         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12547         into here. Never process more commands after we've reached an
12548         end state; store further data as unused bytes.
12549
12550         * test/data/auth/*: add more auth tests
12551
12552         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12553         command to match exact string and EXPECT_UNUSED to match unused
12554         bytes
12555
12556         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12557
12558 2003-02-12  Havoc Pennington  <hp@pobox.com>
12559
12560         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12561         \r off of popped lines
12562
12563         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12564         scripts
12565
12566         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12567         SEND, append \r\n
12568
12569 2003-02-12  Havoc Pennington  <hp@pobox.com>
12570
12571         * dbus/Makefile.am: remove break-loader from the build, since it
12572         moved.
12573
12574         * configure.in: add --enable-gcov to turn on coverage profiling
12575         flags and disable optimization
12576
12577 2003-02-10  Havoc Pennington  <hp@pobox.com>
12578
12579         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12580         initial cut at test framework for DBusAuth from laptop.
12581         Doesn't quite work yet but it compiles and I need to get
12582         it off the 266mhz laptop. ;-)
12583
12584         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12585         fix a memleak in error case
12586
12587 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12588
12589         * bus/Makefile.am:
12590         * bus/desktop-file.c:
12591         * bus/desktop-file.h:
12592         Add a desktop file parser.
12593
12594 2003-02-11  Zack Rusin  <zack@kde.org>
12595
12596         * qt/message.[h|cpp]: sample implementation
12597         of the KDE wrapper for DBusMessage
12598
12599 2003-02-09  Zack Rusin  <zack@kde.org>
12600
12601         * test/bus-test.c: make_it_compile
12602         * doc/dbus-specification.sgml: minimal semantic fix
12603
12604 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12605
12606         Release 0.3
12607
12608         * NEWS: Update
12609
12610 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12611
12612         * dbus/Makefile.am:
12613         * dbus/dbus-break-loader.c:
12614         * test/Makefile.am:
12615         * test/break-loader.c:
12616         Move dbus-break-loader to test/ and rename it to break-loader.
12617
12618 2003-02-02  Havoc Pennington  <hp@pobox.com>
12619
12620         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12621         for code to manage cookies in your home directory
12622
12623         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12624
12625         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12626         to authenticate, then disconnect the client.
12627
12628 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12629
12630         * dbus/dbus-message.c (dbus_message_append_fields):
12631         Correct docs.
12632
12633 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12634
12635         * doc/dbus-specification.sgml:
12636         Update address format section.
12637
12638 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * test/Makefile.am:
12641         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12642         (message_handler), (new_connection_callback), (loop_quit),
12643         (loop_run), (main):
12644         Add bus test.
12645
12646 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12647
12648         * bus/driver.c: (bus_driver_handle_service_exists):
12649         Simplify the code a bit.
12650
12651         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12652         Fix a silly.
12653
12654 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * bus/Makefile.am:
12657         Add libdbus-daemon.la and link to it.
12658
12659 2003-02-01  James Willcox  <jwillcox@gnome.org>
12660
12661         * bus/driver.c: (bus_driver_handle_own_service):
12662         Actually include the service reply code in the message.
12663
12664 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12665
12666         * bus/driver.c: (bus_driver_handle_service_exists):
12667         Don't unref the incoming message.
12668
12669 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12670
12671         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12672
12673 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12674
12675         * dbus/dbus-server.c: (dbus_server_listen):
12676         * dbus/dbus-transport.c: (_dbus_transport_open):
12677         ifdef out the calls to the debug transport and server.
12678
12679 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12680
12681         * dbus/dbus-watch.c (dbus_watch_get_flags):
12682         Add note in the docs that ERROR or HANGUP won't be returned
12683         and are assumed always on.
12684
12685         * glib/dbus-gmain.c (add_watch):
12686         Always add IO_ERR | IO_HUP
12687
12688         * dbus/dbus-message.h:
12689         Add semicolon after dbus_message_iter_get_string_array().
12690         Makes qt code build again
12691
12692 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12693
12694         * bus/driver.c: (create_unique_client_name),
12695         (bus_driver_handle_hello):
12696         Don't take a name, just use a numeric id to identify
12697         each client.
12698
12699         * dbus/Makefile.am:
12700         * dbus/dbus-bus.c: (dbus_bus_register_client),
12701         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12702         * dbus/dbus-bus.h:
12703         Add new convenience functions for communicating with the bus.
12704
12705         * dbus/dbus-message.h:
12706
12707         * dbus/dbus-protocol.h:
12708         Fix a typo.
12709
12710 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12711
12712         * dbus/dbus-message.c (dbus_message_append_fields):
12713         Add some more doc comments.
12714
12715 2003-02-01  Havoc Pennington  <hp@pobox.com>
12716
12717         * dbus/dbus-break-loader.c (randomly_modify_length): change
12718         a 4-byte value in the message as if it were a length
12719
12720         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12721         execute bit on saved files
12722
12723 2003-02-01  Havoc Pennington  <hp@pobox.com>
12724
12725         * dbus/dbus-break-loader.c (main): new program to find messages
12726         that break the loader.
12727
12728         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12729         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12730
12731         * dbus/dbus-string.c (_dbus_string_set_byte): new
12732
12733 2003-01-31  Havoc Pennington  <hp@pobox.com>
12734
12735         * dbus/dbus-message.c: refactor the test code to be more general,
12736         in preparation for writing a "randomly permute test cases to
12737         try to break the loader" program.
12738
12739 2003-01-31  Havoc Pennington  <hp@pobox.com>
12740
12741         * doc/dbus-specification.sgml: work on the specification
12742
12743         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12744         the protocol version of the message.
12745
12746         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12747         no longer specifies that.
12748         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12749         1/2/3/4)
12750
12751         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12752         "break" for DBUS_TYPE_NIL, remove @todo
12753
12754 2003-01-31  Havoc Pennington  <hp@pobox.com>
12755
12756         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12757         just set_is_error/get_is_error as this is a commonly-used
12758         function, and write docs.
12759
12760 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12761
12762         * dbus/dbus-address.c: (dbus_address_entry_free):
12763         Free key and value lists.
12764
12765         * dbus/dbus-internals.c: (_dbus_type_to_string):
12766         Add the types we didn't have.
12767
12768         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12769         (_dbus_marshal_validate_arg):
12770         Add NIL types.
12771
12772         * dbus/dbus-message.c: (dbus_message_set_sender):
12773         Remove todo about being able to set sender to NULL.
12774
12775         (dbus_message_set_is_error_reply),
12776         (dbus_message_get_is_error_reply):
12777         * dbus/dbus-message.h:
12778         New functions.
12779
12780         * dbus/dbus-protocol.h:
12781         Add error reply flag.
12782
12783         * test/data/valid-messages/opposite-endian.message:
12784         Add NIL type to test.
12785
12786 2003-01-31  Havoc Pennington  <hp@pobox.com>
12787
12788         * doc/dbus-specification.sgml: fully specify the header.  Add
12789         flags and major protocol version, and change header/body len to
12790         unsigned.
12791
12792         * dbus/dbus-message-builder.c (append_saved_length): append length
12793         as uint32
12794
12795         * dbus/dbus-message.c (dbus_message_create_header): change header
12796         length and body length to unsigned. Add the new fields from the
12797         spec
12798         (_dbus_message_loader_return_buffer): unsigned header/body len
12799
12800 2003-01-30  Havoc Pennington  <hp@pobox.com>
12801
12802         * dbus/dbus-auth.c: rework to use only REJECTED, no
12803         MECHANISMS
12804
12805         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12806         use REJECTED, suggested by Mark McLoughlin
12807
12808 2003-01-30  Havoc Pennington  <hp@pobox.com>
12809
12810         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12811         a better way to report errors here. e.g.  "unix address lacks
12812         path" or something. also "no such file" when the path doesn't
12813         exist, etc.
12814
12815         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12816         leaking list nodes
12817         (dbus_parse_address): add @todo about documenting address format,
12818         and allowing , and ; to be escaped
12819
12820 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12821
12822         * dbus/Makefile.am:
12823         Add dbus-address.[ch]
12824
12825         * dbus/dbus-address.c: (dbus_address_entry_free),
12826         (dbus_address_entries_free), (create_entry),
12827         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12828         (dbus_parse_address), (_dbus_address_test):
12829         * dbus/dbus-address.h:
12830         New files for dealing with address parsing.
12831
12832         * dbus/dbus-connection.c:
12833         Document timeout functions.
12834
12835         * dbus/dbus-message.c:
12836         Document dbus_message_new_from_message.
12837
12838         * dbus/dbus-server-debug.c:
12839         Document.
12840
12841         * dbus/dbus-server.c: (dbus_server_listen):
12842         Parse address and use correct server implementation.
12843
12844         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12845         * dbus/dbus-string.h:
12846         New function with test.
12847
12848         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12849         * dbus/dbus-test.h:
12850         Add address tests.
12851
12852         * dbus/dbus-transport-debug.c:
12853         Document.
12854
12855         * dbus/dbus-transport.c: (_dbus_transport_open):
12856         Parse address and use correct transport implementation.
12857
12858 2003-01-30  Havoc Pennington  <hp@pobox.com>
12859
12860         * dbus/dbus-message.c: use message->byte_order instead of
12861         DBUS_COMPILER_BYTE_ORDER throughout.
12862         (dbus_message_create_header): pad header to align the
12863         start of the body of the message to 8-byte boundary
12864
12865         * dbus/dbus-marshal.h: make all the demarshalers take const
12866         DBusString arguments.
12867
12868         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12869         validate message args here, so we don't have to do slow validation
12870         later, and so we catch bad messages as they are incoming. Also add
12871         better checks on header_len and body_len. Also fill in
12872         message->byte_order
12873
12874         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12875         implemented properly)
12876         (_dbus_string_validate_nul): new function to check all-nul
12877
12878         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12879         get_arg_end_pos and remove all validation
12880         (_dbus_marshal_validate_arg): actually do validation here.
12881
12882 2003-01-29  Havoc Pennington  <hp@pobox.com>
12883
12884         * dbus/dbus-message.c (check_message_handling): fix assertion
12885         failure on set_client_serial
12886
12887 2003-01-28  Havoc Pennington  <hp@pobox.com>
12888
12889         * dbus/dbus-server-debug.c: Add doc section comments
12890
12891         * dbus/dbus-transport-debug.c: add doc section comments
12892
12893 2003-01-28  Havoc Pennington  <hp@redhat.com>
12894
12895         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12896         the reverse order from how I had it
12897         (_dbus_string_base64_encode): reverse encoding order. I was
12898         basically byteswapping everything during encoding.
12899
12900 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12901
12902         * dbus/dbus-connection-internal.h:
12903         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12904         (_dbus_connection_remove_timeout):
12905         Add functions for adding and removing timeouts.
12906
12907         * dbus/dbus-message.c: (dbus_message_new_from_message):
12908         Add new function that takes a message and creates an exact
12909         copy of it, but with the refcount set to 1.
12910         (check_message_handling):
12911         Fix build error.
12912
12913         * dbus/dbus-server-protected.h:
12914         * dbus/dbus-server.c: (_dbus_server_init_base),
12915         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12916         (dbus_server_set_timeout_functions):
12917         (_dbus_server_remove_timeout):
12918         New functions so that a server can add and remove timeouts.
12919
12920         (dbus_server_listen):
12921         Add commented out call to dbus_server_debug_new.
12922
12923         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12924         Actually set the handler, doh.
12925
12926         * dbus/dbus-transport.c: (_dbus_transport_open):
12927         Add commented out call to dbus_transport_debug_client_new.
12928
12929         * dbus/Makefile.am:
12930         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12931
12932 2003-01-28  Havoc Pennington  <hp@pobox.com>
12933
12934         * dbus/dbus-message.c (check_message_handling): function to check
12935         on the loaded message, iterates over it etc.
12936
12937 2003-01-28  Havoc Pennington  <hp@pobox.com>
12938
12939         * test/Makefile.am (dist-hook): fix make distdir
12940
12941         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12942
12943 2003-01-27  Havoc Pennington  <hp@pobox.com>
12944
12945         * dbus/dbus-mempool.c (time_for_size): replace printf with
12946         _dbus_verbose
12947
12948         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12949         empty lines; fix the SAVE_LENGTH stuff to be
12950         START_LENGTH/END_LENGTH so it actually works; couple other
12951         bugfixes
12952
12953         * test/Makefile.am (dist-hook): add dist-hook for .message files
12954
12955         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12956         can be constant or locked.
12957         (_dbus_string_free): allow freeing a const string as
12958         documented/intended
12959
12960         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12961
12962         * dbus/dbus-test-main.c (main): take an argument which is the
12963         directory containing test data
12964
12965         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12966         argument to this and load all the messages in test/data/
12967         checking that they can be loaded or not loaded as appropriate.
12968
12969 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12970
12971         * bus/dispatch.c: (bus_dispatch_message_handler):
12972         Dispatch messages sent to services.
12973
12974         * bus/driver.c: (bus_driver_send_service_deleted),
12975         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12976         (bus_driver_send_service_acquired):
12977         Add helper functions for sending service related messages.
12978
12979         (bus_driver_send_welcome_message):
12980         Send HELLO_REPLY instead of WELCOME.
12981
12982         (bus_driver_handle_list_services):
12983         Send LIST_SERVICES_REPLY instead of SERVICES.
12984
12985         (bus_driver_handle_own_service),
12986         (bus_driver_handle_service_exists):
12987         New message handlers.
12988
12989         (bus_driver_handle_message):
12990         Invoke new message handlers.
12991
12992         (bus_driver_remove_connection):
12993         Don't remove any services here since that's done automatically
12994         by bus_service_remove_owner now.
12995
12996         * bus/driver.h:
12997         New function signatures.
12998
12999         * bus/services.c: (bus_service_add_owner):
13000         Send ServiceAcquired message if we're the only primary owner.
13001
13002         (bus_service_remove_owner):
13003         Send ServiceAcquired/ServiceLost messages.
13004
13005         (bus_service_set_prohibit_replacement),
13006         (bus_service_get_prohibit_replacement):
13007         Functions for setting prohibit replacement.
13008
13009         (bus_service_has_owner):
13010         New function that checks if a connection is in the owner queue of
13011         a certain service.
13012
13013         * bus/services.h:
13014         Add new function signatures.
13015
13016         * dbus/dbus-list.c: (_dbus_list_test):
13017         Add tests for _dbus_list_remove_last and traversing the list backwards.
13018
13019         * dbus/dbus-list.h:
13020         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13021         go any further, so return NULL then.
13022
13023         * dbus/dbus-protocol.h:
13024         Add new messages, service flags and service replies.
13025
13026 2003-01-26  Havoc Pennington  <hp@pobox.com>
13027
13028         * dbus/dbus-message-builder.c: implement, completely untested.
13029
13030         * test/data/*: add data to be used in testing.
13031         ".message" files are our simple loadable text format.
13032         ".message-raw" will be binary dumps of messages.
13033
13034         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13035
13036 2003-01-26  Havoc Pennington  <hp@pobox.com>
13037
13038         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13039
13040         * dbus/dbus-errors.c (dbus_result_to_string): add
13041         file errors
13042
13043         * dbus/dbus-message-builder.c: new file, will contain code to load
13044         up messages from files. Not implemented yet.
13045
13046 2003-01-26  Havoc Pennington  <hp@pobox.com>
13047
13048         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13049         the sender by setting to NULL
13050
13051 2003-01-26  Havoc Pennington  <hp@pobox.com>
13052
13053         The unit tests pass, but otherwise untested.  If it breaks, the
13054         tests should have been better. ;-)
13055
13056         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13057         the connection.
13058
13059         * dbus/dbus-message.c: redo everything so we maintain
13060         message->header as the only copy of the various fields.
13061         This avoids the possibility of out-of-memory in some cases,
13062         for example dbus_message_lock() can't run out of memory anymore,
13063         and avoids extra copying. Figured I may as well go ahead and do
13064         this since it was busted for dbus_message_lock to not return
13065         failure on OOM, and dbus_message_write_header was totally
13066         unchecked for OOM. Also fixed some random other bugs.
13067
13068         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13069         that strings are nul-terminated. Also, end_pos can be equal
13070         to string length just not greater than, I think.
13071         (_dbus_marshal_set_int32): new function
13072         (_dbus_marshal_set_uint32): new function
13073         (_dbus_marshal_set_string): new function
13074
13075         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13076         a warning, init timeout_list to NULL
13077         (dbus_connection_send_message): don't use uninitialized variable
13078         "serial"
13079
13080         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13081
13082 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13083
13084         * bus/driver.c: (bus_driver_handle_hello),
13085         (bus_driver_send_welcome_message):
13086         Plug leaks
13087
13088 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13089
13090         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13091         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13092         (dbus_connection_unref):
13093         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13094         * dbus/dbus-message.c: (dbus_message_unref),
13095         Plug memory leaks.
13096
13097         (dbus_message_get_fields):
13098         Remove debugging printout.
13099
13100         (_dbus_message_loader_return_buffer):
13101         Don't store the header string.
13102
13103         (_dbus_message_test):
13104         Plug leaks.
13105
13106 2003-01-26  Richard Hult  <rhult@codefactory.se>
13107
13108         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13109         the file descriptor list, since it can change under us.
13110
13111 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13112
13113         * glib/dbus-gmain.c: (dbus_connection_prepare),
13114         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13115         (remove_watch), (dbus_connection_hookup_with_g_main):
13116         Rewrite the glib handling to use its own GSource instead of a
13117         GIOChannel so we can catch messages put in the queue while waiting
13118         for a reply.
13119
13120 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13121
13122         * bus/Makefile.am:
13123         * bus/connection.c: (connection_disconnect_handler),
13124         (connection_watch_callback), (bus_connection_setup):
13125         * bus/dispatch.c: (send_one_message),
13126         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13127         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13128         * bus/dispatch.h:
13129         * bus/driver.c: (bus_driver_send_service_deleted),
13130         (bus_driver_send_service_created), (bus_driver_handle_hello),
13131         (bus_driver_send_welcome_message),
13132         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13133         (bus_driver_handle_message):
13134         * bus/driver.h:
13135         Refactor code, put the message dispatching in its own file. Use
13136         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13137         is disconnected.
13138
13139 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13140
13141         * dbus/dbus-internals.h:
13142         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13143
13144         * dbus/dbus-message.c: (dbus_message_get_sender):
13145         * dbus/dbus-message.h:
13146         Implement dbus_message_get_sender.
13147
13148         * dbus/dbus-protocol.h:
13149         Add message and service defines.
13150
13151 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13152
13153         * dbus/dbus-connection.c: (dbus_connection_send_message):
13154         * dbus/dbus-message-internal.h:
13155         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13156         (dbus_message_write_header):
13157         Remove _dbus_messag_unlock and don't set the client serial on a
13158         message if one already exists.
13159
13160 2003-01-24  Havoc Pennington  <hp@pobox.com>
13161
13162         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13163         list_pool
13164
13165         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13166         on OOM
13167
13168 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13169
13170         * dbus/dbus-list.c: (alloc_link), (free_link):
13171         Use a memory pool for the links.
13172
13173 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * bus/connection.c: (bus_connection_foreach):
13176         * bus/connection.h:
13177         Add new bus_connection_foreach function.
13178
13179         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13180         Add function that broadcasts a message to all clients.
13181
13182         (bus_driver_send_service_created), (bus_driver_handle_hello),
13183         (bus_driver_send_welcome_message),
13184         (bus_driver_handle_list_services), (bus_driver_message_handler):
13185         Implement functions that take care of listing services, and notifying
13186         clients when new services are created.
13187
13188         * bus/services.c: (bus_services_list):
13189         * bus/services.h:
13190         Add new function that returns an array of strings with the currently
13191         registered services.
13192
13193         * glib/dbus-glib.h:
13194         * glib/dbus-gmain.c:
13195         Update copyright year.
13196
13197 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13198
13199         * dbus/dbus-connection.c: (dbus_connection_send_message):
13200         Unlock the message in case it was sent earlier.
13201
13202         (dbus_connection_send_message_with_reply_and_block):
13203         Remove the reply message from the list.
13204
13205         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13206         Set array_len and new_pos correctly.
13207
13208         (_dbus_marshal_test):
13209         Remove debug output.
13210
13211         * dbus/dbus-message-internal.h:
13212         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13213         New function that returns the reply serial.
13214
13215         (_dbus_message_unlock):
13216         New function that unlocks a message and resets its header.
13217
13218         (dbus_message_append_string_array),
13219         (dbus_message_get_fields_valist),
13220         (dbus_message_iter_get_field_type),
13221         (dbus_message_iter_get_string_array),
13222         (dbus_message_get_fields),
13223         (dbus_message_append_fields_valist):
13224         Handle string arrays.
13225
13226         (dbus_message_set_sender):
13227         Make this function public since the bus daemon needs it.
13228
13229         (decode_header_data):
13230         Set the reply serial to -1 initially.
13231
13232         * dbus/dbus-message.h:
13233         Add dbus_message_set_sender.
13234
13235 2003-01-24  Havoc Pennington  <hp@pobox.com>
13236
13237         * doc/dbus-specification.sgml: add some stuff
13238
13239 2003-01-22  Havoc Pennington  <hp@pobox.com>
13240
13241         * doc/dbus-specification.sgml: Start to document the protocol.
13242
13243 2003-01-22  Havoc Pennington  <hp@pobox.com>
13244
13245         * dbus/dbus-connection.c
13246         (dbus_connection_send_message_with_reply_and_block): add some @todo
13247
13248         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13249
13250 2003-01-21  Havoc Pennington  <hp@pobox.com>
13251
13252         (patch untested because can't compile)
13253
13254         * bus/driver.c (create_unique_client_name): make this function
13255         never recycle client names. Also, caller should initialize
13256         the DBusString.
13257
13258         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13259
13260 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13261
13262         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13263         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13264         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13265         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13266         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13267         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13268         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13269         * dbus/dbus-marshal.h:
13270         * dbus/dbus-protocol.h:
13271         Add support for marshalling and demarshalling integer, double
13272         and string arrays.
13273
13274 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13275
13276         * bus/Makefile.am:
13277         Add driver.[ch]
13278
13279         * bus/connection.c: (connection_disconnect_handler):
13280         Remove the connection from the bus driver's list.
13281
13282         (connection_watch_callback): Dispatch messages.
13283
13284         (free_connection_data): Free connection name.
13285
13286         (bus_connection_setup): Add connection to the bus driver's list.
13287         (bus_connection_remove_owned_service):
13288         (bus_connection_set_name), (bus_connection_get_name):
13289         Add functions for setting and getting the connection's name.
13290
13291         * bus/connection.h:
13292         Add function headers.
13293
13294         * bus/driver.c: (create_unique_client_name),
13295         (bus_driver_handle_hello_message),
13296         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13297         (bus_driver_add_connection), (bus_driver_remove_connection):
13298         * bus/driver.h:
13299         * bus/main.c:
13300         * bus/services.c: (bus_service_free):
13301         * bus/services.h:
13302         New file that handles communication and registreation with the bus
13303         itself.
13304
13305 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13306
13307         * dbus/dbus-connection.c: (dbus_connection_send_message):
13308         Add a new client_serial parameter.
13309
13310         (dbus_connection_send_message_with_reply):
13311         Remove a @todo since we've implemented the blocking function.
13312
13313         (dbus_connection_send_message_with_reply_and_block):
13314         New function that sends a message and waits for a reply and
13315         then returns the reply.
13316
13317         * dbus/dbus-connection.h:
13318         Add new functions.
13319
13320         * dbus/dbus-errors.c: (dbus_result_to_string):
13321         * dbus/dbus-errors.h:
13322         Add new DBUS_RESULT.
13323
13324         * dbus/dbus-message-internal.h:
13325         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13326         (_dbus_message_set_sender), (dbus_message_write_header),
13327         (dbus_message_new_reply), (decode_header_data),
13328         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13329         * dbus/dbus-message.h:
13330         Add new functions that set the reply serial and sender.
13331         Also marshal and demarshal them correctly and add test.
13332
13333         * dbus/dbus-protocol.h:
13334         Add new DBUS_MESSAGE_TYPE_SENDER.
13335
13336         * glib/dbus-glib.h:
13337         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13338         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13339         (dbus_connection_hookup_with_g_main):
13340         * glib/test-dbus-glib.c: (main):
13341         Rewrite to use GIOChannel and remove the GSource crack.
13342
13343         * test/echo-client.c: (main):
13344         * test/watch.c: (check_messages):
13345         Update for changed APIs
13346
13347 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13348
13349         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13350
13351         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13352         Create a DBusTimeoutList.
13353         (dbus_connection_set_timeout_functions): Add new function to
13354         set timeout callbacks
13355
13356         * dbus/dbus-connection.h: Add public DBusTimeout API.
13357
13358         * dbus/dbus-message.c: (dbus_message_get_service):
13359         * dbus/dbus-message.h:  New function.
13360
13361         * dbus/dbus-server.c: Fix small doc typo.
13362
13363         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13364
13365 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13366
13367         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13368         of the string, just as long as specified.
13369
13370 2003-01-19  Havoc Pennington  <hp@pobox.com>
13371
13372         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13373         new function
13374
13375         * dbus/dbus-server.c (dbus_server_set_max_connections)
13376         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13377         keep track of current number of connections, and add API for
13378         setting a max (but haven't implemented enforcing the max yet)
13379
13380 2003-01-18  Havoc Pennington  <hp@pobox.com>
13381
13382         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13383         reading/writing if read_watch != NULL or write_watch != NULL.
13384
13385         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13386         the message loader code to actually load message->header and
13387         message->body into the newly-created message.
13388
13389         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13390         in OOM case
13391
13392         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13393         (dbus_connection_get_max_message_size)
13394         (dbus_connection_set_max_live_messages_size)
13395         (dbus_connection_get_max_live_messages_size): implement some
13396         resource limitation functions
13397
13398         * dbus/dbus-resources.c: new file implementing some of the
13399         resource limits stuff
13400
13401         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13402         missing docs, add @todo to handle OOM etc.
13403
13404         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13405         docs
13406
13407 2003-01-18  Havoc Pennington  <hp@pobox.com>
13408
13409         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13410         connection if it hasn't been already.
13411
13412         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13413         replace with DisconnectFunction.
13414
13415 2003-01-18  Havoc Pennington  <hp@pobox.com>
13416
13417         Building --disable-verbose-mode --disable-asserts --disable-tests
13418         cuts the library from 112K to 45K or so
13419
13420         * configure.in: check for varargs macro support,
13421         add --enable-verbose-mode, --enable-asserts.
13422
13423         * dbus/dbus-internals.h (_dbus_assert): support
13424         DBUS_DISABLE_ASSERT
13425         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13426
13427 2003-01-18  Havoc Pennington  <hp@pobox.com>
13428
13429         * dbus/dbus-test.c: include config.h so that tests actually run
13430
13431         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13432         so the failure mode when that assumption fails will be plenty
13433         obvious.
13434
13435 2003-01-18  Havoc Pennington  <hp@pobox.com>
13436
13437         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13438
13439         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13440         the distribution
13441
13442         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13443         since we don't want to use those in make check
13444
13445 2003-01-15  Havoc Pennington  <hp@redhat.com>
13446
13447         Release 0.2
13448
13449         * NEWS: update
13450
13451 2003-01-15  Havoc Pennington  <hp@redhat.com>
13452
13453         * test/Makefile.am: fix so that test source code ends up in the
13454         distribution on make distcheck
13455
13456 2003-01-15  Havoc Pennington  <hp@redhat.com>
13457
13458         Release 0.1.
13459
13460         * NEWS: update
13461
13462 2003-01-15  Havoc Pennington  <hp@redhat.com>
13463
13464         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13465         fix build when --disable-tests
13466
13467         * Makefile.am (EXTRA_DIST): put HACKING in here
13468
13469         * HACKING: document procedure for making a tarball release.
13470
13471 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13472
13473         * bus/connection.c: (connection_error_handler),
13474         (bus_connection_setup):
13475         * bus/main.c: (main):
13476         Make sure that the DBusConnectionData struct is NULLed
13477         out to prevent a segfault.
13478
13479         * dbus/dbus-errors.c: (dbus_result_to_string):
13480         * dbus/dbus-errors.h:
13481         * dbus/dbus-message.c: (dbus_message_get_fields),
13482         (dbus_message_get_fields_valist), (_dbus_message_test):
13483         * dbus/dbus-message.h:
13484         Make dbus_message_get_fields return a result code so we can
13485         track invalid fields as well as oom.
13486
13487 2003-01-11  Havoc Pennington  <hp@pobox.com>
13488
13489         * configure.in: change --enable-test/--enable-ansi action-if-given
13490         to enable_foo=$enableval instead of enable_foo=yes
13491
13492 2003-01-08  Havoc Pennington  <hp@pobox.com>
13493
13494         * dbus/dbus-string.c (_dbus_string_align_length): new function
13495
13496         * dbus/dbus-test-main.c: move main() for test app here
13497         * dbus/dbus-test.c
13498         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13499         symbol to run tests, because dbus-test isn't in the main
13500         library
13501
13502         Code review nitpicks.
13503
13504         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13505         for people with narrow emacs ;-). Assert client_serial was filled
13506         in. Assert message->name != NULL.
13507         (dbus_message_append_fields): have "first_field_type" arg separate
13508         from va list, needed for C++ binding that also uses varargs IIRC
13509         and helps with type safety
13510         (dbus_message_new): add @todo about using DBusString to store
13511         service/name internally
13512         (dbus_message_new): don't leak ->service and ->name on OOM later
13513         in the function
13514         (dbus_message_unref): free the service name
13515         (dbus_message_get_fields): same change to varargs
13516         i.e. first_field_type
13517         (_dbus_message_loader_return_buffer): assert that the message data
13518         is aligned (if not it's a bug in our code). Put in verbose griping
13519         about why we set corrupted = TRUE.
13520         (decode_header_data): add FIXME that char* is evil.  Was going to
13521         add FIXME about evil locale-specific string.h strncmp, but just
13522         switched to wacky string-as-uint32 optimization. Move check for
13523         "no room for field name" above get_const_data_len() to avoid
13524         assertion failure in get_const_data_len if we have trailing 2
13525         bytes or the like. Check for service and name fields being
13526         provided twice. Don't leak service/name on error. Require field
13527         names to be aligned to 4 bytes.
13528
13529         * dbus/dbus-marshal.c: move byte swap stuff to header
13530         (_dbus_pack_int32): uscore-prefix
13531         (_dbus_unpack_int32): uscore-prefix
13532         (_dbus_unpack_uint32): export
13533         (_dbus_demarshal_string): add @todo complaining about use of
13534         memcpy()
13535         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13536         handling allowing corrupt data to go unchecked
13537
13538 2003-01-08  Havoc Pennington  <hp@redhat.com>
13539
13540         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13541         to the select() as needed for authentication. (should be using
13542         _dbus_poll() not select, but for another day)
13543
13544         * dbus/dbus.h: include dbus/dbus-protocol.h
13545
13546 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13547
13548         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13549         dbus-connection.h
13550
13551 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13552
13553         * dbus/dbus-internals.c: (_dbus_type_to_string):
13554         New function that returns a string describing a type.
13555
13556         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13557         * dbus/dbus-marshal.h:
13558         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13559         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13560         (dbus_message_iter_get_byte_array):
13561         * dbus/dbus-message.h:
13562         Add new convenience functions for appending and getting message fields.
13563         Also add demarshalling routines for byte arrays.
13564
13565 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13566
13567         * dbus/dbus-connection-internal.h:
13568         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13569         (_dbus_connection_get_next_client_serial),
13570         (dbus_connection_send_message):
13571         * dbus/dbus-internals.h:
13572         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13573         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13574         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13575         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13576         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13577         (_dbus_verbose_bytes), (_dbus_marshal_test):
13578         * dbus/dbus-marshal.h:
13579         * dbus/dbus-message-internal.h:
13580         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13581         (dbus_message_write_header), (_dbus_message_lock),
13582         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13583         (dbus_message_get_name), (dbus_message_append_int32),
13584         (dbus_message_append_uint32), (dbus_message_append_double),
13585         (dbus_message_append_string), (dbus_message_append_byte_array),
13586         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13587         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13588         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13589         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13590         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13591         (decode_header_data), (_dbus_message_loader_return_buffer),
13592         (message_iter_test), (_dbus_message_test):
13593         * dbus/dbus-message.h:
13594         * dbus/dbus-protocol.h:
13595         * dbus/dbus-test.c: (main):
13596         * dbus/dbus-test.h:
13597         * glib/test-dbus-glib.c: (message_handler), (main):
13598         * test/echo-client.c: (main):
13599         * test/watch.c: (check_messages):
13600         Make messages sendable and receivable for real.
13601
13602 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13603
13604         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13605         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13606         * dbus/dbus-message.c: (dbus_message_append_int32),
13607         (dbus_message_append_uint32), (dbus_message_append_double),
13608         (dbus_message_append_string), (dbus_message_append_byte_array):
13609         Handle OOM restoration.
13610
13611 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13612
13613         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13614         (_dbus_demarshal_string), (_dbus_marshal_test):
13615         * dbus/dbus-marshal.h:
13616         * dbus/dbus-message.c: (dbus_message_get_name),
13617         Document these functions.
13618
13619         (dbus_message_append_int32), (dbus_message_append_uint32),
13620         (dbus_message_append_double), (dbus_message_append_string),
13621         (dbus_message_append_byte_array):
13622         * dbus/dbus-message.h:
13623         Add functions for adding message fields of different types.
13624
13625         * dbus/dbus-protocol.h:
13626         Add the different types.
13627
13628 2003-01-05  Havoc Pennington  <hp@pobox.com>
13629
13630         * bus/connection.c: implement routines for handling connections,
13631         first thing is keeping a list of owned services on each connection
13632         and setting up watches etc.
13633
13634         * bus/services.c: implement a mapping from service names to lists
13635         of connections
13636
13637         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13638
13639         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13640         to use static mutexes for global data
13641
13642         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13643         collection of functions to set/get application-specific data
13644         on the DBusConnection.
13645
13646 2003-01-04  Havoc Pennington  <hp@pobox.com>
13647
13648         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13649         (_dbus_poll): new function
13650
13651         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13652         copied from GLib
13653
13654         * bus/loop.c: initial code for the daemon main loop
13655
13656 2003-01-04  Havoc Pennington  <hp@pobox.com>
13657
13658         * test/watch.c (error_handler): make it safe if the error handler
13659         is called multiple times (if we s/error handler/disconnect
13660         handler/ we should just guarantee it's called only once)
13661
13662         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13663         error handler on disconnect (it's quite possible we should
13664         just change the error handler to a "disconnect handler," I'm
13665         not sure we have any other meaningful errors)
13666
13667         * configure.in: check for getpwnam_r
13668
13669         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13670         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13671         mechanism as in SASL spec, using socket credentials
13672
13673         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13674         (_dbus_send_credentials_unix_socket): new function
13675
13676         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13677         dbus_accept()
13678         (_dbus_write): only check errno if <0 returned
13679         (_dbus_write_two): ditto
13680
13681 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13682
13683         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13684         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13685         (_dbus_marshal_test):
13686         * dbus/dbus-marshal.h:
13687         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13688         to _dbus_marshal_utf8_string. Also fix some tests.
13689
13690 2002-12-28  Harri Porten  <porten@kde.org>
13691
13692         * configure.in: added check for C++ compiler and a very cheesy
13693         check for the Qt integration
13694
13695         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13696
13697         * qt/Makefile.am: added
13698
13699         * qt/.cvsignore: added
13700
13701         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13702         latter, added #ifdef QT_THREAD_SUPPORT guard.
13703
13704         * dbus/Makefile.am: added missing headers for make dist
13705
13706 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13707
13708         * dbus/Makefile.am: fixup export-symbols-regex.
13709
13710 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13711
13712         * acinclude.m4: Add this file and put the
13713         PKG_CHECK_MODULE macro in it.
13714
13715 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13716
13717         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13718         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13719         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13720         (_dbus_marshal_test):
13721         Make the demarshalling routines align the pos argument.
13722         Add string marshalling tests and fix the obvious bugs
13723         discovered.
13724
13725 2002-12-26  Havoc Pennington  <hp@pobox.com>
13726
13727         * dbus/dbus-auth.c: fixes fixes fixes
13728
13729         * dbus/dbus-transport-unix.c: wire up support for
13730         encoding/decoding data on the wire
13731
13732         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13733         (_dbus_auth_decode_data): append to target string
13734         instead of nuking it.
13735
13736 2002-12-26  Havoc Pennington  <hp@pobox.com>
13737
13738         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13739         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13740         doh
13741
13742         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13743         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13744         now). Main point is because I wanted unpack_uint32 to implement
13745         _dbus_verbose_bytes
13746         (_dbus_verbose_bytes): new function
13747
13748         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13749
13750         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13751         mechanism to handle a corrupt message stream
13752         (_dbus_message_loader_new): fix preallocation to only prealloc,
13753         not prelengthen
13754
13755         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13756         (_dbus_string_test): enhance tests for copy/move and fix the
13757         functions
13758
13759         * dbus/dbus-transport-unix.c: Hold references in more places to
13760         avoid reentrancy problems
13761
13762         * dbus/dbus-transport.c: ditto
13763
13764         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13765         leak reference count in no-message case
13766
13767         * test/watch.c (do_mainloop): handle adding/removing watches
13768         during iteration over the watches. Also, ref the connection/server
13769         stored on a watch, so we don't try to mangle a destroyed one.
13770
13771         * dbus/dbus-transport-unix.c (do_authentication): perform
13772         authentication
13773
13774         * dbus/dbus-auth.c (get_state): add a state
13775         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13776         (_dbus_auth_get_unused_bytes): append the unused bytes
13777         to the passed in string, rather than prepend
13778
13779         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13780         the auth conversation DBusAuth
13781
13782         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13783         (_dbus_transport_new_for_domain_socket): when creating a
13784         transport, pass in whether it's a client-side or server-side
13785         transport so we know which DBusAuth to create
13786
13787 2002-12-03  Havoc Pennington  <hp@pobox.com>
13788
13789         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13790         _after_ finalizing the derived members
13791         (unix_connection_set): unref watch if we fail to add it
13792
13793         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13794         transport first, so that the connection owned by the
13795         transport will be valid as the transport finalizes.
13796
13797         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13798         if necessary, and remove watches from the connection.
13799
13800         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13801
13802 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13803
13804         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13805         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13806         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13807         (_dbus_marshal_test):
13808         * dbus/dbus-marshal.h:
13809         Add string marshal functions and have the demarshal functions
13810         return the new position.
13811
13812 2002-12-25  Havoc Pennington  <hp@pobox.com>
13813
13814         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13815         it is a simple protocol that just maps directly to SASL.
13816
13817         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13818         initial implementation, not actually used yet.
13819
13820         * dbus/dbus-string.c (_dbus_string_find): new function
13821         (_dbus_string_equal): new function
13822         (_dbus_string_base64_encode): new function
13823         (_dbus_string_base64_decode): new function
13824
13825 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13826
13827         * dbus/Makefile.am:
13828         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13829         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13830         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13831         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13832         * dbus/dbus-marshal.h:
13833         * dbus/dbus-protocol.h:
13834         * dbus/dbus-test.c: (main):
13835         * dbus/dbus-test.h:
13836         Add un-optimized marshalling/demarshalling routines.
13837
13838 2002-12-25  Harri Porten  <porten@kde.org>
13839
13840         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13841
13842 2002-12-24  Zack Rusin  <zack@kde.org>
13843
13844         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13845         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13846         main loop stuff
13847
13848 2002-12-24  Havoc Pennington  <hp@pobox.com>
13849
13850         * glib/dbus-gthread.c: fix include
13851
13852         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13853         I think glib API needs to change, though, as you don't
13854         want to use DBusMessageFunction, you want to use the
13855         DBusMessageHandler object. Probably
13856         dbus_connection_open_with_g_main_loop()
13857         and dbus_connection_setup_g_main_loop() or something like that
13858         (but think of better names...) that just create a connection
13859         that has watch/timeout functions etc. already set up.
13860
13861         * dbus/dbus-connection.c
13862         (dbus_connection_send_message_with_reply): new function just to
13863         show how the message handler helps us deal with replies.
13864
13865         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13866
13867         * dbus/dbus-string.c (_dbus_string_test): free a string that
13868         wasn't
13869
13870         * dbus/dbus-hash.c: use memory pools for the hash entries
13871         (rebuild_table): be more paranoid about overflow, and
13872         shrink table when we can
13873         (_dbus_hash_test): reduce number of sprintfs and write
13874         valid C89. Add tests for case where we grow and then
13875         shrink the hash table.
13876
13877         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13878
13879         * dbus/dbus-connection.c (dbus_connection_register_handler)
13880         (dbus_connection_unregister_handler): new functions
13881
13882         * dbus/dbus-message.c (dbus_message_get_name): new
13883
13884         * dbus/dbus-list.c: fix docs typo
13885
13886         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13887         an object representing a handler for messages.
13888
13889 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13890
13891         * glib/dbus-glib.h:
13892         * glib/dbus-gthread.c: (dbus_gthread_init):
13893         Don't use the gdbus prefix for public functions.
13894
13895 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13896
13897         * Makefile.am:
13898         * configure.in:
13899         Add GLib checks and fixup .pc files
13900
13901         * glib/Makefile.am:
13902         * glib/dbus-glib.h:
13903         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13904         (gdbus_connection_check), (gdbus_connection_dispatch),
13905         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13906         (dbus_connection_gsource_new):
13907         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13908         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13909         * glib/test-dbus-glib.c: (message_handler), (main):
13910         Add GLib support.
13911
13912 2002-12-15  Harri Porten  <porten@kde.org>
13913
13914         * autogen.sh: check for libtoolize before attempting to use it
13915
13916         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13917         struct.
13918
13919         * .cvsignore: ignore more stamp files
13920
13921         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13922
13923         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13924         without make install.
13925
13926 2002-12-15  Havoc Pennington  <hp@pobox.com>
13927
13928         * dbus/dbus-threads.c: add thread stubs that a higher library
13929         layer can fill in. e.g. the GLib wrapper might fill them in with
13930         GThread stuff. We still need to use this thread API to
13931         thread-safe-ize the library.
13932
13933 2002-12-12  Havoc Pennington  <hp@pobox.com>
13934
13935         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13936         below new interfaces and include fewer system headers.
13937
13938         * dbus/dbus-sysdeps.c (_dbus_read): new function
13939         (_dbus_write): new function
13940         (_dbus_write_two): new function
13941         (_dbus_connect_unix_socket): new function
13942         (_dbus_listen_unix_socket): new function
13943
13944         * dbus/dbus-message-internal.h: change interfaces to use
13945         DBusString
13946
13947 2002-12-11  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-types.h: add dbus_unichar
13950
13951         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13952
13953         * dbus/dbus-connection.c (dbus_connection_send_message): return
13954         TRUE on success
13955
13956         * dbus/dbus-transport.c: include dbus-watch.h
13957
13958         * dbus/dbus-connection.c: include dbus-message-internal.h
13959
13960         * HACKING: add file with coding guidelines stuff.
13961
13962         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13963         handling here, for security purposes (as in vsftpd). Not actually
13964         using this class yet.
13965
13966         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13967         system/libc usage here, as in vsftpd, for ease of auditing (and
13968         should also simplify portability). Haven't actually moved all the
13969         system/libc usage into here yet.
13970
13971 2002-11-25  Havoc Pennington  <hp@pobox.com>
13972
13973         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13974         always print the first verbose message.
13975
13976 2002-11-24  Havoc Pennington  <hp@pobox.com>
13977
13978         * test/echo-client.c, test/echo-server.c: cheesy test
13979         clients.
13980
13981         * configure.in (AC_CHECK_FUNCS): check for writev
13982
13983         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13984         function
13985
13986         * dbus/dbus-list.c (_dbus_list_foreach): new function
13987
13988         * dbus/dbus-internals.c (_dbus_verbose): new function
13989
13990         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13991         representing a server that listens for connections.
13992
13993         * dbus/.cvsignore: create
13994
13995         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13996         public API for reporting errors
13997
13998         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13999         public object representing a connection that
14000         sends/receives messages. (Same object used for
14001         both client and server.)
14002
14003         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14004         Basic abstraction for different kinds of stream
14005         that we might read/write messages from.
14006
14007 2002-11-23  Havoc Pennington  <hp@pobox.com>
14008
14009         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14010         _DBUS_INT_MAX
14011
14012         * dbus/dbus-test.c (main): add list test, and include
14013         dbus-test.h as intended
14014
14015         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14016         (_dbus_hash_table_remove_int): return value indicates
14017         whether the entry existed to remove
14018
14019         * dbus/dbus-list.c: add linked list utility class,
14020         with docs and tests
14021
14022         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14023         array sometimes.
14024
14025 2002-11-23  Havoc Pennington  <hp@pobox.com>
14026
14027         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14028         DBUS_END_DECLS to nothing, that should fix this once and for all
14029
14030         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14031
14032         * dbus/dbus-message.c, dbus/dbus-hash.c:
14033         add some missing @brief
14034
14035 2002-11-23  Havoc Pennington  <hp@pobox.com>
14036
14037         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14038         to avoid confusing Doxygen
14039
14040         * dbus/dbus-hash.c: @} not }@
14041
14042         * dbus/dbus-message.c (struct DBusMessage): split out
14043         internals docs
14044
14045 2002-11-23  Havoc Pennington  <hp@pobox.com>
14046
14047         * configure.in: pile on more warning flags if using gcc
14048
14049         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14050         to document static functions
14051
14052         * configure.in: add summary to end of configure so it
14053         looks nice and attractive
14054
14055         * dbus/dbus-hash.c: finish implementation and write unit
14056         tests and docs
14057
14058         * configure.in: add --enable-tests to enable unit tests
14059
14060         * dbus/dbus-test.c: test program to run unit tests
14061         for all files in dbus/*, initially runs a test for
14062         dbus-hash.c
14063
14064         * dbus/dbus-internals.h: file to hold some internal utility stuff
14065
14066 2002-11-22  Havoc Pennington  <hp@redhat.com>
14067
14068         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14069         "ported" away from Tcl
14070
14071         * dbus/dbus-types.h: header for types such as dbus_bool_t
14072
14073 2002-11-22  Havoc Pennington  <hp@redhat.com>
14074
14075         * dbus/dbus.h: fixups for doc warnings
14076
14077         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14078         macros
14079         (QUIET): make it quiet so we can see warnings
14080
14081         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14082
14083 2002-11-22  Havoc Pennington  <hp@redhat.com>
14084
14085         * Makefile.am: include "Doxyfile" target in all-local
14086
14087         * configure.in: generate the Doxyfile
14088
14089         * Doxyfile.in: move Doxyfile here, so we can use
14090         configure to generate a Doxyfile with the right
14091         version number etc.
14092
14093 2002-11-22  Havoc Pennington  <hp@redhat.com>
14094
14095         * dbus/dbus-message.c: move inline docs into .c file
14096
14097         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14098         so all docs are under doc/
14099         (MAN_EXTENSION): generate man pages. Use extension
14100         ".3dbus" which matches ".3qt" on my system,
14101         I guess this is OK, I don't know really.
14102         (FILE_PATTERNS): look for .c files not .h, makes sense
14103         for plain C I think
14104
14105 2002-11-22  Havoc Pennington  <hp@pobox.com>
14106
14107         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14108         because any app can be a server, and any app can be a client,
14109         the bus is a special kind of server.
14110
14111 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14112
14113         * Doxyfile : adding. Still needs Makefile rules to be generated
14114         automatically (just run "doxygen" in the toplevel dir for now to
14115         generate docs)
14116
14117         * dbus/dbus-message.h : Adding sample docs (javadoc since
14118         resembles gtk-doc a little more)
14119
14120         * dbus/dbus.h : Adding sample docs
14121
14122 2002-11-21  Havoc Pennington  <hp@redhat.com>
14123
14124         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14125         so we can allow ourselves to include files directly,
14126         instead of having to use dbus.h
14127
14128         * dbus/dbus.h: fill in
14129
14130         * dbus/dbus-message.h: sketch out a sample header file.
14131         Include griping if you include it directly instead of
14132         via dbus.h
14133
14134         * dbus/dbus-macros.h: new file with macros for extern "C",
14135         TRUE/FALSE, NULL, etc.
14136
14137         * doc/file-boilerplate.c: put include guards in here
14138
14139 2002-11-21  Havoc Pennington  <hp@redhat.com>
14140
14141         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14142
14143         * COPYING: include the GPL as well, and license code
14144         under both AFL and GPL.
14145
14146 2002-11-21  Havoc Pennington  <hp@redhat.com>
14147
14148         * acconfig.h: get rid of this
14149
14150         * autogen.sh (run_configure): add --no-configure option
14151
14152         * configure.in: remove AC_ARG_PROGRAM to make
14153         autoconf complain less. add AC_PREREQ.
14154         add AC_DEFINE third arg.
14155
14156 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * doc/Makefile.am:
14159         Fix references so we can distcheck.
14160
14161 2002-11-21  Havoc Pennington  <hp@redhat.com>
14162
14163         * Initial module creation
14164