* tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
2
3         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
4         <fcrozat at mandriva dot com>)
5
6 2006-08-29  Havoc Pennington  <hp@redhat.com>
7
8         * test/test-service.c (path_message_func): fix lack of return value
9
10         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
11         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
12         any more sense than on anything else in this file.
13         (_dbus_get_tmpdir): add const to return value, and keep the
14         results of the various getenv around in a static variable.
15
16 2006-08-29  Havoc Pennington  <hp@redhat.com>
17
18         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
19         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
20
21 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
22
23         * test/Makefile.am: change find to use syntax that works with non
24         gnu versions of find
25
26 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
27
28         * dbus/dbus-transport.c: fix invalid deref when checking if
29         a vtable method exists (Patch from Christian Ehrlicher 
30         <ch dot ehrlicher at gmx dot de>)
31
32 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
33
34         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
35         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
36         to build with builddir != srcdir (Taken from a patch by Bernard Leak
37         <bernard at brenda-arkle dot demon dot co dot uk>)
38
39 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
40
41         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
42         default case
43
44 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
45
46         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
47         it works on any system providing this interface, not only FreeBSD.
48         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
49
50 2006-08-20  Havoc Pennington  <hp@redhat.com>
51
52         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
53         the docs
54
55 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
56
57         * Released 0.92 
58
59 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
60
61         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
62         to reflect the init late change
63
64         * bus/bus.c (bus_context_new): Check user before we fork so we can
65         print out an error message a user will be able to see
66
67 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
68
69         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
70
71         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
72         Add two more global locks for use on windows platforms.  These are
73         unused on non-windows platforms but are not ifdefed out to avoid
74         potential bugs (i.e. the few bytes lost does not warrent the extra
75         maintanence and complexity that having seperate sets of locks would
76         cause)
77
78 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
79
80         * bus/services.c (bus_registry_acquire_service): Return an error
81         when an application tries to register the org.freedesktop.DBus Bus Name
82
83         * bus/services.c (bus_registry_release_service): Return an error
84         when an application tries to release the org.freedesktop.DBus Bus Name
85
86 2006-08-17  Alp Toker  <alp@atoker.com>
87
88         * doc/dbus-specification.xml: Fix some minor typos.
89
90 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
91
92         * configure.in: use $with_init_scripts instead of $operating_system
93         to determine where to store the pid since the init scripts manipulate 
94         the pid file (patch from Marcelo Ricardo Leitner 
95         <marcelo dot leitner at terra dot com dot br>.  
96
97 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
98
99         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
100         static DBusList *uninitialized_condvar_list to support new late 
101         initialization threading model.  In this model threads can be initialized
102         even after the D-Bus API has been used but still needs to be initialized 
103         before the second thread has been started.  Mutexes and condvar addresses
104         are stored in the two static lists and are replaced with actuall locks
105         when threads are initalized.
106         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
107         the location into the static list
108         (_dbus_mutex_free_at_location): New method for removing a mutex location 
109         from the static list and freeing the mutex
110         (_dbus_condvar_new_at_location): New method for creating a conditional 
111         variable and placing the location into the static list
112         (_dbus_condvar_free_at_location): New method for removing a conditional
113         variable location from the static list and freeing the conditional variable 
114         (init_uninitialized_locks): Atomic method which goes through the static 
115         lists of mutex and condvar location and updates them with actuall locks
116         (init_global_locks): changed to init_locks
117         
118         * dbus/dbus-connection.c:
119         (_dbus_connection_test_get_locks): New method for tests to check connections
120         (_dbus_connection_new_for_transport): Use the new at_location mutex and
121         condvar API
122         (dbus_connection_allocate_data_slot): Pass in the global lock address
123         to _dbus_data_slot_allocator_alloc
124
125         * dbus/dbus-dataslot.c:
126         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
127         instead of the mutex itself
128
129         * dbus/dbus-message.c:
130         (dbus_message_allocate_data_slot): Pass in the global lock address
131         to _dbus_data_slot_allocator_alloc
132
133         * dbus/dbus-pending-call.c:
134         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
135         to _dbus_data_slot_allocator_alloc
136
137         * dbus/dbus-server.c:
138         (_dbus_server_init_base): Use the new at_location mutex API
139         (dbus_server_allocate_data_slot): Pass in the global lock address
140         to _dbus_data_slot_allocator_alloc
141
142         * test/name-test/test-threads-init.c: New test case for late thread
143         initialization
144
145 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
146
147         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
148         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
149         causes compile problems when asserts are turned off
150         Keeping _dbus_warn for printing out the message so even if
151         asserts are turned off the user gets the messages that something is 
152         wrong 
153
154 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
155
156         Patches by Kjartan Maraas <kmaraas at gnome dot org>
157
158         * bus/services.c (bus_service_list_queued_owners):
159         Add a pointer cast to fix compiler warning
160
161         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
162         return a NULL instead of FALSE since the return type
163         is not expecting a boolean
164
165         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
166         Remove unused variable
167
168         * dbus/dbus-marshal-recursive-util.c (node_new):
169         return a NULL instead of FALSE since the return type
170         is not expecting a boolean
171
172         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
173         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
174         because we are expecting a pointer not a boolean
175
176         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
177         add void as the parameter so some compilers
178         don't complain
179
180         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
181           _dbus_transport_new_for_tcp_socket):
182         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
183         because we are expecting a pointer not a boolean
184
185         * test/shell-test.c (test_command_line):
186         cast the second argument to _dbus_list_append to avoid compiler
187         warnings
188
189         * test/test-names.c (main): remove unused variable
190
191         * test/test-service.c (check_hello_from_self_reply):
192         Initialize echo_message and echo_reply to NULL
193         
194         * test/test-shell-service.c (handle_echo):
195         Remove unused variable and cast the third parameter passed to
196         dbus_connection_get_object_path_data to avoid compiler warrnings
197
198         * test/name-test/test-names.c (clear_message_queue):
199         Remove unused function
200
201         * test/name-test/test-pending-call-dispatch.c:
202         Fix format string in printf
203
204
205 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
206
207         * dbus/dbus-bus.c:
208         * test/name-test/test-names.c:
209         Remove test method dbus_bus_connection_get_unique_name because 
210         we already have public method dbus_bus_get_unique_name that 
211         does the exact same thing
212
213 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
214
215         * dbus/dbus-signature.c:
216         fix typos in Julio's previous patch which cause make check to fail
217
218 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
219
220         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
221         In any case it was wrong since this is a test checking to see if
222         address parsing is correct.  There was no need to get the true
223         tmp directory.  
224
225 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
226
227         * dbus/dbus-macros.h: Revert the addition of stddef.h
228         as we should not be adding it to library headers 
229
230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-signature.c:
233         Fix the unit tests so that they work if assertions are not enabled.
234         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
235
236 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
237
238         * tools/run-with-tmp-session-bus.sh:
239         * test/name-test/run-test.sh:
240         Remove bashisms (patch from Julio M. Merino Vidal
241         <jmmv at NetBSD dot org>)
242
243 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
244
245         * configure.in: add a version (>= 2.6.0) check for libxml2
246
247 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
248
249         * configure.in: make sure the compiler supports -Wfloat-equal
250         
251         * bus/dir-watch-dnotify.c: move functional code after 
252         variable declerations (C99 fix)  (patches from Jens Granseuer
253         <jensgr at gmx dot net>
254
255 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
256
257         * dbus/dbus-macros.h:
258         add #include <stddef.h> so that Sun compilers don't complain about
259         the defining NULL
260
261 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
262
263         * dbus/dbus-sysdeps.c:
264         * dbus/dbus-address.c:
265         * bus/activation.c:
266         * test/shell-test.c:
267         don't hardcode tmp directory (patch from Dave Meikle 
268         <dmk at davemeikle dot co dot uk>)
269
270 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
271
272         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
273         Change an assert to a detailed warning and abort.  
274         When allocator->lock != mutex it indicates that the user has failed
275         to initalize threads before using the D-Bus library.  This warning
276         helps the user identify the issue and fix their app.
277
278 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
279
280         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
281         with cleanups of bugs found from Coverity reports:
282
283         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
284         close the file on error to avoid a leak
285
286         * bus/expirelist.c (bus_expire_list_test):
287         Check for NULL on dbus_new0
288
289         * bus/activation.c (update_directory):
290         remove dead code
291
292         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
293         Fix some leaks
294
295         * bus/bus.c (process_config_every_time):
296         Fixed a leak
297
298         * bus/desktop-file.c (parse_key_value):
299         Fixed leak
300
301         * bus/selinux.c (bus_selinux_id_table_insert):
302         Fixed leak
303
304 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
305
306         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
307         remove dead code
308
309 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
310
311         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
312         #!/bin/bash
313
314 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
315
316         * Doxyfile.in: fix the INPUT line so we can generate docs 
317         when sourcedir != builddir (patch from Cygwin Ports maintainer
318         <yselkowitz at users dot sourceforge dot net>
319
320 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
321
322         * dbus/dbus-sysdeps.h:
323         * dbus/dbus-sysdeps.c: 
324         * dbus/dbus-string.c: 
325         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
326         GLib's function which does the same thing
327
328         * configure.in:
329         * bus/Makefile.am:
330         * bus/dir-watch-default.c:
331         * bus/dir-watch-dnotify.c:
332         * bus/dir-watch-kqueue.c:
333         Add kqueue directory watching for freebsd and split the directory
334         watching code into seperate files per method/arch
335         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
336
337 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
338
339         * configure.in:
340         * tools/Makefile.am:
341         * tools/dbus-launch.c:
342         * bus/Makefile.am:
343         allow --with-dbus-daemondir switch to be used to make the
344         daemon install to a seperate bindir like /usr/libexec
345         (patch from Brian Cameron <brian dot cameron at sun dot com)
346
347 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
348
349         * bus/Makefile.am (install-data-hook): removed the slash after 
350         $(DESTDIR) so we don't get the double slash which does not work
351         in windows (patch from Andras Porjesz 
352         <andras dot porjesz at siemens dot com>)
353
354 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
355
356         * dbus/dbus-sysdeps.h:
357         * dbus/dbus-sysdeps.c: 
358           add _dbus_printf_length (patch from Peter Kümmel 
359           <syntheticpp at gmx dot net>)
360
361 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
362
363         * dbus/dbus-internals.c: unistd.h is not used 
364         (_dbus_verbose_real): only enable verbose printing 
365         if DBUS_VERBOSE environment var is set to '1'
366         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
367
368 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
369
370         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
371         so we still compile on older gcc (patch from Frederic Peters 
372         <fpeters at 0d dot be>
373
374 2006-08-04  Havoc Pennington  <hp@redhat.com>
375
376         * configure.in: add -Wdeclaration-after-statement
377
378         * dbus/dbus-connection.c: change all the pending call stuff to
379         reflect the fact that pending call operations use the connection
380         lock
381
382         * dbus/dbus-pending-call.c: add locking here
383
384         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
385         field const consistent with how message field is done
386
387 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
388
389         * s/D-BUS/D-Bus/g
390
391 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
392
393         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
394         <in7y118 at public.uni-hamburg dot de> - fix invalid
395         read/write reported by valgrind
396
397 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
398
399         * Released 0.91
400
401 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
402
403         * dbus/dbus-connection.c:
404         (_dbus_connection_attach_pending_call_unlocked):
405         (connection_timeout_and_complete_all_pending_calls_unlocked):
406         Make sure we set timeout_added on pending calls to FALSE when
407         we remove the timeout from the connection
408
409 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
410
411         * Removed some extra bindings stuff lingering around (thanks timo)
412         * dbus-pendingcall.c (_dbus_pending_call_new): 
413         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
414         when we tried to take a lock on an already locked connection
415
416 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
417
418         * Released 0.90
419
420 2006-07-17  Havoc Pennington  <hp@redhat.com>
421
422         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
423         ints, reported by Owen Taylor
424
425 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
426
427         * doc/TODO:
428         * dbus/dbus-bus.c:
429         * dbus-errors.c:
430         * dbus/dbus-marshal-validate.c:
431           Removed TODO items which were fixed or are no longer relevent
432
433 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
434
435         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
436         Remove stray files from the stripped bindings
437
438 2006-07-16  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
441         Improve the error message on reply timeout
442
443 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
444
445         * Remove all bindings
446
447 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
448
449         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
450         and set pending_reply out arg to NULL is connection is disconnected
451         (connection_timeout_and_complete_all_pending_calls_unlocked): New
452         static method for cleaning up pending calls on disconnect
453         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
454         calls queued timeouts on disconnect 
455
456          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
457         Remove 
458
459 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
460
461         * bus/activation.[ch] (bus_activation_list_services): new function to 
462         get the list of services that can be activated
463
464         * bus/dispatch.c: test coverage for the new bus method
465         ListActivatableNames
466
467         * bus/driver.c: new bus method ListActivatableNames to get the list of
468         services that can be activated
469
470         * doc/dbus-specification.xml: ListActivatableNames method documentation
471
472 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
473         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
474         source files
475
476 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
477         * dbus/dbus-message-factory.c:
478         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
479
480 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
481         * dbus/dbus-connection-internal.h:
482         * dbus/dbus-connection.c:
483         * file dbus/dbus-pending-call.c:
484         * dbus/dbus-pending-call.h:
485         Make DBusPendingCall an opaque type even to D-Bus internals
486
487 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
488
489         * dbus/dbus-connection.h: remove connection_disconnect and replace with
490         connection_close
491
492         * dbus/dbus-connection.c: include dbus-bus.h
493         (_dbus_connection_read_write_dispatch): make static
494
495 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
496
497         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
498         function
499         (dbus_connection_dispatch): On disconnect unref any shared connections
500
501         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
502         for cleaning up shared connections on disconnect
503         (internal_bus_get): get a hard refrence to shared connections when
504         they are created
505         
506         * doc/TODO: Remove items which are no longer relevent or have been fixed
507         Split 1.0 todo items with a 0.90 freeze todo list
508  
509 2006-06-14  Ross Burton  <ross@openedhand.com>
510
511         * glib/dbus-gobject.c:
512         Free a leaking GArray (surely not!) in dbus_g_method_return.
513
514 2006-06-14  Ross Burton  <ross@openedhand.com>
515
516         * tools/Makefile.am:
517         * tools/dbus-monitor.c:
518         Don't use the GLib bindings in dbus-monitor (patch from Ralf
519         Habacker).
520         
521 2006-06-14  Ross Burton  <ross@openedhand.com>
522
523         * tools/dbus-print-message.c:
524         Also print the object path when outputting signals or method calls.
525
526 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
527
528         * qt/src/Makefile.am: install the qdbus.h header.
529         This allows people to actually use the installed code.
530
531 2006-06-12  Ross Burton  <ross@openedhand.com>
532
533         * glib/dbus-gproxy.c:
534         Don't leak a GArray when firing signals (thank Rob Taylor for review).
535
536 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
537
538         * Released 0.62
539
540 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
541
542         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
543         break pedantic builds. Closes bug 6043 (patch approved by
544         Havoc back in February).
545
546 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
547
548         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
549         that took a QDBusMessage parameter.
550         * qt/src/qdbusbus.h: Add a default flag for RequestName.
551         * qt/tools/dbus.cpp: Don't use automatic call because we might
552         be calling an async method: request a reply.
553
554 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
555
556         * test/qt/*: Update the testcases, including testing the new
557         functionality of sending null QByteArray and QString over the
558         bus. Add new headertest test and restore the old
559         qdbusxmlparser test.
560
561 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
562
563         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
564         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
565
566         * qt/examples/Makefile.am:
567         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
568         form.
569
570         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
571         QByteArray() (nulls) over the bus.
572         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
573         the one that has the signature suffix stripped.
574         * qt/src/qdbusreply.h: Make some methods const.
575
576 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
577
578         Patch from Timo Hoenig <thoenig@suse.de>.
579
580         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
581         required during build to EXTRA_DIST.
582         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
583         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
584         * configure.in: Fix "make dist", take care that the Makefile for
585         qt/dbus is being generated.
586
587 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
588
589         * bus/bus.c: Fix eavesdropping on method calls
590
591 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
592
593         * configure.in:
594         * dbus/dbus-userdb-util.c:
595         Add Solaris console owner patch from Artem Kachitchkine
596
597 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
598
599         * qt/Makfile.am:
600         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
601         reorganisation. Thanks to Timo Hoenig for pointing this out.
602
603 2006-06-06  Robert McQueen  <robot101@debian.org>
604
605         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
606           call to dbus_g_type_get_struct.
607
608 2006-06-06  Robert McQueen  <robot101@debian.org>
609
610         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
611           pointers were put into a GPtrArray-based specialised collection, and
612           then freed along with the array. GValues which you add into
613           collections or maps which have the NOCOPY flag set are assumed to not
614           belong to the caller, so rather than the existing pointer-stealing
615           semantics, they are copied instead. Given that the main consumers of
616           this abstraction are the bindings themselves, I don't think this is
617           too bad, but others should watch their choice of take vs set_static.
618
619 2006-06-06  Robert McQueen  <robot101@debian.org>
620
621         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
622           of g_slist_prepend not being used. Fixed copying of slist-based
623           specialised collections, then wrote a test case and found that it was
624           all broken. Went on to fix iterating and appending too. Good thing
625           nobody uses this code yet.
626
627 2006-06-06  Robert McQueen  <robot101@debian.org>
628
629         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
630           the iterators use gvalue_take_ptrarray_value (the GValues themselves
631           are discarded without unsetting, so it makes no difference whether
632           we take or set_static). Remove cases for G_TYPE_POINTER because
633           there really is nothing useful we can do with them in our
634           specialised types - we *need* boxed copy/free functions at the very
635           least.
636
637 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
638
639         * qt/dbus: Add directory. I had forgotten to add this
640         yesterday after the move...
641
642         * qt/examples/Makefile.am:
643         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
644
645         * qt/tools/Makefile.am:
646         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
647         Added feature to get and set properties.
648         Added validation of service, object path and interface names.
649
650         * qt/tools/dbusidl2cpp.cpp: Two new features:
651         1) Allow specifying both the header and the source file names,
652         by separating them with a colon.
653         2) Don't write an interface output if the -p switch wasn't
654         given, but the -a was.
655
656         * qt/src/*: Fix usage of Iterators and ConstIterators.
657         Fix shadowing of variables by other variables (-Wshadow).
658         Fix keyword-cleanliness in headers.
659         Fix ASCII-cast (QLatin1String, QLatin1Char).
660         Fix validation of member names.
661         Add extra checking of introspection data during XML parsing.
662         Various bug fixes.
663
664 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
665
666         * dbus/Makefile.am:
667         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
668         qt/dbus/qdbus.h now.
669
670 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
671
672         * configure.in: Make --disable-qt actually do
673           something. Patch inspired by Zack Rusin.
674
675 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
676
677         * qt/: Update to Subversion r548032.
678         This includes a big reorganisation of the files inside the
679         subdir.
680
681 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
682
683         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
684         clear:  
685         "Failed to connect to socket <host>:<port> <error>" instead of
686         "Failed to connect to socket <host>: <error>:<port>"
687
688         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
689         for a tcp transport. 
690
691 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
692
693         * qt/*: Update the QtDBus bindings up to revision 546310 in
694         Subversion.
695         This adds the dbuscpp2xml tool, that parses a C++ header and
696         outputs a D-BUS Introspection XML.
697
698 2006-05-21  Havoc Pennington  <hp@redhat.com>
699
700         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
701         is not NULL when it shouldn't be. Also a couple of possible fixes
702         for #4637 though I don't understand why the bug happens, to be
703         honest... also the object constructor has an assert name != NULL
704         and the name is only currently NULL for peer-to-peer proxies that 
705         I don't think anyone uses? So it should be asserting.
706         Anyway, for now at least see if we get an earlier assertion failure.
707
708         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
709         apparently broken code to be sure the tests fail and someone 
710         will fix them...
711
712 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
713
714         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
715         and arrays when they had a single element: has_next returns
716         false, even before you read the element. So, instead, check
717         the array length.
718
719 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
720
721         * qt/qdbusmessage.cpp:
722         * qt/qdbustypehelper_p.h:
723         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
724         the list is a const-reference
725
726 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
727
728         * Adding old doc patch that never got applied
729         
730         * dbus/bus.c (dbus_bus_add_match): Add documentation
731
732         * doc/dbus-specification.xml: Add documentation for the match rules
733           and the AddMatch and RemoveMatch methods
734
735 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
736
737         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
738         call (r535506)
739
740         * qt/dbusidl2cpp.cpp:
741         * qt/qdbusabstractadaptor.cpp:
742         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
743         sibling of the QDBusAbstractAdaptor objects instead of the
744         parent. (r535848)
745
746         * qt/dbusidl2cpp.cpp:
747         * qt/qdbusabstractinterface.cpp:
748         * qt/qdbusabstractinterface.h:
749         * qt/qdbusabstractinterface_p.h:
750         * qt/qdbusinterface.cpp: Make properties in interfaces
751         actually work. The code that was generated would not compile,
752         due to moc calls to functions that did not exist. They now
753         shall. (r536571)
754
755 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
756
757         * Makefile.am:
758         * configure.in:
759         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
760         Thanks to Brad Hards for providing the patch
761
762 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
763
764         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
765         call. (r535506)
766
767 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
768
769         * qt/examples/dbus.cpp: Enhance error messages and use
770         QDBusInterfacePtr.
771
772 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
773
774         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
775         and disable the copy operators. (r533772, r534746)
776
777         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
778
779         * qt/qdbusabstractinterface.cpp:
780         * qt/qdbusabstractinterface.h: Change the default call mode to
781         not use the event loop. Add convenience call() methods that
782         take a CallMode parameter. (r534042)
783
784         * qt/qdbusconnection.h: Change the default call mode to not
785         use the event loop. (r534042)
786
787         * qt/qdbusinterface.cpp:
788         * qt/qdbusinterface.h: Add a method to tell us if the
789         interface is valid (since we don't return a null pointer
790         anymore) (r534099)
791
792         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
793         (r534101)
794
795         * qt/qdbusinternalfilters.cpp: Decouple the introspection
796         function in two so taht we get the chance to introspect
797         without having a QDBusMessage (r534102)
798
799         * qt/qdbusbus.h:
800         * qt/qdbusconnection.cpp:
801         * qt/qdbusconnection_p.h:
802         * qt/qdbusintegrator.cpp: Keep a list of our own names to
803         avoid a round-trip to the server when attempting to introspect
804         one of our own objects. Also make sure the filter functions
805         match the empty interface as well. (r534108)
806         Don't keep the connection names. Instead, trust the unique
807         connection name (r534111)
808         Remove event loop usage (r534112)
809
810 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
811
812         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
813         Brad Hards.
814
815 2006-04-28  Robert McQueen  <robot101@debian.org>
816
817         * glib/dbus-gproxy.c: Fix properties so that they can be given in
818         any order, making it easier for people who inherit from this
819         object.
820
821 2006-04-28  Robert McQueen  <robot101@debian.org>
822
823         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
824         of memory from within pointer arrays and lists. Fixes bug #6300.
825
826 2006-04-28  Robert McQueen  <robot101@debian.org>
827
828         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
829         generating struct signatures. Fixes bug #6083.
830
831 2006-04-28  Robert McQueen  <robot101@debian.org>
832
833         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
834         to qdbusconnection_p.moc.
835
836 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
837
838         * README, INSTALL: Doc fixes
839         Patch from Brad Hards <bradh at frogmouth.net>
840
841 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
842
843         * qt/examples/dbus.cpp: Use the new merged-interface mode for
844         the dynamic meta object. No need to guess which interface to
845         call.
846
847 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
848
849         * qt/qdbusconnection_p.h:
850         * qt/qdbusmetaobject.cpp:
851         * qt/qdbusmetaobject_p.h:
852         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
853         for the dynamic meta object. No need to guess which
854         interface to call.
855         * qt/qdbusabstractinterface_p.h:
856         * qt/qdbusconnection.cpp:
857         * qt/qdbusintegrator.cpp:
858         * qt/qdbusinterface.cpp:
859         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
860         Add a QDBusRef that looks and behaves like DCOPRef.
861
862 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
863
864         * dbus/dbus-connection.c: Interfaces are optional in method
865         calls, so don't give up if the interface parameter is NULL.
866         Patch reviewed by Havoc Pennington.
867
868 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
869
870         * qt/qdbusreply.h: Add default constructor and operator=
871           (r532625)
872         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
873           in public headers (r532952)
874         * qt/qdbusabstractinterface.cpp:
875         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
876           make it the default (r532951)
877
878 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
879
880         * dbus/dbus-connection.c: Fix asserts
881         Patch from Tim Moloney <t.moloney at verizon.net>
882
883 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
884
885         * mono/Connection.cs, mono/Message.cs: Check Target type
886         Patch from Aaron Bockover (abockover at novell.com)
887
888 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
889
890         * INSTALL: fine-tune the requirements for the Qt4 binding.
891
892 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
893
894         * tools/dbus-print-message.c: Added support for printing of all 
895           remaining data types. Fixed logic for indentation of compound
896           data types.
897         
898 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
899
900         * INSTALL: fill out content of file providing DBus specific
901           build installations, followed by generic Auto* INSTALL file
902           content
903         
904 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
905
906         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
907           Patch by Stefan Eilers. (r529537)
908
909 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
910
911         * qt/qdbusinternalfilters.cpp: Don't show the parent's
912           contents (r528208)
913
914 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
915
916         * qt/Makefile.am: fix the dependency for
917           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
918           not in qdbusconnection.cpp.
919           Thanks to Jakub Stachowski <stachowski@hypair.net> for
920           spotting this.
921
922 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
923
924         * qt/examples/listnames.cpp:
925         * qt/examples/Makefile.am: Three ways to list the names on the
926           bus.
927
928 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
929
930         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
931           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
932
933 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
934
935         Merge from Subversion:
936         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
937           something that exists (r526315)
938         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
939           slots/signals (r526316)
940         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
941           also return an unknown-method error if the parameters don't
942           match for org.freedesktop.DBus.Properties. (r526842)
943         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
944         * qt/qdbusintegrator.cpp: Restore the proper order of
945           delivery: don't make method returns be delivered on priority
946           (r528150)
947
948 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
949
950         * configure.in qt/Makefile.am: add qt/examples
951         * qt/examples: Add QtDBus example programs:
952           - hello: Hello, World
953           - ping: Simple method-calling program
954           - pong: Simple object-exporting program (not using adaptors)
955           - complexping: Interactive method-calling program 
956                 (also gets and sets properties).
957           - complexpong: Sample program exporting methods, signals and
958                 properties, using adaptors.
959           - dbus: Simple implementation of a generic method-calling
960                 program, similar to 'dbus-send', but with semantics
961                 similar to 'dcop'.
962           - chat: Simplistic chat program, implemented using signals
963                 and the system bus. Looks like IRC.
964
965 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
966
967         * configure.in: Detect QtGui (necessary for one of the
968           example programs). Note: this increases the minimum required
969           version of Qt to 4.1.3.
970
971 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
972
973         * test/qt/*: Sync with KDE Subversion revision 523647.
974         Update the testcases to the new API. Remove testcases for
975         classes that are no longer public or have been removed.
976
977 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
978
979         * qt/*: 
980         * dbus/qdbus.h: Sync with KDE Subversion revision
981         523647. Hopefully, this will be the last of the
982         source-incompatible changes. Documentation has been improved;
983         support for QList<basic-types> has been added; QDBusObject is
984         gone; QDBus(Abstract)Interface is now a QObject with
985         auto-generated meta-object; QDBusIntrospection is marked
986         private, since QMetaObject can be used now; lots of bugfixes.
987
988 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
989
990         Patch from Milosz Derezynski <internalerror at gmail.com>
991         
992         * configure.in:
993         Output the service directory in the configure summary
994
995         * dbus-1.pc.in:
996         Add session_bus_services_dir
997
998 2006-03-10  Ross Burton  <ross@openedhand.com>
999
1000         * tools/dbus-print-message.c:
1001         Add support for object paths and signatures.
1002
1003 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1004
1005         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1006         config reload.
1007         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1008         information caches
1009         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1010         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1011         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1012         * dbus/dbus-userdb.h: Add function to flush all user/group information
1013         caches.
1014
1015 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1016
1017         * qt/dbusidl2cpp.cpp:
1018         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1019         for dcopidl2cpp, found in the KDE installations (or the more
1020         modern kalyptus): generate Qt4 C++ code for the input XML
1021         introspection. Currently no IDL parsing.
1022
1023 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1024
1025         * test/qt/*: Update the self-tests.
1026
1027 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1028
1029         * qt/*: 
1030         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1031         represents the first feature-complete version of the Qt4
1032         bindings since I took ove maintainership.
1033
1034 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1035
1036         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1037         dir. This is C++, so we can't use the DBus ones.
1038
1039 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1042         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1043
1044 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * dbus/dbus-connection.c: 
1047         (_dbus_connection_block_pending_call):
1048         Check to see if our data has already been read off the connection
1049         by another blocking pending call before we block in poll.
1050         (check_for_reply_and_update_dispatch_unlocked):
1051         Code taken from _dbus_connection_block_pending_call - checks for
1052         an already read reply and updates the dispatch if there is one.
1053
1054         * test/name-test/test-pending-call-dispatch.c:
1055         New test for making sure we don't get stuck polling a 
1056         dbus connection which has no data on the socket when
1057         blocking out of order on two or more pending calls.
1058
1059 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1060
1061         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1062         make/automake don't detect that we're talking about the same
1063         .lo file if I specify the full path to the source files.
1064
1065 2006-02-26  Havoc Pennington  <hp@redhat.com>
1066
1067         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1068
1069         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1070         session bus variable is unset, suggest "man dbus-launch" and "man
1071         dbus-daemon" to figure out how to fix the problem
1072
1073 2006-02-25  Havoc Pennington  <hp@redhat.com>
1074
1075         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1076         should make this thing use the new glib options parser
1077
1078 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1079
1080         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1081         .lo files taking moc sources.
1082
1083 2006-02-25  Havoc Pennington  <hp@redhat.com>
1084
1085         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1086         and install it as a public header
1087
1088 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1089
1090         * Released 0.61
1091
1092 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1093         
1094         * proxies.py: Fix the callchain
1095
1096 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1097         
1098         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1099
1100         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1101         dbus/dbus-sysdeps.c
1102
1103         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1104         call _dbus_group_info_free_allocated which causes infinite loop,
1105         correctly call _dbus_group_info_free
1106
1107 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1108
1109         * qt/qdbusinterface_p.h:
1110         * qt/qdbusinterface.cpp: Use the standard
1111         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1112         calls instead of creating one for us.
1113
1114         * qt/qdbusconnection_p.h:
1115         * qt/qdbusintegrator.cpp: Remove debugging code.
1116
1117         * qt/qdbusintegrator.cpp:
1118         * qt/qdbusmessage.cpp:
1119         * qt/qdbusmessage_p.h:
1120         * qt/qdbusmessage.h: Change the behaviour of automatic
1121         reply-sending: now a reply is always sent, unless the caller
1122         didn't request one or if the user slot has already sent one.
1123
1124 2006-02-16  Robert McQueen  <robot101@debian.org>
1125
1126         * configure.in: Patch from Debian packages by Sjoerd Simons
1127         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1128         arguments so it's possible to build both bindings in the
1129         same tree.
1130
1131         * qt/Makefile.am: Fix truncated value so that make dist works.
1132
1133 2006-02-16  Robert McQueen  <robot101@debian.org>
1134
1135         * acinclude.m4, configure.in: Patch from Brad Hards
1136         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1137         improving quoting, re-ordering a few checks, and a few other
1138         aesthetic tidy-ups.
1139
1140 2006-02-16  Robert McQueen  <robot101@debian.org>
1141
1142         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1143         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1144         assertion that the next element to read from the iter is fixed in
1145         size. This is not the case when you are at the end of the iter,
1146         because the next element type is INVALID.
1147
1148         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1149         a bogus assert which means that you may not initialise a 0-length
1150         string unless you provide a non-NULL pointer. This prevented
1151         you from marshalling messages containing zero-length arrays in
1152         some cases.
1153
1154         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1155         from Rob to correct bogus asserts when trying to demarshal an
1156         array and get_fixed_array got you 0 elements. Append nothing to
1157         the GArray in this case.
1158
1159         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1160         an empty array via the glib bindings. Without all of the above
1161         patches, this new test fails.
1162
1163 2006-02-16  Robert McQueen  <robot101@debian.org>
1164
1165         * glib/dbus-gmain.c: Make the previous commit compile.
1166
1167         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1168         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1169         specify sender_keyword="foo", path_keyword="bar" when adding
1170         a signal listener, so that you can bind to signals generically
1171         but still do something useful in your callback.
1172
1173         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1174         chars so that they're not cast to chars and made negative. Thanks
1175         to Jakub Stachowski for reporting this and testing the fix.
1176
1177 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1178
1179         * dbus/dbus-glib.h:
1180         * glib/dbus-gmain.h:
1181         (dbus_g_connection_open): new method for openning
1182         a connection to an arbitrary address in the glib bindings
1183
1184         * ChangeLog: checkin last entry which doesn't seem to be commited
1185
1186 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * tools/dbus-launch.c: Fixed sh syntax output
1189
1190 2006-02-13  Robert McQueen  <robot101@debian.org>
1191
1192         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1193         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1194         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1195         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1196         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1197         missing piece of the glib bindings jigsaw puzzle. This modifies
1198         the existing specialised types to have N type parameters (rather
1199         than the current 1 or 2 for arrays and dictionaries respectively).
1200         You can then use this to get a glib type to represent any arbitrary
1201         D-Bus struct type using dbus_g_type_get_struct. The only
1202         implementation of these types is with GValueArrays as before,
1203         but it's now possible to store these in arrays, emit them in
1204         signals, etc.
1205
1206 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1207
1208         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1209         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1210         <thiago.macieira at trolltech.com>
1211
1212 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1215         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1216
1217 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1218
1219         * bus/connection.c (bus_connections_expect_reply): Make
1220         pending reply limit not common to all connections (Bug #5416)
1221         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1222
1223 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1226
1227 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1230         patch from Doug Goldstein <cardoe at gentoo.org>
1231
1232 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1233
1234         * mono/Arguments.cs: Fix a magic number in the mono bindings
1235         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1236
1237 2006-01-27  Robert McQueen  <robot101@debian.org>
1238
1239         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1240         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1241         when generating the client-side methods, instead of overloading
1242         CSymbol which broke everything horribly. My apologies.
1243
1244 2006-01-27  Robert McQueen  <robot101@debian.org>
1245
1246         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1247         by me and Rob Taylor to add a simple_free function to D-Bus map
1248         and collection types, which allows those types which can be freed
1249         with a GDestroyNotify (such as GHashTables and GArrays, but not
1250         GPtrArrays) to be stored as the values in hashtables.
1251
1252         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1253         Patch by Rob Taylor to add nested dicts to the glib tests to check
1254         the above code works, and appears not to leak when called repeatedly.
1255
1256 2006-01-27  Robert McQueen  <robot101@debian.org>
1257
1258         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1259         to free a D-Bus allocated string with dbus_free () instead of
1260         g_free ().
1261
1262 2006-01-27  Iain Holmes  <iain@openedhand.com>
1263
1264         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1265         method from being called multiple times.
1266
1267 2006-01-19  Robert McQueen  <robot101@debian.org>
1268
1269         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1270         <rob.taylor@collabora.co.uk> to add support for generating bindings
1271         to arrays that are represented as GPtrArrays rather than GArrays (ie
1272         size-variable things, such as strings, objects, structs, etc).
1273
1274 2006-01-05  Robert McQueen  <robot101@debian.org>
1275
1276         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1277         <ricardo.kekki@movial.fi> to make it possible to inherit from
1278         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1279         a private part, and moving the setting of the DBusGProxyManager into a
1280         connection property, allowing proper GObject construction.
1281
1282 2006-01-05  Robert McQueen  <robot101@debian.org>
1283
1284         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1285         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1286         annotations when generating glib client bindings.
1287
1288 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1289
1290         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1291
1292         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1293
1294 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1295
1296         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1297
1298 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1299
1300         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1301
1302 2005-12-19  Ross Burton  <ross@openedhand.com>
1303
1304         * doc/dbus-tutorial.xml:
1305         Document the Glib client-side bindings, and list all possible annotations.
1306
1307 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1308
1309         * dbus/bus.c (dbus_bus_release_name): Add documentation
1310
1311 2005-12-06  Robert McQueen  <robot101@debian.org>
1312
1313         * python/service.py: s/sucessful/successful/ so we're allocating to
1314         and reading from the same variable. Oops.
1315
1316 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * Released 0.60
1319
1320 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * test/qt/Makefile.am: build from srcdir
1323
1324         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1325         Note - this code is wrong and needs to be fixed by the Qt binding
1326         developers.  The flags should be treated as bitfields and not enums.
1327
1328         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1329
1330 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1333           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1334           in production code
1335
1336 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1339         method for getting messages off the bus in the absence of a
1340         mainloop.  This method is much like 
1341         dbus_connection_read_write_dispatch except it does not dispatch
1342         the messages to a registered filter function.  Instead it
1343         allows a developer to process messages by directly popping
1344         them off the bus.
1345
1346 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1349         the parser to continue instead of returning error
1350         (bus_desktop_file_load): Do not free parser data when
1351         parse_section_start or parse_key_value fails because it was 
1352         already freed by parser_free (patch from Carlos Garcia Campos  
1353         <carlosgc at gnome.org>)
1354
1355 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1356
1357         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1358         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1359         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1360         test/test-segfault.c, test/test-utils.c,
1361         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1362         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1363         Various cleanup of dead code and compiler warnings (patch from
1364         Kjartan Maraas <kmaraas at gnome.org>) 
1365
1366 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1369         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1370
1371 2005-11-27  Robert McQueen  <robot101@debian.org>
1372
1373         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1374         part of the preceding one. Oops. Merge patch by Johan Hedberg
1375         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1376         on big-endian platforms.
1377
1378         * test/python/test-client.py: Add some 16-bit integers to the test
1379         values.
1380
1381 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1382
1383         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1384         method return message for property getters
1385
1386 2005-11-27  Robert McQueen  <robot101@debian.org>
1387
1388         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1389         with type v of an instance of dbus.Variant(foo, type='x') caused
1390         it to be boxed twice before sending over the bus.
1391
1392         * python/dbus_bindings.pyx, python/service.py,
1393         test/python/test-client.py: Update the constants for the new
1394         request_name flags, and update comments/test cases now that queueing
1395         is the default action.
1396
1397 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * configure.in:
1400         - Change version to 0.60 for impending release
1401         - upped the sonames because of ABI and API breakage
1402
1403 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         * configure.in: Add test/name-test/Makefile to the generated
1406         Makefile list
1407
1408         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1409         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1410         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1411         not to queue an ower if it can't be the primary owner
1412
1413         * bus/bus.h: Add new internal BusOwner struct
1414
1415         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1416         to bus_registry_ensure and don't set the prohibit_replacement flag
1417         since they are now set per BusOwner and not per name.
1418         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1419         that returns the list of connections in a name's connection queue
1420         
1421         * bus/services.c (struct BusService): remove prohibit_replacement field
1422         (struct BusOwner): new struct for keeping track of queued connections
1423         and their associated flags for the queue
1424         (struct BusRegistry): add a BusOwner memory pool
1425         (bus_registry_new): initialize the BusOwner memory pool
1426         (bus_registry_unref): free the BusOwner memory pool
1427         (_bus_service_find_owner_link): new internal method for
1428         searching the queue for a specific connection
1429         (bus_owner_set_flags): new method for adding setting the flags on a
1430         bus owner
1431         (bus_owner_new): new method that creates a BusOwner object from the
1432         pool and sets its flags
1433         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1434         (bus_registry_ensure): Add the flags parameter
1435         (bus_registry_acquire_service): Switch from using raw connections to
1436         using the BusOwner struct
1437         Add new state machine for dealing with the new set of flags
1438         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1439         cancel_ownership, free_ownership_cancel_data, 
1440         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1441         restore_ownership, free_ownership_restore_data, 
1442         add_restore_ownership_to_transaction): Switch to using BusOwner 
1443         instead of raw connections
1444         (bus_service_add_owner): Add flags parameter
1445         Switch to using BusOwner instead of raw connections
1446         Add state machine for dealing with the new set of flags
1447         (bus_service_swap_owner): Swaps the first and second owners in the
1448         queue.  Used to make sure proper signals are sent when a service looses 
1449         or gains primary ownership.  We never insert an owner at the top of the
1450         queue.  Instead we insert it in the second position and then swap.
1451         (bus_service_remove_owner): Remove the owner from the queue sending
1452         out the NameLost and NameOwnerChanged signals if the we were the 
1453         primary owner
1454         (bus_service_get_primary_owners_connection): New method that extracts
1455         the connection from the primary owner
1456         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1457         connection
1458         (bus_service_get_allow_replacement): Changed from the old 
1459         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1460         primary owner and returns if it can be replaced or not
1461         (bus_service_set_prohibit_replacement): removed
1462         (bus_service_has_owner): returns TRUE if and owner with
1463         the specified connection exists in the queue
1464         
1465         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1466         method that only compiles if tests are enabled.  Allows us to get the 
1467         unique name of a connection so we can check it against the queue when
1468         doing regression tests
1469
1470         * bus/activation.c (bus_activation_send_pending_auto_activate),
1471         bus/dispatch.c (bus_dispatch),  
1472         bus/driver.c (bus_driver_handle_get_service_owner, 
1473         bus_driver_handle_get_connection_unix_user, 
1474         bus_driver_handle_get_connection_unix_process_id,
1475         bus_driver_handle_get_connection_selinux_security_context),
1476         bus/signals.c (connection_is_primary_owner): 
1477         use bus_service_get_primary_owners_connection instead of
1478         bus_service_get_primary_owner
1479
1480         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1481         _dbus_listen_unix_socket): Calculate the length of the socket
1482         path and use that instead of using a fixed length which was
1483         causing socket names to contain many trailing Nul bytes.
1484
1485         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1486         (dbus_g_method_get_sender): New method for extracting the sender 
1487         from a DBusGMethodInvocation
1488         (dbus_g_method_return_get_reply): changed name to 
1489         dbus_g_method_get_reply
1490         (dbus_g_method_return_send_reply): changed name to
1491         dbus_g_method_send reply
1492
1493         * doc/dbus-specification.xml: New docs that describe how the new
1494         queueing system works and talks about the changes to the how
1495         we specify socket names
1496
1497         * glib/examples/example-service.c, 
1498         glib/examples/example-signal-emitter.c,
1499         glib/examples/statemachine/statemachine-server.c:
1500         Changed the RequestName flags to the new system
1501
1502         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1503         regression test suite for testing various states of the new
1504         queueing system
1505         
1506 2005-11-15  Robert McQueen  <robot101@debian.org>
1507
1508         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1509         Taylor to add two methods, dbus_g_method_return_get_reply and
1510         dbus_g_method_return_send_reply, to allow you to get the reply
1511         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1512         and send it. The GLib bindings can't marshal a return value of
1513         something like a(s) if the array is empty - ultimately they should be
1514         made to heed the signature of the out arguments as the Python bindings
1515         now can, but this is a workable interim solution which might have
1516         other applications.
1517
1518 2005-11-15  Robert McQueen  <robot101@debian.org>
1519
1520         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1521         method to org.freedesktop.DBus to release a bus name or give up
1522         waiting in the queue for it.
1523
1524         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1525         dbus_bus_release_name method to send the ReleaseName method calls.
1526         Add constants for the return values to dbus/dbus-shared.h.
1527
1528         * doc/dbus-specification.xml: Document the new ReleaseName method
1529         in the specification.
1530
1531         * python/dbus_bindings.pyx: Add a low-level python binding for the
1532         release name method.
1533
1534         * python/exceptions.py, python/service.py: Make freeing BusName
1535         objects release the name. Add a NameExistsException, and fix a
1536         bug with creating UnknownMethodException.
1537
1538         * test/python/test-client.py: Add tests for freeing BusName
1539         objects causing names to be released.
1540
1541 2005-11-14  Robert McQueen  <robot101@debian.org>
1542
1543         * python/service.py: Include the traceback in the error reply when we
1544         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1545
1546 2005-11-14  David Zeuthen  <davidz@redhat.com>
1547
1548         Patch from Timo Hoenig <thoenig@suse.de>.
1549
1550         * bus/bus.c: I've recently investigated why the automatic reload
1551         of configuration files does not work as expected.
1552
1553         Currently, reloading configuration files does only work when
1554         running dbus-daemon with --nodaemon.  If we are running as daemon
1555         we're hitting a dnotify bug once we fork the process.
1556
1557         We're initializing the dnotify fds before calling fork().  Once
1558         the child process forked it does still have the fds (and they
1559         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1560         getting SIGIO as changes are made to the configuration files.
1561
1562         The attached patch moves the initialization of the dnotify fds to
1563         process_config_postinit().  This is safe for all current code
1564         paths and solves the dnotify disfunction.  If we're running
1565         dbus-daemon as daemon the fds for dnotify are now being
1566         initialized after fork() for the child process.
1567
1568         * configure.in: The current configure.in check for dnotify probes
1569         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1570         match for 'xlinux', too. Additionally I have adapted the configure
1571         option's style to match with the others.
1572
1573 2005-11-14  Robert McQueen  <robot101@debian.org>
1574
1575         * python/decorators.py, python/service.py: Add a new argument to the
1576         dbus.service.method decorator called sender_keyword, which if set,
1577         specifies the name of an argument which will be provided the bus
1578         name of the method caller.
1579
1580         * test/python/test-client.py, test/python/test-service.py: Add a
1581         method and test to check the sender_keyword functionality.
1582
1583 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1584
1585         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1586         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1587         Simons <sjoerd at luon.net>)
1588
1589         * AUTHORS: Add Robert McQueen for his work on the Python
1590         Bindings and other parts of D-Bus
1591
1592 2005-11-07  Robert McQueen  <robot101@debian.org>
1593
1594         * python/decorators.py: Change emit_signal function to use the
1595         signature annotation of the signal when marhsalling the arguments from
1596         the service. Fix a bug where the code checking signature length
1597         against argument length referenced the wrong variable.
1598
1599         * python/introspect_parser.py: Avoid adding the type signature of
1600         signal arguments to any methods which occur after them in the
1601         introspection data (!) by making the parser a little more careful
1602         about its current state.
1603
1604         * python/service.py: Remove debug prints from last commit (again :D).
1605
1606         * test/python/test-client.py, test/python/test-service.py: Add test
1607         signals with signature decorators to test the strict marshalling code
1608         gives errors at the right time. Could do with checking the signals
1609         actually get emitted too, given that the test does nothing with
1610         signals at the moment...
1611
1612 2005-11-07  Robert McQueen  <robot101@debian.org>
1613
1614         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1615         instances to stop madness of creating new instances representing
1616         the same bus connection all the time, rendering any tracking of
1617         match rules and bus names quite meaningless. Caught a bug where
1618         the private argument to SessionBus() and friends was being passed
1619         in as use_default_mainloop by mistake. Still some problems with
1620         multiple dbus_binding.Connection instances representing the same
1621         low-level connection (eg when you use both SessionBus() and
1622         StarterBus() in same process), but it's a lot better now than it
1623         was.
1624
1625         * python/dbus_bindings.pyx: Add constants with the return values
1626         for bus_request_name().
1627
1628         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1629         and retrieve the same instances for the same name, so deletion can be
1630         done with refcounting. Also now throws some kind of error if you
1631         don't actually get the name you requested, unlike previously...
1632
1633         * test/python/test-client.py: Add tests for instance caching of buses
1634         and bus name objects.
1635
1636 2005-11-04  Robert McQueen  <robot101@debian.org>
1637
1638         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1639         marshalling of boolean values. Add some booleans to the values in
1640         the test client.
1641
1642         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1643         argument to the dbus.service.method decorator, which allows you to
1644         name arguments to take two callback functions for replying with
1645         return values or an exception.
1646
1647         * test/python/test-client.py, test/python/test-service.py: Add test
1648         case using asynchronous method reply functions, both return values and
1649         errors, and from within both the function itself and from a mainloop
1650         callback.
1651
1652         * python/decorators.py, python/service.py: Perform checking that the
1653         number of method/signal arguments matches the number of types in the
1654         signature at class loading time, not when you first introspect the
1655         class.
1656
1657         * python/service.py: Remove debug print left by the last commit.
1658
1659 2005-11-03  Robert McQueen  <robot101@debian.org>
1660
1661         * python/service.py: Heavy refactoring of method invocation, with
1662         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1663         in favour of a new _message_cb that uses seperate functions for
1664         looking up the method to call, marshalling the return values, and
1665         sending exceptions as errors, and is easier to follow as a
1666         consequence.  Fixes some corner cases about returning things that
1667         don't match your declared out_signature, allows exceptions to define
1668         _dbus_error_name and have it be sent over the bus as the error name,
1669         and paves the way for cool stuff like heeding the message no reply
1670         flag, asynchronous method implementations, informing the method of the
1671         sender, and including backtraces in the error messages.
1672
1673         * test/python/test-client.py: Catch and print exceptions thrown in the
1674         async callback tests, rather than passing them to the low-level
1675         bindings to be ignored in a noisy and frustrating manner.
1676
1677 2005-11-03  Robert McQueen  <robot101@debian.org>
1678
1679         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1680         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1681         tweak others to be consistent.
1682
1683         * test/python/test-client.py: Tweak output of testInheritance.
1684
1685 2005-10-29  Robert McQueen  <robot101@debian.org>
1686
1687         * python/service.py: Major changes to allow multiple inheritance
1688         from classes that define D-Bus interfaces:
1689         
1690          1. Create a new Interface class which is the parent class of
1691             Object, and make the ObjectType metaclass into InterfaceType.
1692         
1693          2. Patch written with Rob Taylor to replace use of method_vtable
1694             with code that walks the class's __MRO__ (method resolution order)
1695             to behave like Python does when invoking methods and allow
1696             overriding as you'd expect. Code is quite tricky because
1697             we have to find two methods, the one to invoke which has the
1698             right name and isn't decorated with the /wrong/ interface,
1699             and the one to pick up the signatures from which is decorated
1700             with the right interface.
1701         
1702             The same caveats apply as to normal multiple inheritance -
1703             this has undefined behaviour if you try and inherit from two
1704             classes that define a method with the same name but are
1705             decorated with different interfaces. You should decorate
1706             your overriding method with the interface you want.
1707         
1708          3. Replace grungy introspection XML generation code in the metaclass
1709             with dictionaries that cope correctly with multiple inheritance
1710             and the overriding of methods. This also uses the signature
1711             decorations to provide correct introspection data, including
1712             the debut appearance of the types of your return values. :D
1713
1714         * test/python/test-client.py, test/python/test-service.py: Add a test
1715         case to try invoking an method that overrides one inherited from a
1716         D-Bus interface class.
1717
1718 2005-10-29  Robert McQueen  <robot101@debian.org>
1719
1720         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1721         Add checking for the end of struct character when marshalling a
1722         struct in MessageIter.append_strict.
1723
1724         * python/examples/example-service.py,
1725         python/examples/gconf-proxy-service.py,
1726         python/examples/gconf-proxy-service2.py: Update to use gobject
1727         mainloop directly rather than appearing to depend on gtk.
1728
1729         * python/test/test-client.py, python/test/test-server.py: Remove
1730         obsolete and broken test scripts for old bindings. We have up to date
1731         and working tests in test/python/.
1732
1733 2005-10-29  Robert McQueen  <robot101@debian.org>
1734
1735         * python/decorators.py: Add optional arguments to the method and
1736         signal decorators to allow you to specify the signature of arguments
1737         and return values. Preserve the doc strings of signal functions in the
1738         decorated version, for pydoc and friends.
1739
1740         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1741         parse_signature_block function with an iterable dbus.Signature()
1742         type. Fix a bug in MessageIter.append_strict where you could append
1743         anything by claiming it was a string.
1744
1745         * python/service.py: Use the out_signature decoration on methods to
1746         marshal return values, meaning you no longer require dbus.Array()
1747         or dbus.Dictionary() to indicate the type when returning empty
1748         arrays or dictionaries. Fix a bug where exceptions which are defined
1749         in __main__ are not turned into error replies.
1750
1751         * test/python/test-client.py, test/python/test-service.py: Add test
1752         for correct marshalling of return values according to out_signature.
1753         Fix a bug in the async call test where the error_handler is missing a
1754         self argument.
1755
1756 2005-10-29  Robert McQueen  <robot101@debian.org>
1757
1758         * glib/Makefile.am, glib/examples/Makefile.am,
1759         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1760         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1761
1762         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1763
1764         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1765         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1766         the command line.
1767
1768 2005-10-27  Ross Burton  <ross@openedhand.com>
1769
1770         * dbus/dbus-marshal-header.c:
1771         Remove dead code.
1772
1773         * glib/dbus-gobject.c:
1774         Stop compiler warning.
1775
1776 2005-10-25  Ross Burton  <ross@openedhand.com>
1777
1778         * dbus/dbus-auth.c:
1779         * dbus/dbus-server-unix.c:
1780         * dbus/dbus-transport-unix.c:
1781         * glib/dbus-gmain.c:
1782         * glib/dbus-gobject.c:
1783         Add some const keywords.
1784
1785 2005-10-25  Ross Burton  <ross@openedhand.com>
1786
1787         * doc/dbus-specification.xml:
1788         Document the NoReply annotation.
1789
1790         * glib/dbus-binding-tool-glib.h:
1791         * glib/dbus-binding-tool-glib.c:
1792         Respect the NoReply annotation.
1793
1794 2005-10-24  Robert McQueen <robot101@debian.org>
1795
1796         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1797         derive from unicode instead of str, and encode/decode UTF-8 when
1798         marshalling/unmarshalling bus messages
1799
1800         * python/introspect_parser.py: encode introspection data as UTF-8
1801         before passing the buffer into libxml2
1802
1803         * test/python/test-client.py: add unicode test strings
1804
1805         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1806         ignore generated python test files
1807
1808 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1809
1810         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1811         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1812         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1813
1814         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1815         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1816         when constructing struct signatures
1817
1818         * python/_dbus.py (Bus): handle private connections using the
1819         private keyword in the constructor. defaults to private=False
1820         (Bus::close): new method to close a connection to the bus
1821
1822         * python/dbus_bindings.pyx (Connection::close): renamed method
1823         was previously called disconnect
1824         (bus_get): now supports getting a private connection
1825
1826         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1827         keyword is set to True.  if it is, execute the method without waiting
1828         for a reply
1829         (ProxyObject::_introspect_execute_queue): new method for executing
1830         all the pending methods that were waiting for the introspect to
1831         finish.  this is called when introspect either succeeds or fails
1832         (ProxyObject::_introspect_error_handler): call queued methods
1833
1834 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1835
1836         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1837         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1838
1839         * python/service.py (Object::_message_cb): handle exceptions correctly
1840         by sending them over the wire to the calling app.  This makes sure
1841         the client returns immediately instead of waiting the 15 seconds to
1842         timeout.
1843
1844         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1845         Add a test to benchmark how long it takes to introspect a service and 
1846         call a method which returns a large element (pretty fast)
1847
1848         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1849         method which pushes a lot of data
1850
1851 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1854         reclaim memory outside of the loop and use del istead of just setting
1855         the key to None
1856
1857 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * python/service.py (ObjectType::_reflect_on_signal): Always close
1860         signal tag even when there are no arguments
1861
1862 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * configure.in: Set mono, mono-docs and Qt3 to default
1865         to no instead of auto when building.  These bindings do not
1866         have full time maintainers and will not be supported for the
1867         1.0 release.
1868
1869 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1870
1871         patches from Michael Krivoruchko <misha at sun.com>: 
1872         
1873         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1874         _dbus_connection_message_sent, 
1875         _dbus_connection_send_preallocated_unlocked_no_update, 
1876         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1877         is NULL when calling _dbus_verbose
1878
1879         * configure.in: check for functions getpeerucred and getpeereid
1880
1881         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1882         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1883         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1884         Patch was only tested on Solaris 10 x86 so it might be issues
1885         with other platforms (i.e. BSDs and MacOSX)
1886         
1887
1888 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1889
1890         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1891         instead of marshal basic so we can handle recursive types in a variant
1892
1893         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1894         in variants
1895
1896         * test/glib/test-service-glib.c, test-service-glib.xml
1897         (my_object_echo_variant [EchoVariant], 
1898         my_object_process_variant_of_array_of_ints123
1899         [ProcessVariantOfArrayOfInts123]): 
1900         Add two test methods
1901
1902         * python/introspect_parser.py: New module for parsing introspect
1903         data.
1904
1905         * python/dbus_bindings.pyx:
1906         (various places): when throwing errors fix to use errormsg instead 
1907         of message local variable because Pyrex can get confused with other 
1908         message variables (initial patch by Robert McQueen 
1909         <robert.mcqueen at collabora.co.uk>)
1910         (MessageIter::parse_signature_block): new method for getting the next
1911         block in a signiture.
1912         (MessageIter::append_strict): new method for appending values strictly
1913         using the passed in signature instead of guessing at the type
1914         (MessageItter:: append_dict, append_struct, append_array): use 
1915         signatures to marshal children if the signature is available
1916         
1917         * python/exceptions.py (IntrospectionParserException): new exception
1918
1919         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1920         introspected signatures if available, else we fall back to the
1921         old way of doing things.
1922         (ProxyObject::_introspect_reply_handler ): parse introspection data
1923         
1924         * python/service.py (ObjectType::_reflect_on_method): Properly
1925         terminate <method> if there are no args in the reflection data
1926
1927         * test/python/test-client.py: add tests for talking with the GLib
1928         test server.  This gives us better coverage for introspection since
1929         python to python will always generate arguments as variants.  It also
1930         allows us to test the robustness of the GLib bindings and interlanguage
1931         communications.
1932
1933         
1934 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1935
1936         * bus/driver.c (bus_driver_handle_introspect): Add signals
1937         to the introspect data. (patch from Daniel P. Berrange 
1938         <dan at berrange.com>)
1939
1940         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1941         
1942         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1943         _dbus_connection_run_builtin_filters): Changed these to
1944         be unlock_no_update functions and call 
1945         _dbus_connection_send_unlocked_no_update instead of
1946         dbus_connection_send to avoid locking errors.
1947         
1948         * doc/TODO: Removed the make Ping test TODO
1949         
1950 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1953         We now copy the message from a DBusError and then free 
1954         the error object befor throwing the error
1955
1956         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1957         DBusBindingOutputMode enum which was causing a warning.
1958         #include <time.h> so using time_t is explicitly defined
1959
1960 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1961
1962         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1963         - dbus/dbus-bus.c
1964         (internal_bus_get): new method that take over the heavy lifting
1965         of dbus_bus_get and adds the ability to get a private connection
1966         to the bus
1967         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1968         interface as in previous versions
1969         (dbus_bus_get_private): new method that is a wrapper to 
1970         internal_bus_get to get a private connection to the bus
1971
1972         - dbus/dbus-bus.h
1973         (dbus_bus_get_private): add as a public libdbus interface
1974
1975         - dbus-1.pc.in: output system_bus_default_address and 
1976         sysconfdir variables so apps can use them when compiling
1977
1978 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1979         * dbus/qt: New Qt bindings
1980
1981 2005-09-12  Waldo Bastian  <bastian@kde.org>
1982
1983         * dbus/dbus-marshal-validate.c,
1984         doc/dbus-specification.xml, test/Makefile.am,
1985         test/test-names.c: allow hyphens in bus names.
1986
1987 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1988
1989         * test/data/auth/fallback.auth-script: we don't
1990         retry the EXTERNAL method when we know its going
1991         to fail anymore.
1992
1993 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1994
1995         * dbus/dbus-connection-internal.h: rename
1996         (add|remove|toggle)_(watch|timeout) to unlocked()
1997         
1998         * dbus/dbus-connection.c: ditto.
1999         
2000         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2001         Update some callers for the renaming.
2002
2003 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2004
2005         * dbus/dbus-auth.c: (record_mechanisms): don't
2006         retry the first auth mechanism because we know
2007         we're just going to get rejected again.
2008         
2009         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2010         Fix thinko ... and what a nasty little bugger to
2011         track down you were ...
2012
2013         * dbus/dbus-connection.c:
2014         (_dbus_connection_add_watch),
2015         (_dbus_connection_remove_watch): add note about
2016         these needing the connection to be locked.
2017         (_dbus_connection_get_dispatch_status_unlocked):
2018         set status to DATA_REMAINS when we queue the
2019         disconnected message.
2020         
2021         * bus/dispatch.c:
2022         (bus_dispatch): fix warning.
2023         (check_existent_service_no_auto_start):
2024         Expect ChildSignaled error too.
2025         (check_existent_hello_from_self): fix another
2026         couple of warnings.
2027         
2028 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2029
2030         Patches from James Willcox <snorp@snorp.net>
2031
2032         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2033
2034         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2035         support array "out" parameters.
2036
2037         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2038         for 16-bit int support.
2039
2040 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2041
2042         * Released 0.50
2043
2044         * Patch from Steve Grubb:
2045         - bus/activation.c (bus_activation_service_reload_test): clean up
2046         some indentation
2047         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2048         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2049         buffer overflows in the test suite.  This is non critical because
2050         it can not be exploited and this code is only run when doing a 
2051         make check.
2052
2053         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2054         - configure.in: Don't check and link against kdecore, only qt headers
2055         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2056         - gcj/org/freedesktop/dbus/Makefile.am:
2057         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2058         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2059         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2060         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2061         - tools/Makefile.am: Add platform extentions to binaries 
2062         (i.e. .exe on windows)
2063
2064         * configure.in: 
2065         - Make it so if no suitable version of python is found we only 
2066         disable building python instead of exiting the configure script
2067         - Require version 2.4 of glib for glib bindings
2068         - Up version to 0.50
2069
2070         * python/__init__.py: Sync version with libdbus to (0,50,0)
2071         
2072 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2073
2074         * dbus/dbus-object-tree.c (find_subtree_recurse):
2075         a couple of optimizations (bug #710):
2076         - do a binary search in the tree
2077         - insert a new child at the right place directly, no need for
2078           qsort anymore
2079         - do the "double alloc" thing when allocating children
2080
2081 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2082
2083         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2084
2085         * python/dbus_bindings.pyx: Memory management foo
2086         (global): remove hacky _user_data_references global list
2087         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2088         tuples. Unref user_data
2089         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2090         (Connection::__del__): Remove and replace with __dealloc__ method
2091         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2092         to keep tuple from being deallocated instead of the global var hack
2093         (Connection::register_object_path): Stuff user_data into a tuple.
2094         Use Py_INCREF to keep tuple from being deallocated instead of the 
2095         global var hack
2096         (Connection::register_fallback): Stuff user_data into a tuple.
2097         Use Py_INCREF to keep tuple from being deallocated instead of the 
2098         global var hack
2099         (GIL_safe_pending_call_notification): Don't unref the message
2100         because it gets unreffed when going out of scope.  Py_XDECREF
2101         the user_data
2102         (PendingCall::__del__): Remove and replace with __dealloc__ method
2103         (PendingCall::set_notify): ref the pending call because we will
2104         need it to stick around for when the notify callback gets called
2105         (Message::__del__): Remove and replace with __dealloc__ method
2106
2107         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2108         gthreads_init to match up with the dbus call
2109
2110         * python/glib.py (init_threads): Changed to threads_init to match
2111         up with gobject.threads_init().  init_threads is kept for backwards
2112         compat but will most likely be deprecated in the future
2113
2114         * test/python/test-client.py: 
2115         - revamp to use Python's unittest functionality
2116         - add async call tests
2117         - setup threads in glib and dbus so we make sure locks are working
2118         
2119 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2120
2121         * python/dbus_bindings.pyx 
2122         (_pending_call_notification, cunregister_function_handler, 
2123         cmessage_function_handler): All callback functions have been rearranged 
2124         to workaround a bug in Pyrex when working with the GIL which is Python's 
2125         global lock when dealing with threads.  They have been split into
2126         a wrapper function (which assumes the name of the old function) and
2127         a _GIL_safe_<function name> function which contains the functionality
2128         of the old function.  This ensures that Pyrex does not write code
2129         the lock is released.
2130         
2131
2132 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2133
2134         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2135         GIL global lock when calling back into Python
2136
2137 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2138
2139         * Release 0.36.2
2140
2141         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2142
2143         * bus/policy.c (bus_policy_allow_user): change default "user is
2144         allowed" to be "user has same uid as the bus itself"; any
2145         allow/deny rules will override.
2146
2147         * bus/session.conf.in: don't allow all users, since now by default
2148         the user that ran the bus can connect.
2149
2150 2005-08-26  Colin Walters  <walters@verbum.org>
2151
2152         * tools/dbus-print-message.c (print_message): Flush stdout
2153         after printing a message, so that redirecting to a file, then
2154         hitting Ctrl-C works.
2155
2156 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2157
2158         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2159         (EmptyMessage): new class that subclasses Message.  This is a workaround
2160         to a Pyrex bug that fails to call __del__ when the Message object goes out
2161         of scope.  For some reason subclassing Message fixes this bug
2162         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2163         - s/Message(_create=0)/EmptyMessage everywhere else
2164         
2165         * test/python/test-{server|client}.py: add the python/.libs directory
2166         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2167         get picked up from the system
2168
2169 2005-08-25  Colin Walters  <walters@verbum.org>
2170
2171         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2172         to Ryan Lortie for the suggestion.
2173
2174 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2175
2176         * test/python: Add python regression test
2177
2178         * configure.in: Add test/python/Makefile
2179
2180         * test/Makefile.am: Add the python directory to SUBDIRS
2181
2182 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2183
2184         * Release 0.36.1
2185
2186         * python/_dbus.py: 
2187         (Interface::connect_to_signal): propigate keywords for match on args
2188         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2189
2190         * python/proxies.py (ProxyObject::connect_to_signal):
2191         propigate keywords for match on args
2192
2193         * Makefile.am: point everything to pyexecdir since python borks
2194         on multilib
2195
2196 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         * Release 0.36
2199
2200 2005-08-23  Colin Walters  <walters@verbum.org>
2201
2202         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2203
2204 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2205
2206         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2207         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2208         of defining DBusConnection ourselves.
2209
2210 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2211
2212         * python/dbus.pth: New path file to fix up problems when installing
2213         c libraries to lib64 and python files to lib.
2214
2215         * python/Makefile.am: install dbus.pth in the correct spot
2216
2217 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2218         * ChangeLog: clean up my last entry a bit
2219
2220         * doc/introspect.xsl: New stylesheet for converting introspection data
2221         into browser renderable xhtml. Contributed by Lennart Poettering.
2222
2223         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2224         Poettering.
2225
2226         * doc/dbus-tutorial.xml: 
2227         - Add Colin Walter to the Authors section for authoring the GLib
2228         section
2229         - Add descriptions of the new signature and type functionality
2230         in the Python complex type mapping section
2231         - Add a sidenote on the new args matching functionality in 
2232         the Python bindings
2233         - Fixed up some of the examples to use the gobject.MainLoop
2234         instead of gtk.main
2235         
2236         * python/_dbus.py:
2237         (Bus::_create_args_dict): New. Converts a hash of arg matches
2238         to a more useable format
2239         (Bus::add_signal_receiver): add a **keywords parameter for catching
2240         arg match parameters
2241         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2242         arg match parameters
2243         
2244         * python/matchrules.py:
2245         (MatchTree::exec_matches): Check for arg matches
2246         (SignalMatchRule::add_args_match): New method
2247         (SignalMatchRule::execute): Added args_list parameter as an optimization
2248         so we don't have to marshal the args more than once
2249         (SignalMatchRule::match_args_from_list): New method that checks to see
2250         if the rule's arg matches match an argument list.  Only arguments
2251         set in the rule are checked.
2252         (SignalMatchRule::match_args_from_rule): New method that checks to see
2253         if the rule's arg matches match another rule's.  All args have to match
2254         in order for this method to return true.  If either rule has more args
2255         then it is not a match.
2256         (SignalMatchRule::is_match): Add args match
2257         (SignalMatchRule::repr): Add args to the final output if they exist
2258
2259 2005-08-17  Ross Burton  <ross@burtonini.com>
2260
2261         * glib/dbus-gproxy.c:
2262         (dbus_g_proxy_call_no_reply): unref the message once sent.
2263         (dbus_g_proxy_call): protect against NULL proxy.
2264
2265 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2266
2267         * python/__init__.py: Version updated (0, 43, 0)
2268         
2269         * python/dbus_bindings.pyx: 
2270         - Fixed type objects to have self passed into __init__
2271         - Added the Variant type
2272         - Add the ability to specify types or signatures for Array, Variant 
2273         and Dictionary
2274         (Connection::send_with_reply_handlers): return a PendingCall object
2275         (_pending_call_notification): handle the case when an error is returned 
2276         without an error message in the body
2277         (MessageIter::get_boolean): return True or False instead of an integer
2278         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2279         and add checks for objects with embeded signatures or types (Array, 
2280         Variant and Dictionary)
2281         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2282         (MessageIter::append_dict): handle embeded types or signatures
2283         (MessageIter::append_array): handle embeded types or signatures
2284         (MessageIter::append_variant): new method
2285         
2286         * python/proxies.py:
2287         (DeferedMethod): New. Dummy executable object used when queuing calls 
2288         blocking on introspection data
2289         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2290         or shorter timeouts for method calls
2291         (ProxyObject): Add first pass at an introspection state machine
2292         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2293         introspection. 
2294         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2295         the usual mechanisms for sending messages.  This is to avoid a deadlock
2296         where the Intospect call would be queued waiting for the Introspect 
2297         call to finish ;-)
2298         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2299         when introspection returns with no error
2300         (ProxyObject::_introspect_error_handler): New.  This method is called 
2301         when introspection encounters an error
2302         (ProxyObject::__getattr__): Code to handle different introspection 
2303         states.  Queue async calls or block blocking calls if we are 
2304         introspecting.  Pass through as normal if we are not or are done with 
2305         introspecting.
2306         
2307         * python/service.py: Import signal and method from decorators.py
2308
2309         * python/types.py: Add Variant type
2310
2311 2005-08-16  Colin Walters  <walters@verbum.org>
2312
2313         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2314         DBusError message is NULL.
2315
2316 2005-08-09  Havoc Pennington  <hp@redhat.com>
2317
2318         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2319         malloc'd copy of the name parameter
2320
2321 2005-08-09  Havoc Pennington  <hp@redhat.com>
2322
2323         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2324         warning if the reply serial is set to 0
2325
2326 2005-08-04  Colin Walters  <walters@verbum.org>
2327
2328         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2329         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2330         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2331         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2332         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2333         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2334         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2335         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2336         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2337         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2338         
2339         Prefix name with _ to ensure they're not exported.  All callers
2340         updated.
2341
2342         * glib/dbus-gvalue.c (typecode_to_gtype)
2343         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2344         (signature_iter_to_g_type_dict)
2345         (signature_iter_to_g_type_array)
2346         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2347         (dbus_gtypes_from_arg_signature):
2348         Move to dbus-gsignature.c.
2349
2350         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2351         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2352         (dbus_binding_tool_output_glib_client): Ditto.
2353
2354         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2355         and dbus-gsignature.h
2356
2357         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2358         unused variable.
2359
2360 2005-08-03  Colin Walters  <walters@verbum.org>
2361
2362         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2363         catch any incompatible changes accidentally made.
2364
2365 2005-08-03  Havoc Pennington  <hp@redhat.com>
2366
2367         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2368         typo, from Julien Puydt
2369
2370         * bus/connection.c (bus_connection_disconnected): we were always
2371         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2372
2373 2005-08-01  Colin Walters  <walters@verbum.org>
2374
2375         Patch from Joe Markus Clarke:   
2376         
2377         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2378         use-after-free.
2379
2380 2005-08-01  Colin Walters  <walters@verbum.org>
2381         
2382         Patch from Joe Markus Clarke:   
2383         
2384         * tools/dbus-send.c (main): 
2385         
2386         Don't use C99 style initializers (bug #3933).
2387         
2388 2005-08-01  Colin Walters  <walters@verbum.org>
2389
2390         Patch from Joe Markus Clarke:   
2391
2392         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2393         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2394         * glib/dbus-gobject.c (write_interface):
2395
2396         Don't use C99 style initializers (bug #3933).
2397
2398 2005-07-31  Havoc Pennington  <hp@redhat.com>
2399
2400         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2401         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2402
2403 2005-07-30  Havoc Pennington  <hp@redhat.com>
2404
2405         * fix a bunch of Doxygen warnings and mistakes
2406
2407 2005-07-30  Havoc Pennington  <hp@redhat.com>
2408
2409         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2410         DBUS_BUILD_TESTS since it's now used in production code
2411
2412 2005-07-29  Havoc Pennington  <hp@redhat.com>
2413
2414         * test/glib/test-profile.c (write_junk): initialize the junk
2415         buffer so valgrind doesn't have a breakdown
2416
2417 2005-07-29  Havoc Pennington  <hp@redhat.com>
2418
2419         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2420         (match_rule_matches): remove unused arg
2421         (test_matching): add tests for match_rule_matches()
2422
2423         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2424         do arg0='foo' arg5='bar' in the match rules
2425         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2426
2427         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2428
2429 2005-07-29  Ross Burton  <ross@openedhand.com>
2430
2431         * dbus/dbus-connection.c:
2432         Don't create a DBusCondVar which is never used.
2433
2434 2005-07-27  Ross Burton  <ross@openedhand.com>
2435
2436         * dbus/dbus-message.c:
2437         Reduce the size of the maximum cached message to 10K.
2438
2439 2005-07-25  Ross Burton  <ross@openedhand.com>
2440
2441         * glib/dbus-gproxy.c:
2442         Remove matches when all proxies are unregistered.
2443
2444 2005-07-24  Colin Walters  <walters@verbum.org>
2445
2446         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2447         typedata; recursive arrays won't have it.
2448
2449         * test/glib/test-dbus-glib.c:
2450         * test/glib/test-service-glib.c:
2451         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2452         
2453 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2454
2455         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2456         proxies.py, service.py: Cleanup of code after running it through the
2457         pyflakes code checker mostly dealing with undefined names.  
2458         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2459
2460 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2461
2462         * NEWS: Update to 0.35.2
2463
2464 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2465
2466         * python/_dbus.py: Remove import of the dbus.services
2467         module as it no longer exists (patch from Dimitur Kirov)
2468
2469         * python/service.py (Object::__init__): Fixed typo
2470         s/name/bus_name (patch from Dimitur Kirov)
2471
2472         * python/examples/example-signal-emitter.py: import dbus.glib
2473         to get the main loop and use glib mainloop instead of gtk so
2474         X doesn't have to be running.
2475
2476         * python/examples/example-signal-recipient.py: import dbus.glib
2477         to get the main loop and use glib mainloop instead of gtk so
2478         X doesn't have to be running. Import the decorators module
2479         directly.
2480
2481         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2482         didn't pick up on but are needed to build
2483
2484         * configure.in: upped version to 0.35.2
2485
2486         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2487         added Colin Walters' SELinux API rename patch from head 
2488         s/unix sercurity context/selinux security context/
2489
2490 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * python/Makefile.am: dbus_binding.pxd.in should be included 
2493         in EXTRA_DIST not dbus_binding.pxd
2494         fix up $(srcdir) hopefully for the last time
2495
2496         * NEWS: Update to 0.35.1
2497
2498 2005-07-16  Colin Walters  <walters@verbum.org>
2499
2500         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2501         from bus_driver_handle_get_connection_unix_security_context.  Update for
2502         error usage.
2503         (message_handlers): Update for renames.
2504
2505         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2506         _dbus_string_init failure correctly.
2507         (bus_selinux_append_context): Convert SID to context.  Append it
2508         as a byte array.
2509         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2510         hasn't been called.
2511
2512         * bus/selinux.h: Update prototype.
2513
2514         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2515         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2516
2517 2005-07-15  Colin Walters  <walters@verbum.org>
2518
2519         * doc/TODO: Add note about convenience wrappers.
2520
2521 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2522
2523         * NEWS: Update to 0.35
2524
2525 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2528         so distcheck doesn't fail
2529
2530         * glib/examples/Makefile.am: Add example-service.xml and 
2531         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2532
2533         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2534         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2535
2536         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2537         compiler looks in the right places during distcheck
2538
2539 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2540
2541         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2542         to fail
2543
2544 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2545
2546         * python/examples/example-service.py,
2547         python/examples/example-signal-emitter.py: Fixed up examples
2548         for API changes
2549
2550 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2551
2552         * python/__init__.py: Upped to version (0,42,0) because of
2553         the API change
2554
2555 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2556
2557         * ChangeLog: fix date in last entry
2558
2559         * configure.in, bus/system.conf.in: add the ability to configure 
2560         the system bus user at compiletime with the --with-dbus-user flag
2561         (patch from Kristof Vansant)
2562
2563 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2564
2565         * bus/dispatch.c, test/test-service.c: Add testcase
2566         for sending messages to oneself (TODO item).
2567
2568         * python/service.py (class Object): Swap ordering of bus_name 
2569         and object_path parameters to better support inheritance.
2570
2571         * doc/dbus-tutorial.xml: change Python docs to reflect change
2572         in parameter ordering and fix the inheritance section.
2573
2574         * doc/TODO: remove sending message to oneself TODO item
2575
2576 2005-07-15  Ross Burton  <ross@openedhand.com>
2577
2578         * glib/dbus-gproxy.c:
2579         Fix a leak when calling methods via the proxy.
2580
2581 2005-07-15  Colin Walters  <walters@verbum.org>
2582
2583         * bus/selinux.c (bus_selinux_append_context): Wrap in
2584         HAVE_SELINUX.
2585
2586 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2587
2588         * python/_dbus.py (Bus::remove_signal_receiver):
2589         don't add a callback to the match if none has been passed in
2590         
2591         * python/matchrules.py (SignalMatchTree::remove): if the rule
2592         being matched does not have a callback treat it as a wildcard
2593         fix matching logic
2594
2595         * doc/dbus-tutorial.xml: Add Python tutorial
2596
2597 2005-07-14  Colin Walters  <walters@verbum.org>
2598
2599         * bus/driver.c
2600         (bus_driver_handle_get_connection_unix_security_context): New function.
2601         (message_handlers): Add.
2602
2603         * bus/selinux.c (bus_selinux_append_context): New function; appends
2604         security context to message.
2605
2606         * bus/selinux.h: Prototype.
2607
2608         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2609
2610 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2611
2612         * bus/activation.c: clean up all tabs to be 8 spaces 
2613         (bus_activation_activate_service): make sure we clean up
2614         if activation fails
2615
2616         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2617         (check_shell_fail_service_auto_start): New function
2618         tests to make sure we get fail properly when trying to auto start a service
2619         with a faulty command line
2620         (check_shell_service_success_auto_start): New function tests to make sure
2621         auto started services get the arguments on the command line
2622
2623         * test/test-shell-service.c: Added service for testing auto-starting with 
2624         command line arguments
2625
2626         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2627         test/data/valid-service-files/debug-shell-echo-success.service.in:
2628         Added service files for testing auto-starting with command line arguments
2629
2630         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2631
2632 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2633
2634         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2635         
2636         * dbus/Makefile.am: added new files to build.
2637
2638         * bus/activation.c (bus_activation_activate_service): support
2639         activation commands with parameters.
2640
2641         * test/shell-test.c: added test program for the shell parsing
2642         code.
2643
2644 2005-07-13  David Zeuthen  <davidz@redhat.com>
2645
2646         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2647         64 bit signed and unsigned parameters
2648
2649 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2650
2651         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2652
2653         * python/service.py (class Name): renamed BusName to make it clearer
2654         what the object is for (a name on the bus)
2655
2656         * python/examples/example-service.py,
2657         python/examples/example-signal-emitter.py: change the Name object to
2658         BusName
2659
2660 2005-07-12  Colin Walters  <walters@verbum.org>
2661
2662         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2663
2664         * tools/dbus-launch.c: Include sys/select.h.
2665
2666 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2667         * python/dbus_bindings.pyx.in: removed
2668
2669         * python/dbus_bindings.pyx: Added.
2670         - Fixed some memleaks (patch from 
2671         Sean Meiners <sean.meiners@linspireinc.com>)
2672         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2673         own pxd file (Pyrex definition)
2674         - Broke out glib dependancies into its own pyx module
2675         
2676         * python/dbus_bindings.pdx: Added.
2677         - Defines C class Connection for exporting to other modules
2678
2679         * python/dbus_glib_bindings.pyx: Added.
2680         - New module to handle lowlevel dbus-glib mainloop integration
2681
2682         * python/glib.py: Added.
2683         - Registers the glib mainloop when you import this module
2684
2685         * python/services.py: Removed (renamed to service.py)
2686         
2687         * python/service.py: Added.
2688         - (class Server): renamed Name
2689
2690         * python/__init__.py: Bump ro version (0,41,0)
2691         -don't import the decorators or service module
2692         by default.  These now reside in the dbus.service namespace
2693
2694         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2695         setup function on creation 
2696
2697         * python/examples/example-service.py,
2698         python/examples/example-signal-emitter.py: update examples
2699
2700         * python/examples/gconf-proxy-service.py,
2701         python/examples/gconf-proxy-service2.py: TODO fix these up
2702
2703         * doc/TODO: Addition
2704         - Added a Python Bindings 1.0 section
2705         - added "Add match on args or match on details to match rules"
2706
2707
2708 2005-07-12  Colin Walters  <walters@verbum.org>
2709
2710         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2711         (statemachine-glue.h): 
2712         * glib/examples/Makefile.am (example-service-glue.h) 
2713         (example-signal-emitter-glue.h): 
2714         * glib/Makefile.am (dbus-glib-error-switch.h): 
2715         Add libtool --mode=execute so we use the built library instead
2716         of any installed one.
2717
2718 2005-07-11  Colin Walters  <walters@verbum.org>
2719
2720         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2721         (dbus_g_value_types_init): Remove assertion.
2722         (dbus_g_value_get_g_type, dbus_g_value_open)
2723         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2724         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2725         functions related to DBusGValue.  Now we marshal/demarshal
2726         structures as GValueArray.
2727         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2728         structures.
2729         (signature_iter_to_g_type_array): Don't call
2730         signature_iter_to_g_type_struct.
2731         (signature_iter_to_g_type_struct): Delete.
2732         (dbus_gvalue_to_signature): Delete.
2733         (dbus_gvalue_to_signature): New function with same name as other
2734         one; we can convert structures to signatures.
2735         (demarshal_valuearray): New function.
2736         (get_type_demarshaller): Use it.
2737         (demarshal_recurse): Delete.
2738         (marshal_proxy): New function.
2739         (marshal_map): Warn if we can't determine signature from type.
2740         (marshal_collection_ptrarray): Ditto.
2741         (marshal_collection_array): Ditto.
2742         (get_type_marshaller): Use marshal_valuearray.
2743         (marshal_recurse): Delete.
2744         (_dbus_gvalue_test): Add some tests.
2745
2746         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2747         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2748         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2749         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2750         (dbus_g_value_free): Remove prototypes.
2751
2752         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2753         G_TYPE_VALUE_ARRAY.
2754
2755         * glib/examples/example-service.c:
2756         * glib/examples/example-client.c: Implement GetTuple.
2757
2758         * test/glib/test-dbus-glib.c:
2759         * test/glib/test-service-glib.c:
2760         * test/glib/test-service-glib.xml: Add structure tests.
2761
2762 2005-07-10  Colin Walters  <walters@verbum.org>
2763
2764         * doc/TODO: Knock off some GLib items with this patch.
2765
2766         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2767         (_dbus_gvalue_signals_error): New functions.
2768
2769         * glib/dbus-gvalue-utils.h: Prototype them.
2770
2771         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2772         and change to not output const/retval flags for input args.  All
2773         callers updated.
2774         (invoke_object_method): Refactor to handle return values.  Add
2775         some more comments in various places.  Remove debug g_print.
2776
2777         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2778
2779         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2780         Handle G_TYPE_NONE.
2781         (compute_gsignature): New function; refactored from code from
2782         compute_marshaller and compute_marshaller_name.  Enhance to
2783         handle return values and async ops more cleanly.  Update for
2784         async ops returning NONE instead of BOOLEAN.
2785         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2786         and output appropriate string.
2787         (generate_glue): Handle return value annotation.  Also don't dump
2788         constness flag for input arguments.
2789
2790         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2791         files shared between installed library and utilities.
2792         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2793         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2794         binding tool can access gtype utility functions.
2795
2796         * test/glib/test-service-glib.c: 
2797         * test/glib/test-service-glib.xml: 
2798         * test/glib/test-dbus-glib.c: Add some tests for return values.
2799
2800 2005-07-09  Colin Walters  <walters@verbum.org>
2801
2802         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2803         argument if available, not method.
2804
2805         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2806         (invoke_object_method): First, remove some redundant
2807         GValues (object_value, error_value) in favor of working on
2808         array directly.  Second, rework constness to be less buggy.
2809         Now we iterate directly over the argument metadata instead
2810         of parallel iterating over output signature and metadata.
2811
2812         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2813
2814         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2815         annotation on input args.
2816         
2817 2005-07-09  Colin Walters  <walters@verbum.org>
2818
2819         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2820         Define.
2821
2822         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2823         annotation.
2824
2825         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2826         (method_dir_signature_from_object_info): Handle arg_iterate change.
2827         (write_interface): Ditto.
2828         (lookup_object_info): Don't barf if format_version is > 0.
2829         (invoke_object_method): Handle arg constness.
2830
2831         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2832         (arg_info_new): Create.
2833         (arg_info_unref): Destroy.
2834         (arg_info_get_annotations, arg_info_get_annotation) 
2835         (arg_info_add_annotation): New functions.
2836
2837         * glib/dbus-gidl.h: Prototype them.
2838
2839         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2840         args, disallow them in properties.
2841         (parse_annotation): Handle arg annotations.
2842
2843         * test/glib/test-service-glib.xml: 
2844         * test/glib/test-service-glib.c: Update to make some methods
2845         const.
2846
2847 2005-07-08  Colin Walters  <walters@verbum.org>
2848
2849         * test/glib/test-service-glib.xml: 
2850         * test/glib/test-service-glib.c:
2851         * test/glib/test-dbus-glib.c: Test a{sv}.
2852
2853         * glib/examples/statemachine/statemachine.c:
2854         * glib/examples/statemachine/statemachine-server.c:
2855         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2856         add progress bar, etc.
2857
2858         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2859         needed anymore due to generic array/map marshalling.
2860         (dbus_g_value_types_init): Don't register basic arrays or the
2861         string/string hash.
2862         (dbus_gtype_from_signature_iter): Don't try to recurse into
2863         variants.
2864         (dbus_gtype_to_signature): Check collection/map before type
2865         metadata.
2866         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2867         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2868         generic map creation/append functions instead of hash table
2869         specifically.
2870         (get_type_demarshaller): Handle maps.
2871         (demarshal_collection): Dispatch on collection type to either
2872         demarshal_collection_ptrarray or demarshal_collection_array.
2873         (get_type_marshaller): Handle maps.
2874         (marshal_collection): Dispatch collection type to either
2875         marshal_collection_ptrarray or marshal_collection_array.
2876         (_dbus_gvalue_test): New test.
2877
2878         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2879         (hash_free_from_gtype): Use it to free GValues.
2880         (hashtable_append): New function.
2881         (ptrarray_append): Fix prototype.
2882         (slist_append): Ditto.
2883         (_dbus_gvalue_utils_test): Extend tests.
2884
2885         * glib/dbus-gtype-specialized.c
2886         (dbus_g_type_specialized_init_append): Renamed from
2887         dbus_g_type_specialized_collection_init_append.  Remove const from
2888         value, since we steal it.
2889         (dbus_g_type_specialized_map_append): New function.
2890
2891         * glib/dbus-gtype-specialized.h: Update prototypes.
2892         Add DBusGTypeSpecializedMapAppendFunc.
2893
2894         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2895         _dbus_gvalue_test.
2896         
2897         * glib/dbus-gtest.h: Prototype it.
2898
2899 2005-07-08  Ross Burton  <ross@openedhand.com>
2900
2901         * dbus/dbus-glib.h:
2902         Add DBysGAsyncData for the async bindings.
2903
2904         * glib/dbus-binding-tool-glib.c:
2905         Re-enable the async bindings.
2906
2907         * test/glib/test-dbus-glib.c:
2908         Add a test for the generated async bindings.
2909
2910 2005-07-08  Colin Walters  <walters@verbum.org>
2911
2912         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2913         connection concept.
2914         
2915 2005-07-08  Colin Walters  <walters@verbum.org>
2916         
2917         * tools/Makefile.am: Kill of print-introspect in favor of using
2918         dbus-send --print-reply=literal.
2919
2920         * test/glib/test-service-glib.xml: 
2921         * test/glib/test-service-glib.c (my_object_get_objs): New test
2922         for "ao".
2923
2924         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2925         (main): Test GetObjs.
2926
2927         * glib/examples/statemachine/Makefile.am:
2928         * glib/examples/statemachine/sm-marshal.list:
2929         * glib/examples/statemachine/statemachine-client.c:
2930         * glib/examples/statemachine/statemachine-server.c:
2931         * glib/examples/statemachine/statemachine-server.xml:
2932         * glib/examples/statemachine/statemachine.c:
2933         * glib/examples/statemachine/statemachine.h:
2934         * glib/examples/statemachine/statemachine.xml:
2935
2936         New example.
2937
2938         * glib/examples/example-service.c (main): Move invocation
2939         of dbus_g_object_type_install_info earlier, to emphasize it
2940         should only be done once.
2941
2942         * glib/examples/example-signal-emitter.c (main): Ditto.
2943
2944         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2945
2946         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2947         (dbus_gvalue_marshal): Update prototypes.
2948
2949         * glib/dbus-gvalue.c: Update all marshalling functions to take
2950         const GValue instead of GValue.
2951         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2952         types.
2953         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2954         change.
2955         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2956         Return a newly-allocated string.
2957         (demarshal_proxy, demarshal_object_path, demarshal_object)
2958         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2959         we get the wrong types from message.
2960         (get_type_demarshaller): New function, extracted from
2961         dbus_gvalue_demarshal.
2962         (demarshal_collection): New function, demarshals generic
2963         collection.
2964         (dbus_gvalue_demarshal): Just invoke result of
2965         get_type_demarshaller.  Throw error if we don't have one.
2966         (marshal_garray_basic): Abort on OOM.
2967         (get_type_marshaller): New function, extracted from
2968         dbus_gvalue_marshal.
2969         (collection_marshal_iterator, marshal_collection): New functions;
2970         implements generic marshalling for an iteratable specialized
2971         collection.
2972         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2973
2974         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2975         G_TYPE_STRING.
2976         (ptrarray_value_from_gvalue): Ditto.
2977         (ptrarray_append, ptrarray_free): New functions.
2978         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2979         (slist_append, slist_end_append, slist_free): New functions.
2980         (dbus_g_type_specialized_builtins_init): Add append fuctions
2981         for GPtrArray and GSList.  Register GSList.
2982         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2983
2984         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2985         New.
2986         (dbus_g_type_specialized_collection_init_append)
2987         (dbus_g_type_specialized_collection_append)
2988         (dbus_g_type_specialized_collection_end_append): Prototype.
2989         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2990         end_append_func.
2991
2992         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2993         (dbus_g_type_specialized_collection_append) 
2994         (dbus_g_type_specialized_collection_end_append): New functions.
2995         (dbus_g_type_map_value_iterate): Take const GValue.
2996         (dbus_g_type_collection_value_iterate): Ditto.
2997
2998         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2999         _dbus_gvalue_utils_test.
3000         
3001         * glib/dbus-gtest.h: Prototype it.
3002
3003         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3004         using uninitialized owner_list.
3005         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3006         public API.
3007         (dbus_g_proxy_end_call_internal): Update to use error set
3008         from dbus_gvalue_demarshal instead of setting it here.
3009         (dbus_g_proxy_begin_call): Move return_if_fail here.
3010
3011         * glib/dbus-gobject.c (write_interface): Update for
3012         dbus_gtype_to_signature returning new string.
3013
3014         * configure.in: Add glib/examples/statemachine.
3015
3016 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3017
3018         * configure.in: Add a configure option, --with-console-auth-dir
3019         
3020         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3021         new setting.  Patch from Kay Sievers.
3022
3023 2005-07-06  Colin Walters  <walters@verbum.org>
3024
3025         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3026         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3027         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3028         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3029         Delete in favor of dbus_g_proxy_begin_call and
3030         dbus_g_proxy_cancel_call.
3031         (DBusGProxyCall, DBusGProxyCallNotify): New.
3032         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3033         data, and destroy function.  This replaces
3034         dbus_g_pending_call_set_notify.
3035         (dbus_g_proxy_cancel_call): Prototype.
3036         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3037
3038         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3039         pending_calls map.
3040         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3041         internal proxy for calls to the bus. Remove
3042         pending_nameowner_calls, now the internal proxy keeps track.
3043         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3044         pending_nameowner_calls.
3045         (got_name_owner_cb): Update prototype, and use
3046         dbus_g_proxy_end_call.
3047         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3048         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3049         favor of using internal proxy.
3050         (dbus_g_proxy_manager_unregister): Update to use
3051         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3052         (dbus_g_proxy_init): Initialize pending calls map.
3053         (dbus_g_proxy_constructor): New.
3054         (dbus_g_proxy_class_init): Add get/set property functions,
3055         constructor, and add NAME, PATH, and INTERFACE properties.
3056         (cancel_pending_call): New function.
3057         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3058         cancel them.
3059         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3060         (GPendingNotifyClosure): New structure.
3061         (d_pending_call_notify, d_pending_call_free): Moved here from
3062         dbus-glib.c.
3063         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3064         ordering.
3065         (manager_begin_bus_call): New internal function for talking to
3066         internal bus proxy.
3067         (dbus_g_proxy_new): Construct object using GObjet properties.
3068         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3069         Create closure of same, and insert call into map of pending calls.
3070         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3071         call.  Look up pending call in current set.  Remove it when we've
3072         completed.
3073         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3074         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3075         and destroy function directly.
3076         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3077         (dbus_g_proxy_call): Invoke with NULL callback.
3078         (dbus_g_proxy_cancel_call): New function, replaces
3079         dbus_g_pending_call_cancel.
3080
3081         * glib/dbus-gparser.c (validate_signature): Fix call to
3082         dbus_set_g_error.
3083
3084         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3085         New quark for attaching metadata to GType.
3086         (info_hash): Delete.
3087         (lookup_object_info): Look up using quark.
3088         (dbus_g_object_type_install_info): Check that a type is classed,
3089         not that it's an object.  Also just install type data using quark
3090         instead of using global hash.
3091
3092         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3093         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3094         (GPendingNotifyClosure): Delete.
3095         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3096         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3097
3098         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3099         client method generation until we can fix it...
3100         
3101         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3102         (load_from_service_thread_func): Ditto.
3103
3104         * tools/dbus-names-model.c (struct NamesModel): Hold
3105         DBusGProxyCall.
3106         (have_names_notify): Update prototype, use
3107         dbus_g_proxy_cancel_call.
3108         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3109
3110         * tools/dbus-monitor.c (filter_func): Update for print_message
3111         API change.
3112
3113         * test/glib/test-dbus-glib.c: Add more tests for async
3114         invocations.  Update many begin_call/end_call pairs to just use
3115         dbus_g_proxy_call.
3116
3117         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3118         allows us to dump print-introspect.c.
3119
3120         * tools/dbus-print-message.h (print_message): Add literal argument
3121         to print_message which is intended to allow printing arguments without
3122         metadata like "string=".
3123
3124         * tools/dbus-print-message.c (print_iter): Add literal argument.
3125         (print_message): Allow printing string messages literally.
3126
3127 2005-07-05  Colin Walters  <walters@verbum.org>
3128
3129         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3130         Remove value refcount leak, original patch from Jorn Baayen
3131         <jorn@openedhand.com>.  Also remove useless extra value in favor
3132         of prepending to value array directly.
3133
3134 2005-07-02  Colin Walters  <walters@verbum.org>
3135
3136         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3137
3138 2005-07-01  Colin Walters  <walters@verbum.org>
3139
3140         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3141         
3142         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3143         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3144         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3145         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3146
3147 2005-06-30  Colin Walters  <walters@verbum.org>
3148
3149         * test/glib/test-dbus-glib.c:
3150         * test/glib/test-service-glib.c:
3151         * test/glib/test-service-glib.xml: Update tests for new error
3152         setting bits, also add async tests (patch from Ross Burton).
3153
3154         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3155         DBUS_GLIB_THREADS_LIBS.
3156
3157         * glib/dbus-gproxy.c (get_name_owner)
3158         (dbus_g_pending_call_end_valist): Ditto.
3159
3160         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3161         domain (GQuark) to DBusGErrorInfo.  
3162         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3163         quark in error_metadata.  Take message interface as default
3164         error message interface.
3165         (gerror_to_dbus_error_message): Pass message interface.
3166         (dbus_set_g_error): Resurrected.
3167         (dbus_g_error_info_free): New function.
3168         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3169         of _peek to actually create the object class if it hasn't been
3170         created yet.
3171         (dbus_g_error_domain_register): New function.
3172
3173         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3174
3175         * glib/dbus-gparser.c (validate_signature): Ditto.
3176
3177         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3178         (dbus_g_error_domain_register): Prototype.
3179
3180         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3181         Update tests.
3182
3183 2005-06-29  Colin Walters  <walters@verbum.org>
3184
3185         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3186         DBUS_TYPE_G_OBJECT_PATH.
3187
3188         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3189         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3190         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3191         (dbus_g_object_path_get_g_type): New function.
3192         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3193         to DBUS_TYPE_G_OBJECT_PATH by default.
3194         (demarshal_proxy): Remove unused name variable.
3195         (demarshal_object_path, marshal_object_path): New functions.
3196         (demarshal_proxy_array, marshal_proxy_array): Delete.
3197         
3198         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3199         DBUS_TYPE_G_OBJECT_PATH to char *.
3200         (dbus_g_type_get_lookup_function): Map builtin
3201         DBUS_TYPE_G_OBJECT_PATH.
3202
3203         * test/glib/test-dbus-glib.c
3204         * test/glib/test-service-glib.c (my_object_objpath): 
3205         Adapt tests to new object path marshalling.
3206
3207 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3208
3209         * configure.in: force check for Python >= 2.4
3210
3211 2005-06-29  Colin Walters  <walters@verbum.org>
3212         
3213         Patch from Ross Burton <ross@openedhand.com>
3214         
3215         * glib/dbus-gobject.c (invoke_object_method): Unset object
3216         value in all cases, not only in async case.
3217
3218 2005-06-29  Colin Walters  <walters@verbum.org>
3219
3220         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3221         name_call for keeping track of any outgoing GetNameOwner call.
3222         Also add for_owner and associated.
3223         (struct _DBusGProxyManager): Add owner_names, which is hash table
3224         that maps a base name to a list of names it owns (that we're
3225         interested in).  Add pending_nameowner_calls which is a list of
3226         all outstanding GetNameOwner; avoids us having to iterate over
3227         every proxy.  Add unassociated_proxies which keeps track of name
3228         proxies with no associated name owner.
3229         (dbus_g_proxy_manager_unref): Destroy owner_names.
3230         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3231         name refcounts.
3232         (find_name_in_info, name_owner_foreach)
3233         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3234         (dbus_g_proxy_manager_monitor_name_owner)
3235         (dbus_g_proxy_manager_unmonitor_name_owner)
3236         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3237         New functions; they manipulate the owner_names mapping.
3238         (got_name_owner_cb): New function.
3239         (get_name_owner): New function, extracted from
3240         dbus_g_proxy_new_for_name_owner.
3241         (dbus_g_proxy_manager_register): For now we need to keep track of
3242         all NameOwnerChanged.  Also if the proxy is for a name, if we
3243         don't already know the name owner, queue a new GetNameOwner
3244         request and add it to our list of unassociated proxies.  Otherwise
3245         inc the refcount.
3246         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3247         cancel any pending GetNameOwner call, etc.
3248         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3249         the owner_names mapping to look up the current names for the
3250         signal source, and dispatch to any proxies for that name.
3251         (dbus_g_proxy_new): Initialize new members.
3252         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3253         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3254         (dbus_g_pending_call_end_valist): New function, extracted from
3255         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3256         but want to use the GLib infrastructure.  Also note how many
3257         arguments in reply were over.
3258         (dbus_g_pending_call_end): New function, just call
3259         dbus_g_pending_call_end_valist.
3260         (dbus_g_proxy_end_call_internal): Just call
3261         dbus_g_pending_call_end_valist.
3262
3263         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3264         of builtin marshaller for STRING_STRING_STRING.
3265
3266         * test/glib/test-dbus-glib.c: 
3267         * test/glib/test-service-glib.c:
3268         * test/glib/test-service-glib.xml:
3269         Extend tests to cover name proxies, destruction of owner proxies,
3270         etc.
3271         
3272         * glib/examples/example-signal-recipient.c
3273         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3274         
3275         * tools/dbus-send.c (main): Print D-BUS error name in addition
3276         to message.
3277
3278 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3279
3280         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3281         cmessage_function_handler): Patch from 
3282         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3283         by using the Py_GILState_Ensure/Release to synchronize with the
3284         python runtime.
3285         
3286 2005-06-28  Ray Strode  <rstrode@redhat.com>
3287
3288         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3289         babysitter helper process on last unref, bug #2813.
3290
3291 2005-06-27  Colin Walters  <walters@verbum.org>
3292
3293         * test/glib/test-dbus-glib.c: 
3294         * test/glib/test-service-glib.c:
3295         * test/glib/test-service-glib.xml:
3296         Test hash table signal emitting.
3297
3298         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3299         types to their fundamental basis types, since this is what
3300         marshallers operate on.  Also add an entry for VOID__BOXED.
3301         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3302
3303 2005-06-26  Havoc Pennington  <hp@redhat.com>
3304
3305         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3306         from Don Park
3307
3308 2005-06-26  Colin Walters  <walters@verbum.org>
3309
3310         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3311         (dbus_g_error_set): New public function from its ashes; used by
3312         both service-side method implementation and GLib bindings
3313         internals.
3314         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3315         (_dbus_glib_test): Add some tests.
3316
3317         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3318
3319         * test/glib/test-service-glib.c (my_object_throw_error): Use
3320         dbus_g_error_set.
3321
3322         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3323         errors thrown by dbus_g_error_set.
3324
3325         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3326
3327         * glib/dbus-gparser.c (validate_signature): Ditto.
3328
3329         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3330         (dbus_g_proxy_end_call_internal): Ditto.
3331
3332         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3333         converts DBUS_ERROR_x to DBUS_GERROR_x.
3334         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3335
3336         * doc/TODO: Remove error TODO.
3337
3338         * doc/dbus-tutorial.xml: Update with documentation about error
3339         handling.
3340
3341         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3342         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3343         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3344
3345 2005-06-22  Colin Walters  <walters@verbum.org>
3346         
3347         Patch from Ross Burton <ross@openedhand.com>
3348
3349         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3350
3351 2005-06-20  Colin Walters  <walters@verbum.org>
3352
3353         * configure.in: Add glib/examples.
3354
3355         * glib/Makefile.am: Add examples/
3356
3357         * glib/examples/.cvsignore
3358         * glib/examples/Makefile.am
3359         * glib/examples/example-client.c
3360         * glib/examples/example-service.c
3361         * glib/examples/example-service.xml
3362         * glib/examples/example-signal-emitter.c
3363         * glib/examples/example-signal-emitter.xml
3364         * glib/examples/example-signal-recipient.c:
3365         New files; GLib binding examples, ported from
3366         python/examples.
3367
3368 2005-06-20  Colin Walters  <walters@verbum.org>
3369
3370         * dbus/dbus-glib.h: 
3371         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3372         dbus_g_proxy_call.
3373
3374         * glib/dbus-binding-tool-glib.c: 
3375         * doc/dbus-tutorial.xml: 
3376         * test/glib/test-dbus-glib.c: Update for rename.
3377         
3378 2005-06-20  Colin Walters  <walters@verbum.org>
3379
3380         Patch suggested by Ross Burton <ross@openedhand.com>
3381
3382         * glib/dbus-gobject.c (export_signals): Free signal name.
3383         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3384         memory leak.  Add a bit of documentation.
3385         (dbus_g_method_return_error): Free context, and note we do
3386         so.
3387
3388 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3389
3390         * dbus/dbus-glib.h:
3391         * glib/dbus-gobject.c:
3392         * glib/dbus-gproxy.c:
3393         * glib/dbus-gvalue.c: Predeclare structs as 
3394         typedef struct _Something Something instead of 
3395         typedef struct Something Something, so we can 
3396         redeclare the prototypes. Other GNOME libraries 
3397         do this already.
3398
3399 2005-06-17  Colin Walters  <walters@verbum.org>
3400
3401         * tools/dbus-names-model.c (have_names_notify): Fix call
3402         to dbus_g_proxy_end_call.
3403         
3404 2005-06-17  Colin Walters  <walters@verbum.org>
3405
3406         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3407         spew warnings if we get malformed remote signals.
3408
3409         * glib/dbus-gobject.c (propsig_iterate): New function.
3410         (lookup_object_info): New function, extracted from
3411         lookup_object_and_method.
3412         (introspect_properties, introspect_signals): Delete; these
3413         are merged into write_interface.
3414         (write_interface): Write out signals and properties here;
3415         dump the org.gtk.object stuff and use the interface given
3416         in the introspection data blob.  Also fix up property XML.
3417         (lookup_values): New function.
3418         (introspect_interfaces): Gather a mapping from interface to a
3419         list of its methods, signals, and properties, then write out
3420         each interface.
3421         (lookup_object_and_method): Use lookup_object_info.
3422         (struct DBusGSignalClosure): Add interface.
3423         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3424         we can just use the constant data.
3425         (dbus_g_signal_closure_finalize): Don't free signal name.
3426         (signal_emitter_marshaller): Use interface from signal closure.
3427         (export_signals): Only export signals mentioned in introspection
3428         blob.
3429         (dbus_g_connection_register_g_object): Warn if we have no
3430         introspection data for an object.
3431         (funcsig_equal): Remove unused variable.
3432         (dbus_g_object_register_marshaller): Take varargs instead of
3433         list.
3434         (dbus_g_object_register_marshaller_array): New function,
3435         extracted from old dbus_g_object_register_marshaller.
3436
3437         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3438         signals and property data.
3439         (write_quoted_string): New function, extracted from generate_glue.
3440         (generate_glue): Write signals and properties to introspection
3441         blob.
3442
3443         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3444         exported_signals and exported_properties.
3445         (dbus_g_object_register_marshaller): Update prototype.
3446         (dbus_g_object_register_marshaller_array): Prototype.
3447         
3448         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3449
3450         * test/glib/test-service-glib.c: Add new test signals and method
3451         to emit them.
3452
3453         * test/glib/test-service-glib.xml: Add some test signals.
3454
3455         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3456         and my-object-marshal.h
3457         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3458         my-object-marshal.c.
3459         (my-object-marshal.c, my-object-marshal.h): Implement.
3460
3461         * test/glib/.cvsignore: Update.
3462
3463         * doc/TODO: Remove two GLib TODO items fixed by this
3464         patch.
3465
3466 2005-06-16  Colin Walters  <walters@verbum.org>
3467
3468         * doc/TODO: Update for GLib bindings.
3469         
3470 2005-06-16  Colin Walters  <walters@verbum.org>
3471
3472         * glib/dbus-binding-tool-glib.c:
3473         * glib/dbus-gobject.c:
3474         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3475         from Ross Burton, for his GLib bindings work.
3476
3477 2005-06-16  Colin Walters  <walters@verbum.org>
3478
3479         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3480         to iterate instead of walking to G_TYPE_INVALID.
3481
3482         Patch based on a patch from Ryan Gammon.
3483
3484 2005-06-16  Colin Walters  <walters@verbum.org>
3485
3486         * bus/bus.c (bus_context_new): Set parser to NULL
3487         after we unref it (Patch from Chris Boscolo, #2174).
3488         
3489 2005-06-16  Colin Walters  <walters@verbum.org>
3490
3491         * python/dbus_bindings.pyx.in: Import size_t,
3492         __int64_t, __uint64_t, and __signed.
3493
3494         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3495         Define cmsg struct, output it.
3496         (_dbus_read_credentials_unix_socket):
3497         Use cmsg struct.
3498         
3499         Patch from Joe Markus Clarke for FreeBSD support.
3500         
3501 2005-06-16  Colin Walters  <walters@verbum.org>
3502
3503         * tools/dbus-send.c (append_array): Use strtok.
3504         (append_dict): New function.
3505         (type_from_name): New function, extracted from main.
3506         (main): Handle sending dicts.
3507
3508         * tools/dbus-print-message.c (print_iter): Print dict
3509         entries.
3510         
3511 2005-06-16  Colin Walters  <walters@verbum.org>
3512
3513         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3514         values as the empty string (#2948).
3515         
3516 2005-06-16  Colin Walters  <walters@verbum.org>
3517
3518         * dbus/Makefile.am:
3519         * mono/doc/Makefile.am:
3520         * test/glib/Makefile.am:
3521
3522         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3523
3524 2005-06-16  Colin Walters  <walters@verbum.org>
3525
3526         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3527         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3528
3529         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3530         Increment pointer after swapping fixed array.  Add assertion
3531         for array length.
3532                 
3533 2005-06-15  Colin Walters  <walters@verbum.org>
3534
3535         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3536         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3537         
3538 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3539
3540         * NEWS: Update to 0.34
3541
3542 2005-06-15  David Zeuthen  <davidz@redhat.com>
3543
3544         * configure.in (LT_CURRENT): Revert back to 1 as the library
3545         hasn't changed and we've certainly not committed to protocol
3546         stability yet.  All this does is to break ABI. See commit note
3547         from hp@redhat.com 2005-05-05 for details.
3548         
3549 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3550
3551         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3552         (_dbus_connection_run_builtin_filters): New method
3553         (dbus_connection_dispatch): Run the builtin filters which in turn
3554         runs the peer filter which handles Ping messages.
3555
3556         * doc/TODO: 
3557          - Ping isn't handled: This patch fixes it
3558          
3559          - Add a test case for the Ping message: added TODO item
3560
3561 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3562
3563         * dbus/dbus-message.c:
3564         (dbus_message_has_path): New method
3565         (dbus_message_has_interface): New method
3566         (dbus_message_has_member): New method
3567
3568         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3569         New method
3570
3571         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3572         the keyring directory is private to the user
3573
3574         * doc/TODO:
3575          - The convenience functions in dbus-bus.h should perhaps have
3576          the signatures that they would have if they were autogenerated
3577          stubs. e.g. the acquire service function. We should also evaluate
3578          which of these functions to include, in light of the fact that
3579          GLib/Qt native stubs will probably also exist.: Punted
3580
3581          - add dbus_message_has_path(), maybe has_member/interface:
3582          fixed in this patch
3583
3584          - in dbus-keyring.c, enforce that the keyring dir is not
3585          world readable/writable: Fixed in this patch
3586
3587 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3588
3589         * dbus/dbus-marshal-validate.h: Added a new validation
3590         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3591         out of memory errors when validating signitures
3592
3593         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3594         in places where we previously used DBUS_VALID and a FALSE return 
3595         value to indicate OOM
3596         
3597         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3598         Use a stack to track the number of elements inside containers.  The 
3599         stack values are then used to validate that dict entries have only two
3600         elements within them.
3601         (validate_body_helper): check the reason for failure when validating
3602         varients
3603         
3604         * dbus/dbus-message.c (load_message): use 
3605         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3606         DBUS_VALID and a FALSE return value to indicate OOM
3607
3608         * doc/TODO: remove "- validate dict entry number of fields" as this
3609         patch fixes it
3610
3611 2005-06-14  David Zeuthen  <davidz@redhat.com>
3612
3613         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3614         watches (if applicable) and add new watches
3615
3616         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3617         (main): Setup SIGIO signal handler if using D_NOTIFY
3618
3619         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3620
3621         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3622         (merge_included): Also merge conf_dirs list
3623         (bus_config_parser_unref): Clear conf_dirs list
3624         (include_dir): Add directory to conf_dirs list
3625         (bus_config_parser_get_conf_dirs): New function
3626
3627         * bus/dir-watch.[ch]: New files
3628
3629         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3630
3631         * configure.in: Add checks for D_NOTIFY on Linux
3632
3633 2005-06-14  Colin Walters  <walters@verbum.org>
3634
3635         * glib/dbus-binding-tool-glib.c:
3636         * glib/dbus-gobject.c:
3637         * glib/dbus-gvalue.c: Fix indentation and brace style.
3638         
3639 2005-06-14  Ross Burton <ross@openedhand.com>.
3640
3641         * glib/dbus-glib.h: Make DBusGMethodInvocation
3642         a private structure.  Rearrange prototypes a bit.
3643         
3644         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3645         documentation for first_arg_type.
3646         
3647         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3648         here, add documentation.  Move dbus_g_method_return
3649         and dbus_g_method_return_error into public API
3650         section.
3651
3652 2005-06-14  Colin Walters  <walters@verbum.org>
3653
3654         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3655         Add missing return statements, noticed by Ross Burton.
3656         
3657 2005-06-13  Ross Burton <ross@openedhand.com>.
3658
3659         * glib/dbus-gobject.c: Handle errors on message
3660         demarshalling by sending error message back.
3661         * glib/dbus-gvalue.c: Initialize return variables.
3662
3663 2005-06-13  Colin Walters  <walters@verbum.org>
3664
3665         * glib/Makefile.am: Fix thinko in last patch.
3666
3667 2005-06-13  Colin Walters  <walters@verbum.org>
3668
3669         * glib/Makefile.am: Move dbus-gtype-specialized.c
3670         and dbus-gtype-specialized.h into a _HEADERS variable,
3671         install them.
3672
3673 2005-06-12  Colin Walters  <walters@verbum.org>
3674
3675         Async signals and various bugfixes and testing by
3676         Ross Burton <ross@openedhand.com>.
3677
3678         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3679         (dbus_gvalue_genmarshal_name_from_type)
3680         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3681         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3682         (dbus_g_value_types_init, dbus_gtype_from_signature)
3683         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3684         (dbus_gtypes_from_arg_signature): New function prototypes.
3685         (dbus_gvalue_demarshal): Take context and error arguments.
3686         (dbus_gvalue_demarshal_variant): New function.
3687         (dbus_gvalue_demarshal_message): New function.
3688         (dbus_gvalue_store): Delete.
3689
3690         * glib/dbus-gvalue.c:
3691
3692         File has been almost entirely rewritten; now we special-case
3693         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3694         hash tables correctly, etc.  Full support for recursive values
3695         is not yet complete.
3696
3697         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3698         argument of signal to G_TYPE_POINTER since we now pass a
3699         structure.
3700         (lookup_g_marshaller): Delete in favor of
3701         _dbus_gobject_lookup_marshaller.
3702         (marshal_dbus_message_to_g_marshaller): Use
3703         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3704         to handle remote signal callbacks.
3705         (dbus_g_proxy_new_from_proxy): New function; creates a new
3706         DBusGProxy by copying an existing one.
3707         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3708         (dbus_g_proxy_get_path): New functions.
3709         (dbus_g_proxy_marshal_args_to_message): New function;
3710         factored out of existing code.
3711         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3712         from a varargs array.
3713         (dbus_g_proxy_begin_call_internal): New function.
3714         (dbus_g_proxy_end_call_internal): New function.
3715         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3716         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3717         after collecting args into value array.
3718         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3719         invoke dbus_g_proxy_end_call_internal.
3720         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3721         end_call_internal.
3722         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3723         types.
3724         (array_free_all): New function.
3725         (dbus_g_proxy_add_signal): Take GTypes.
3726
3727         * glib/dbus-gobject.h:
3728         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3729         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3730         Prototype.
3731
3732         * glib/dbus-gobject.c: Add a global marshal_table hash which
3733         stores mappings from type signatures to marshallers.  Change lots
3734         of invocations of dbus_gtype_to_dbus_type to
3735         dbus_gtype_to_signature.
3736         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3737         (introspect_signals): Fix test for query.return_type.
3738         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3739         (invoke_object_method): Many changes.  Handle asynchronous
3740         invocations.  Convert arguments with
3741         dbus_gvalue_demarshal_message.  Handle errors.  Use
3742         DBusSignatureIter instead of strlen on args. Handle all arguments
3743         generically.  Special-case variants.
3744         (dbus_g_method_return, dbus_g_method_return_error): New function.
3745         (DBusGSignalClosure): New structure, closes over signal
3746         information.
3747         (dbus_g_signal_closure_new): New function.
3748         (dbus_g_signal_closure_finalize): New function.
3749         (signal_emitter_marshaller): New function; is special marshaller
3750         which emits signals on bus.
3751         (export_signals): New function; introspects object signals and
3752         connects to them.
3753         (dbus_g_object_type_install_info): Take GType instead of
3754         GObjectClass.
3755         (dbus_g_connection_register_g_object): Invoke export_signals.
3756         (dbus_g_connection_lookup_g_object): New function.
3757         (DBusGFuncSignature) New structure; used for mapping type
3758         signatures to marshallers.
3759         (funcsig_hash): New function; hashes DBusGFuncSignature.
3760         (funcsig_equal): New function; compares DBusGFuncSignature.
3761         (_dbus_gobject_lookup_marshaller): New function.
3762         (dbus_g_object_register_marshaller): New function; used to
3763         register a marshaller at runtime for a particular signature.
3764
3765         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3766
3767         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3768         which notes a server method implementation should be
3769         asynchronous.
3770
3771         * glib/dbus-binding-tool-glib.c
3772         (dbus_binding_tool_output_glib_server): Call
3773         dbus_g_value_types_init.
3774         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3775         variants specially.
3776         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3777         of a lookup function.
3778         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3779         (write_untyped_out_args): New method; write output arguments.
3780         (write_formal_declarations_for_direction): Function for
3781         writing prototypes.
3782         (write_formal_parameters_for_direction): Function for
3783         writing implementations.
3784         (write_typed_args_for_direction): Function for writing
3785         arguments prefixed with GTypes.
3786         (write_async_method_client): Write out async version
3787         of method.
3788
3789         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3790         (dbus_g_type_get_marshal_name): Move mapping from GType
3791         to marshal name into here.
3792         (dbus_g_type_get_c_name): Move into here.
3793         (compute_marshaller): Convert signature to type with
3794         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3795         (compute_marshaller_name): Ditto.
3796         (compute_marshaller): Handle async signal annotations.
3797         (gather_marshallers): Return if we don't have a known
3798         prefix.
3799         (generate_glue): Collect introspection blob here, and
3800         write all of the blob at the end.  This allows an object
3801         with multiple interfaces to work.
3802         Mark async methods in introspection blob.
3803
3804         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3805         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3806         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3807
3808         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3809         avoids people accidentally using DBUS_TYPE_* which should
3810         not be necessary anymore.
3811         Do include dbus-gtype-specialized.h, which are utilities
3812         for GLib container types.
3813         Add various #defines for types such as
3814         DBUS_TYPE_G_BOOLEAN_ARRAY.
3815         (DBusGValueIterator, DBusGValue): Define, not fully used
3816         yet.
3817         (dbus_g_value_get_g_type): Type for recursive value.
3818         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3819         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3820         (dbus_g_value_free): Prototypes.
3821         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3822         (dbus_g_proxy_set_interface): Prototype.
3823         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3824         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3825         types.
3826         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3827         Accessors.
3828         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3829         doing async invocations.
3830         (dbus_g_method_return, dbus_g_method_return_error):
3831         Prototypes.
3832         * doc/dbus-tutorial.xml: Update GLib section.
3833         
3834         * tools/dbus-viewer.c (load_child_nodes): Update
3835         for new invocation type of dbus_g_proxy_end_call.
3836         (load_from_service_thread_func): Ditto.
3837
3838         * tools/print-introspect.c (main): Ditto.
3839
3840         * tools/dbus-names-model.c (have_names_notify)
3841         (names_model_reload, names_model_set_connection)
3842         Use GTypes.
3843
3844         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3845         needed since Python bindings use GLib bindings.
3846
3847         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3848         Add --prefix argument.
3849
3850         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3851         unneeded --ignore-unsupported arg.
3852         
3853         * test/glib/test-service-glib.c: 
3854         * test/glib/test-service-glib.xml:
3855         * test/glib/test-dbus-glib.c: Add many more tests.
3856
3857 2005-06-06  David Zeuthen  <davidz@redhat.com>
3858
3859         * doc/TODO: Add item about need to remove deprecated functions.
3860
3861         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3862
3863         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3864         to repair the ABI which was broken with the last commit.
3865
3866 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3867
3868         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3869         (dbus_connection_disconnect): renamed to dbus_connection_close 
3870         for API symmetry with dbus_connection_open
3871         (_dbus_connection_open_internal): 
3872         s/dbus_connection_disconnect/dbus_connection_close
3873
3874         * dbus/dbus-bus.c (dbus_bus_get):
3875         s/dbus_connection_disconnect/dbus_connection_close
3876
3877         * bus/connection.c (bus_connections_unref, 
3878         bus_connections_setup_connection, bus_connections_expire_incomplete):
3879         s/dbus_connection_disconnect/dbus_connection_close
3880
3881         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3882         kill_client_connection_unchecked, check_hello_connection):
3883         s/dbus_connection_disconnect/dbus_connection_close
3884
3885         * bus/bus.c (new_connection_callback):
3886         s/dbus_connection_disconnect/dbus_connection_close
3887
3888         * tools/dbus-send.c (main):
3889         s/dbus_connection_disconnect/dbus_connection_close
3890
3891         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3892         s/dbus_connection_disconnect/dbus_connection_close
3893         
3894         * test/test-service.c (path_message_func, filter_func):
3895         s/dbus_connection_disconnect/dbus_connection_close
3896         
3897         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3898         
3899 2005-05-25  Colin Walters  <walters@verbum.org>
3900
3901         * dbus/dbus-protocol.h: Move various bus service #defines such
3902           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3903           dbus/dbus-shared.h.
3904         * dbus/dbus-shared.h: Various defines moved here.
3905         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3906
3907 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3908
3909         * python/__init__.py: Python bindings deserve a minor version
3910         update.  Upped to (0, 40, 2)
3911
3912 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3913
3914         * python/decorators.py: add explicitly_pass_message decorator
3915         for passing in the dbus message as keyword for edge case signal
3916         handling
3917
3918         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3919         to conform with what dbus expects for match rules
3920         (SignalMatchRule.execute): add the dbus message as a keyword
3921         if the signal handler has requested it
3922
3923         * python/examples/example/signal-recipient.py: added some more
3924         examples on how to hook up to signals
3925
3926 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3927
3928         * python/decorators.py: import dbus_bindings
3929
3930         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3931         SignalMatchNode): new classes that implement wildcard signal
3932         callback matching using a tree lookup. Heavily modified from a
3933         patch sent by Celso Pinto (fd.o bug #3241)
3934
3935         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3936         use new match classes to handle signals.
3937
3938 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3939         
3940         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3941
3942 2005-05-18  Havoc Pennington  <hp@redhat.com>
3943
3944         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3945         gettext. Not really worth requiring yet perhaps, but any
3946         production quality 1.0 would require it so we should go ahead and
3947         get things set up. We do have a couple token calls to
3948         bindtextdomain in the code already.
3949
3950 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3951
3952         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3953         when using recursive g_main_loops
3954
3955         * python/_dbus.py (class Bus): add the ProxyObjectClass
3956         alias for ProxyObject to make it easier for the Twisted 
3957         networking framework to integrate dbus.
3958
3959         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3960         alias for ProxyMethod to make it easier for the Twisted 
3961         networking framework to integrate dbus. 
3962
3963 2005-05-11  Ross Burton  <ross@openedhand.com>
3964
3965         * glib/dbus-glib-tool.c: Add --prefix argument.
3966         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3967         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3968         Add prefix argument.
3969         (generate_glue): Pass prefix argument down.
3970         (dbus_binding_tool_output_glib_server): Pass prefix to
3971         glib-genmarshal.
3972         
3973 2005-05-11  Colin Walters  <walters@verbum.org>
3974
3975         * tools/dbus-send.c (append_array): New function.
3976         (append_arg): Broken out from main.
3977         (main): Add cheesy hack to send arrays and variants.
3978         (usage): Update.
3979         * tools/dbus-print-message.c (print_iter): Broken out
3980         from main.
3981
3982 2005-05-11  Colin Walters  <walters@verbum.org>
3983
3984         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3985         New function, returns signature string for signature iter.
3986         * dbus/dbus-signature.h: Prototype it.
3987         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3988         New function, returns signature string for message iter.
3989         (dbus_message_iter_get_array_len): New function, returns
3990         length of array.
3991         (dbus_message_iter_get_fixed_array): Fix assertion; this
3992         function should be used when the iter is pointing to the
3993         contents of an array
3994         * dbus/dbus-message.h: Prototypes.
3995         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3996         New function; returns length of an array.
3997         * dbus/dbus-marshal-recursive.h: Prototype it.
3998         
3999 2005-05-11  Colin Walters  <walters@verbum.org>
4000
4001         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4002         compilation error.
4003         
4004 2005-05-08  Havoc Pennington  <hp@redhat.com>
4005
4006         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4007         daemon's pid, not the parent's pid, to the file descriptor.
4008         Reported by Taj Morton.
4009
4010 2005-05-05  Havoc Pennington  <hp@redhat.com>
4011
4012         * configure.in (LT_*): add notes on how the libtool versioning
4013         works to save thinking. Increment soname to indicate protocol
4014         breakage (though really the library interface hasn't changed I
4015         guess)
4016
4017         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4018         verify the GUID received from server matches what we were
4019         expecting, if we had an expectation
4020
4021         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4022         (_dbus_auth_get_guid_from_server): new function
4023         (send_begin): parse the OK args
4024
4025         * doc/dbus-specification.xml: add GUID to the auth protocol
4026
4027 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4028
4029         * Fix my name in previous changelog ;)
4030
4031         * python/proxies.py (ProxyObject.__getattr__): add further patch
4032         from Anthony Baxter to throw an AttributeError when python 
4033         __special__ functions are called instead of marshling them over 
4034         the bus (Bug#1685 comment 3).
4035
4036 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4037
4038         * python/Makefile.am: changed to use pyexecdir for the binding
4039         shared libraries (Bug#2494)
4040
4041         * python/exceptions.py: bring exceptions over from the bindings
4042         so they can be used in applications (Bug#2036)
4043         Make all exceptions derive from DBusException
4044
4045         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4046         of classes so that print obj doesn't throw an exception (Bug #1685)
4047
4048 2005-05-03  Ross Burton  <ross@openedhand.com>
4049
4050         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4051         Return if we get an error during registration.  Set up a
4052         weak reference on object to unregister if object is destroyed.
4053         (unregister_gobject): New function.
4054         
4055 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4056
4057         * python/dbus_bindings.pyx.in: 
4058         - added new type classes for hinting to the marashaler what type 
4059         to send over the wire
4060         - added int16 and uint16 marshalers
4061         - Fixed a bug in the type constants that caused int32 to go out
4062         as uint16 over the wire
4063         * python/dbus.py: split up into different files and renamed _dbus.py
4064         * python/__init__.py, python/_util.py, python/decorators.py, 
4065         python/exceptions.py, python/proxies.py, python/services.py,
4066         python/types.py: new files split off from dbus.py
4067         * python/Makefile.am: Add new files, remove dbus.py and 
4068         install all python files to <python module dir>/dbus
4069         * python/examples/*: Added #!/usr/bin/env python to the top of
4070         every example.  Patch provided by Tatavarty Kalyan
4071
4072 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4073
4074         * NEWS: Update to 0.33
4075
4076 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4077
4078         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4079         method for doing async calls
4080         (_pending_call_notification): New C function for handling pendning call
4081         callbacks
4082         (set_notify): New method for setting pending call notification
4083         
4084         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4085         Async capabilities added to remote method calls
4086         (Sender): class removed
4087         (RemoteService): class removed
4088         (ObjectTree): class removed for now
4089         (RemoteObject): Renamed to ProxyObject
4090         (RemoteMethod): Renamed to ProxyMethod
4091         (method): Decorator added for decorating python methods as dbus methods
4092         (signal): Decorator added for decorating python methods as signal emitters
4093         (ObjectType): Metaclass added for generating introspection data and the
4094         method callback vtable
4095         (Interface): Wrapper class added to wrap objects in a dbus interface
4096         (Object): Uses ObjectType as its metaclass and exports Introspect
4097         of the org.freedesktop.DBus.Introspectable interface
4098         (ValidationException, UnknownMethodException): new exceptions
4099
4100         * python/examples/*: Modified to fit with the new bindings
4101
4102 2005-04-23  Havoc Pennington  <hp@redhat.com>
4103
4104         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4105         reported by Tony Houghton
4106
4107         * test/test-service.c (main): test
4108         dbus_connection_get_object_path_data()
4109
4110         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4111         the exact_match
4112         (_dbus_object_tree_get_user_data_unlocked): new function used by
4113         dbus_connection_get_object_path_data()
4114         (do_register): add assertion test for get_user_data_unlocked
4115         (object_tree_test_iteration): more tests
4116
4117         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4118         new function from Dan Reed to let you get the user data from 
4119         dbus_connection_register_object_path()
4120
4121 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4122
4123         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4124         in numerous places that did not account for the NULL terminator
4125         (signature_from_seed): changed the manual string copy loop to 
4126         just use strcpy instead
4127         make check should now pass
4128
4129 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4130
4131         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4132         so that it allows messages that are not signals to pass in 
4133         NULL as the interface.
4134
4135 2005-04-18  David Zeuthen  <davidz@redhat.com>
4136
4137         * glib/dbus-gmain.c (io_handler_destroy_source): 
4138         (timeout_handler_destroy_source, connection_setup_free): 
4139         Also unref the source to avoid memory leaks.
4140
4141 2005-04-13  David Zeuthen  <davidz@redhat.com>
4142
4143         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4144         more reasonable, yet still totally arbitrary, value :-). 
4145
4146 2005-04-13  David Zeuthen  <davidz@redhat.com>
4147
4148         * doc/TODO: Added an "important for 1.0" item about selinux
4149         allow/deny messages
4150
4151 2005-04-13  David Zeuthen  <davidz@redhat.com>
4152
4153         * bus/selinux.c: Add c-file-style to top of file
4154         (log_audit_callback): Don't free the data here anymore
4155         (bus_selinux_check): Don't take spid and tpid since appending
4156         that to auxdata may OOM.
4157         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4158         to the caller if we are OOM by taking an error object.
4159         (bus_selinux_allows_send): -do-
4160
4161         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4162         and bus_selinux_allows_send
4163
4164         * bus/bus.c (bus_context_check_security_policy): Pass error and
4165         pass on OOM thrown by bus_selinux_allows_send()
4166
4167         * bus/services.c (bus_registry_acquire_service): Pass error and
4168         pass on OOM thrown by bus_selinux_allows_acquire_service()
4169
4170 2005-04-13  Havoc Pennington  <hp@redhat.com>
4171
4172         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4173         message at a time to avoid monopolizing the main loop, bug 
4174         #2953 from Benjamin Otte
4175
4176 2005-04-09  Havoc Pennington  <hp@redhat.com>
4177
4178         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4179         possible overlap, fix from Daniel Reed
4180         (fixup_alignment): fix signedness warnings
4181         (_dbus_string_append_unichar): ditto
4182
4183 2005-04-09  Havoc Pennington  <hp@redhat.com>
4184
4185         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4186
4187         * glib/dbus-glib-tool.c (main): fix warning
4188
4189         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4190
4191         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4192         add a new function that can be used in simple applications that
4193         don't have a main loop and are willing to block
4194
4195 2005-04-05  David Zeuthen  <davidz@redhat.com>
4196
4197         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4198
4199         * glib/dbus-gmain.c:
4200         (io_handler_destroy_source): Remove from list of IO handlers
4201         of the ConnectionSetup object
4202         (timeout_handler_destroy_source): -do- for timeout handlers
4203         (io_handler_source_finalized): Don't remove from list since
4204         we now do that in io_handler_destroy_source(). Renamed from
4205         io_handler_source_destroyed
4206         (timeout_handler_source_destroyed): -do- for timeout handlers
4207         (connection_setup_free): It is now safe to iterate over all
4208         IO and timeout handlers as the _destroy_source removes them
4209         from the list synchronously
4210
4211 2005-03-30  Havoc Pennington  <hp@redhat.com>
4212
4213         * configure.in: change check to gtk 2.4
4214
4215         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4216         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4217         to 2.4
4218
4219 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4220
4221         * News: Update 0.32
4222
4223         * HACKING: Fixed realease instructions.  configure.in should be updated to
4224           the next release by the person who made the last release.
4225
4226 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4227
4228         * python/lvalue_cast_post_process.py - removed.  Patch has been
4229           submitted to Pyrex maintainers that fixes gcc4.0 errors
4230
4231         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4232
4233 2005-03-24  Daniel Reed  <n@ml.org>
4234
4235         * tools/Makefile.am: Make print-introspect and
4236         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4237
4238 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4239
4240         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4241
4242         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4243           had in Red Hat packages for a while but for some reason never 
4244           got merged upstream
4245           (_dbus_is_a_number): New checks if a string
4246           can be converted to a number and does the conversion if it can
4247           (_dbus_user_database_lookup): Add check to see if the given username
4248           is a udi.  This allows udi's to be used instead of usernames in the
4249           config file.
4250           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4251           is a gdi.  This allows gdi's to be used instead of groupnames in the
4252           config file.
4253
4254 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4255
4256         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4257           code so that it compiles with gcc4.0
4258
4259         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4260           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4261           results back to dbus_binding.c
4262
4263 2005-03-20  Colin Walters  <walters@verbum.org>
4264
4265         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4266
4267         * configure.in: Require GTK+ 2.6.
4268         
4269 2005-03-20  Colin Walters  <walters@verbum.org>
4270
4271         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4272
4273 2005-03-17  Tom Parker  <palfrey@tevp.net>
4274
4275         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4276         print DBUS_UID_UNSET; instead print passed username.  Also
4277         be sure to actually use gid looked up in cache.
4278         
4279         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4280         for DBUS_GID_UNSET and groupname.
4281
4282 2005-03-17  Colin Walters  <walters@verbum.org>
4283
4284         * bus/print-introspect.c: Move to tools/.
4285         * bus/run-with-tmp-session-bus.sh: Ditto.
4286         
4287         * glib/Makefile.am (dbus-glib-bindings.h): Move
4288         generation to tools/Makefile.am.
4289
4290         * test/glib/run-test.sh: Update to handle move
4291         of run-with-tmp-session-bus.sh.
4292
4293         * test/glib/test-service-glib.c: Update to handle
4294         move of dbus-glib-bindings.h.
4295
4296         * tools/print-introspect.c: Moved here
4297         from bus/, and ported to GLib bindings.
4298
4299         * tools/run-with-tmp-session-bus.sh: Moved here
4300         from bus/.
4301
4302         * tools/Makefile.am: Generate dbus-glib-bindings.h
4303         and dbus-bus-introspect.xml here.
4304
4305         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4306         Update.
4307
4308 2005-03-17  Colin Walters  <walters@verbum.org>
4309
4310         * bus/driver.c (write_args_for_direction): Use
4311         _dbus_string_get_const_data to retrieve string;
4312         _dbus_string_get_const_data_len doesn't actually return
4313         a NULL-terminated substring.
4314
4315         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4316         (main): Change to use org_freedesktop_DBus_request_name
4317         instead of using g_proxy_begin_call/end_call.
4318
4319 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4320
4321         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4322         generating the finalizer.  Fixes from Ben Maurer.
4323
4324 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4325
4326         * mono/BusDriver.cs: Update method names: ListServices
4327         becomes ListNames; GetOwner becomes GetNameOwner.
4328
4329         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4330         onto the eval stack when removing the delegate.
4331
4332 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4333
4334         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4335         LT_CURRENT.  Set it to the autoconf variable.
4336                                                                                 
4337         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4338         classes that disconnects the signal handler delegate from the
4339         service object.  Fixes a big leak of proxy objects on the
4340         client side of things.  Patch from Ben Maurer
4341         <bmaurer@ximian.com>
4342
4343 2005-03-12  Colin Walters  <walters@verbum.org>
4344
4345         * bus/driver.c (write_args_for_direction): New function,
4346         parses a type signature into arguments and outputs to
4347         XML.
4348         (bus_driver_handle_introspect): Use it instead of
4349         hardcoding XML for certain signatures.
4350         
4351         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4352         dependency on dbus-daemon.
4353
4354         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4355         argument, pass it to dbus_binding_tool_output_glib_client.
4356
4357         * glib/dbus-binding-tool-glib.c
4358         (generate_client_glue): Protect against multiple inclusion.
4359         (dbus_binding_tool_output_glib_client): Add
4360         G_BEGIN_DECLS/G_END_DECLS.
4361
4362         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4363         Change to just take iface prefix directly.
4364         (write_formal_parameters): Clarify error message.
4365         (check_supported_parameters): New function; checks to see type
4366         signatures of method parameters are supported.
4367         (generate_client_glue): Handle ignore_unsupported flag.
4368         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4369         parameter.
4370
4371         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4372         --ignore-unsupported by default until glib bindings
4373         support arrays.
4374
4375 2005-03-11  Colin Walters  <walters@verbum.org>
4376
4377         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4378         install it.
4379
4380         * bus/print-introspect.c: New file; prints introspection
4381         data for a given name and object path.
4382
4383         * bus/run-with-tmp-session-bus.sh: New file, refactored
4384         from test/glib/run-test.sh.  Creates a temporary session
4385         bus and runs another program.
4386
4387         * test/glib/run-test.sh: Refactor to invoke
4388         run-with-tmp-session-bus.sh.
4389
4390         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4391         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4392         macros instead of hardcoding.
4393
4394         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4395
4396 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4397
4398         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4399         this unref; it doesn't match up evenly in some codepaths.
4400         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4401         this evenly matches with the ref near the top of this function.
4402
4403 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4404
4405         * dbus/dbus-object-tree.c
4406         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4407         and we try to unregister a path that's not registered, still go
4408         through the process of unlocking and don't just return.
4409
4410 2005-03-09  Colin Walters  <walters@verbum.org>
4411
4412         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4413         to this are generated for client-side wrappers.  Invokes a
4414         D-BUS method and returns reply values.  
4415
4416         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4417         function; writes signature string for argument direction.
4418         (write_args_for_direction): Change to pass input values directly
4419         instead of via address, and fix indentation.
4420         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4421         make generated wrappers inlineable.
4422
4423         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4424         note about using dbus_type_is_fixed.
4425
4426         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4427         dbus/dbus-signature.c as dbus_type_is_fixed.
4428
4429         All callers updated.
4430
4431         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4432         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4433
4434         * dbus/dbus-signature.h: Prototype.
4435
4436         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4437         error printf code.
4438
4439         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4440         appropriate instead of just freeing it.
4441         (main): Free returned strings using g_free.
4442
4443         * test/glib/Makefile.am (test-service-glib-glue.h)
4444         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4445
4446         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4447         simply maps a simple D-BUS type to GType.
4448         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4449         GType.
4450         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4451         initialize the value with it.
4452         (dbus_gvalue_binding_type_from_type): Unused, delete.
4453         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4454         various types instead of unmarshalling to value data directly.
4455         Remove can_convert boolean.
4456         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4457         returning directly instead of using can_convert boolean.
4458         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4459         Stores a GValue in a pointer to a value of its corresponding C
4460         type.
4461
4462         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4463         add dbus_gvalue_store.
4464
4465 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4466
4467         Fix a bunch of lifecycle and memory management problems
4468         in the mono bindings.
4469
4470         * mono/Arguments.cs (Arguments): Implement IDisposable
4471
4472         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4473         strictly a static class.
4474
4475         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4476         delegates into this file.
4477         (Connection): Implement IDisposable.
4478         (Dispose): Disconnect the connection and set the raw connection
4479         pointer to IntPtr.Zero.
4480         (~Connection): Call Dispose().
4481         (RegisterObjectPath): Added.  Manages the registration of object
4482         paths so we can cleanly disconnect them at dispose/finalize time.
4483         (UnregisterObjectPath): Ditto.
4484         (set_RawConnection): Unregister all of the object paths when
4485         changing the underlying DBusConnection.  Add them back onto the
4486         new connection, if any.
4487
4488         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4489         more unmanaged resources anymore, so it's not necessary.  Move all
4490         the DBusObjectPathVTable stuff out of here.
4491         (Handler): Save references to our delegates so that they don't get
4492         finalized.  Call Connection.RegisterObjectPath() instead of
4493         dbus_connection_register_object_path() directly.
4494         (Message_Called): Dispose the message after we're finished with
4495         it.
4496
4497         * mono/Message.cs (Message): Implement IDisposable.
4498         (Dispose): Dispose the Arguments, and set the RawMessage to
4499         IntPtr.Zero.
4500         (SendWithReplyAndBlock): We own the ref to the reply that comes
4501         back from dbus_connection_send_with_reply_and_block() so add a
4502         comment about that and unref it after we've constructed a managed
4503         MethodReturn class around it.  Fixes a big, big leak.
4504
4505         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4506         method.
4507         (BuildSignalHandler): After we've sent the Signal message, dispose
4508         of it.
4509         (BuildMethod): Dispose of the method call and reply messages after
4510         we've sent the message and extracted the data we want from the
4511         reply.
4512
4513         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4514         anymore.
4515         (Service_FilterCalled): Dispose of the message after we're
4516         finished with it.
4517
4518 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4519
4520         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4521         After we attach our pending call to the connection, unref
4522         it.  Fixes a leak.
4523  
4524         * mono/Connection.cs (set_RawConnection): Disconnect our
4525         filter and match callbacks from the old connection and
4526         reconnect them to the new connection, if any.
4527
4528         * mono/DBusType/Array.cs: "Code" is a static member, so
4529         don't use "this" to refer to it.  Fix for stricter checking
4530         in Mono 1.1.4.
4531  
4532         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4533         object path that we pass into unmanaged code.
4534  
4535         * mono/DBusType/String.cs (Append): Don't leak the string
4536         that we pass into unmanged code.
4537
4538 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4539         * NEWS: Update for 0.31
4540
4541         * configure.in: Release 0.31
4542         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4543
4544         * qt/Makefile.am: fixed build
4545
4546         * dbus/Makefile.am: soname bump for libdbus
4547
4548         * glib/Makefile.am: soname bump for libdbus-glib
4549
4550 2005-03-05  Havoc Pennington  <hp@redhat.com>
4551
4552         * dbus/dbus-sysdeps.c:
4553         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4554         value
4555         (_dbus_generate_random_bytes_buffer): fix return value
4556
4557         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4558         checks actually work, from Tom Parker <fdo@tevp.net>
4559
4560 2005-03-01  Colin Walters  <walters@verbum.org>
4561
4562         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4563         functions copied from dbus-glib-tool.c.
4564         (main): Convert lots of error code to use them.
4565         Also add some testing for introspection bits.
4566
4567 2005-03-01  Colin Walters  <walters@verbum.org>
4568         
4569         * doc/TODO: Remove introspection signature TODO.
4570
4571 2005-02-27  Colin Walters  <walters@verbum.org>
4572
4573         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4574         Change return value to const char * instead of int so we can do
4575         full signatures.
4576         (struct PropertyInfo, struct ArgInfo): Store char *.
4577         (property_info_new, arg_info_new): Update parameters, strdup.
4578         (property_info_unref, arg_info_unref): Free.
4579
4580         * glib/dbus-gidl.h: Update prototypes.
4581
4582         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4583         (validate_signature): New function, just validates signature and
4584         sets GError.
4585         (parse_property, parse_arg): Invoke validate_signature.  Store
4586         signature instead of just type code.
4587
4588         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4589         function to return a primary type for a signature, dropping
4590         information about types in container types.
4591         (dbus_gvalue_genmarshal_name_from_type)
4592         (dbus_gvalue_binding_type_from_type)
4593         (dbus_gvalue_ctype_from_type): Update to take full signature
4594          instead of type code.
4595         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4596
4597         * glib/dbus-gvalue.h: Update prototypes for above.
4598
4599         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4600         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4601         (introspect_properties, introspect_signals, write_interface):
4602         Update to handle signatures, and remove usage of
4603         _dbus_gutils_type_to_string.
4604         (handle_introspect): Print out type codes instead of e.g. "string"
4605         in hardcoded introspection XML; also use x_AS_STRING constants
4606         instead of hardcoding in string.
4607
4608         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4609         to string.  Remove usage of _dbus_gutils_type_to_string.
4610
4611         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4612
4613         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4614         deletion.
4615         
4616         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4617         (compute_marshaller_name, generate_glue): Handle signature change
4618         to string.
4619         (write_formal_parameters, write_args_for_direction): Ditto, and
4620         remove FIXME.
4621
4622         * tools/dbus-tree-view.c (type_to_string): Delete.
4623         (info_set_func_text): Update to print full signatures.
4624
4625         * test/glib/test-service-glib.xml: Change types to new
4626         introspection format.
4627
4628 2005-02-26  Havoc Pennington  <hp@redhat.com>
4629
4630         * doc/TODO: remove the "guid" item
4631
4632         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4633         (with_bus_thread_func): use open_private
4634
4635         * dbus/dbus-connection.c (dbus_connection_open_private): new
4636         function that works like the old dbus_connection_open()
4637         (dbus_connection_open): now returns an existing connection if
4638         possible
4639
4640         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4641         through the GUID to the transport
4642
4643         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4644         GUID in hex-encoded form.
4645
4646         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4647         pass GUID argument in to the transport
4648
4649         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4650         guid argument
4651
4652         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4653
4654         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4655
4656 2005-02-25  Havoc Pennington  <hp@redhat.com>
4657
4658         * doc/dbus-specification.xml: document the GUID thing
4659
4660         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4661         globally unique ID for the server, and put a "guid=hexencoded"
4662         field in the address
4663
4664         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4665
4666         * dbus/dbus-message.c: ditto
4667
4668         * dbus/dbus-dataslot.c: ditto
4669
4670         * dbus/dbus-list.c: ditto
4671
4672         * dbus/dbus-internals.h: wait, just include
4673         dbus-threads-internal.h here
4674         
4675         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4676         use in main library
4677
4678         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4679
4680 2005-02-24  Colin Walters  <walters@verbum.org>
4681
4682         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4683
4684 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4685
4686         * glib/Makefile.am: added dbus-gobject.h to sources list
4687         so distcheck doesn't fail
4688         
4689 2005-02-24  Havoc Pennington  <hp@redhat.com>
4690
4691         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4692         you must disconnect before unref, since locking and other things
4693         are screwed up otherwise. Fix assorted other locking stuff.
4694
4695         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4696         fix compilation
4697
4698         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4699         into a private header and don't export from the library
4700
4701         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4702
4703 2005-02-24  Colin Walters  <walters@verbum.org>
4704         
4705         * dbus/dbus-signature.c: New file; implements various functions
4706         related to type signatures.  Includes an interator for parsing,
4707         validation functions.
4708         (dbus_type_is_basic): Moved here from
4709         dbus-marshal-basic.c:_dbus_type_is_basic.
4710         (dbus_type_is_container): Moved here from
4711         dbus-marshal-basic.c:_dbus_type_is_container.
4712
4713         All callers of _dbus_type_is_container and _dbus_type_is_basic
4714         updated, and include dbus-signature.h.
4715
4716         * dbus/dbus-signature.h: New file; prototypes for the above.
4717
4718         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4719         dbus-signature.h.
4720
4721         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4722         function factored out of _dbus_first_type_in_signature.
4723         (_dbus_first_type_in_signature_c_str): New function; returns first
4724         type code for a type signature character.
4725
4726         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4727         handle function moves.
4728
4729         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4730
4731         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4732         function; skips to next complete type in type signature.
4733         Implemented using previous skip_one_complete_type.  Now
4734         skip_one_complete_type just delegates to
4735         _dbus_type_signature_next.
4736
4737         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4738         to dbus-signature.c
4739         (_dbus_type_is_container): Ditto.
4740
4741         * doc/dbus-specification.xml: Update introspection sample to
4742         use real type signatures.
4743
4744         * dbus/dbus-test.h: Prototype signature test.
4745
4746         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4747         signature tests.
4748
4749         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4750
4751 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4752
4753         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4754         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4755
4756 2005-02-21  Colin Walters  <walters@verbum.org>
4757
4758         * dbus/dbus-test-main.c (main): Take optional specific test
4759         argument.
4760
4761         * dbus/dbus-test.c (run_test): New function, runs a test function
4762         with no data directory.
4763         (run_data_test): Like above, but takes data directory.
4764         (dbus_internal_do_not_use_run_tests): Take
4765         specific test argument.  Replace lots of cut n' paste code
4766         with run_test and run_data_test.
4767
4768         * dbus/dbus-test.h: Update prototype for
4769         dbus_internal_do_not_use_run_tests.
4770
4771 2005-02-20  Havoc Pennington  <hp@redhat.com>
4772
4773         Fix bugs reported by Daniel P. Berrange
4774         
4775         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4776         (protected_change_watch): new function
4777         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4778         (_dbus_server_add_watch): change to work like the
4779         dbus-connection.c equivalents; like those, probably kind of
4780         busted, but should at least mostly work for now
4781         (dbus_server_disconnect): drop the lock if we were already
4782         disconnected, patch from Daniel P. Berrange
4783
4784         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4785         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4786         same stuff
4787
4788         * doc/TODO: todo about unscrewing this mess
4789
4790 2005-02-19  Colin Walters  <walters@verbum.org>
4791
4792         * glib/dbus-binding-tool-glib.c
4793         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4794
4795         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4796         as errno.h and sys/stat.h.
4797         (lose): New function, prints error with
4798         newline and exits.
4799         (lose_gerror): Similar, but takes GError for message.
4800         (main): Add --output argument to specify output file to write to,
4801         instead of always printing to stdout.  In this mode, determine
4802         timestamps on source files to see whether any are newer than the
4803         target file.  If not, exit.  Also convert a number of error
4804         messages to use lose (since it's shorter), and switch to using
4805         g_io_channel_shutdown.
4806
4807 2005-02-19  Havoc Pennington  <hp@redhat.com>
4808
4809         * glib/dbus-gobject.c
4810         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4811
4812         * glib/dbus-glib.c: fix doxygen warnings
4813
4814         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4815         is found on an <arg>
4816
4817 2005-02-17  Colin Walters  <walters@verbum.org>
4818
4819         * glib/dbus-gobject.h: Don't export
4820         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4821         
4822         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4823         (invoke_object_method): Handle it.
4824
4825         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4826         Handle rename.
4827         
4828 2005-02-17  Colin Walters  <walters@verbum.org>
4829
4830         * bus/.cvsignore, doc/.cvsignore
4831         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4832         Update.
4833
4834 2005-02-17  Colin Walters  <walters@verbum.org>
4835         
4836         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4837         Rename to DBUS_SERVICE_DBUS.
4838         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4839         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4840         Change the value from "org.freedesktop.Local"
4841         to "org.freedesktop.DBus.Local".
4842         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4843         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4844         DBUS_INTERFACE_INTROSPECTABLE.
4845         Change the value from "org.freedesktop.Introspectable"
4846         to "org.freedesktop.DBus.Introspectable".
4847         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4848         DBUS_INTERFACE_PROPERTIES.
4849         Change the value from "org.freedesktop.Properties"
4850         to "org.freedesktop.DBus.Properties".
4851         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4852         DBUS_INTERFACE_PEER.
4853         Change the value from "org.freedesktop.Peer"
4854         to "org.freedesktop.DBus.Peer".
4855         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4856         DBUS_INTERFACE_LOCAL.
4857         Change the value from "org.freedesktop.Local"
4858         to "org.freedesktop.DBus.Local".
4859
4860         All other users of those constants have been changed.
4861
4862         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4863
4864         * glib/dbus-gobject.c (handle_introspect): Use constants.
4865
4866         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4867
4868 2005-02-17  Colin Walters  <walters@verbum.org>
4869
4870         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4871         (parse_node, parse_interface, parse_method, parse_signal)
4872         (parse_property, parse_annotation): Lose if we're currently in an
4873         annotation.
4874         (parse_annotation): New function.
4875         (parser_start_element, parser_end_element): Handle annotation.
4876         (parse_method, parse_interface): Remove support for c_name attribute,
4877         switch to annotations.
4878
4879         * glib/dbus-gidl.h (interface_info_get_binding_names)
4880         (method_info_get_binding_names)
4881         (interface_info_get_binding_name, method_info_get_binding_name)
4882         (interface_info_set_binding_name, method_info_set_binding_name):
4883         Remove.
4884         (interface_info_get_annotations, method_info_get_annotations)
4885         (interface_info_get_annotation, method_info_get_annotation)
4886         (interface_info_add_annotation, method_info_add_annotation):
4887         Prototype.
4888
4889         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4890         for "bindings".
4891         (struct MethodInfo): Ditto.
4892         Straightfoward conversion of binding methods into annotation methods
4893         as prototyped.
4894
4895         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4896
4897         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4898
4899         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4900         Use new annotation API.
4901
4902         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4903         annotation element.
4904         
4905         * doc/dbus-specification.xml: Discuss introspection annotations,
4906         include list of well-known annotations.
4907
4908         * test/glib/test-service-glib.xml: Make validate against new DTD.
4909
4910 2005-02-17  Colin Walters  <walters@verbum.org>
4911
4912         This patch is based on initial work from
4913         Paul Kuliniewicz <kuliniew@purdue.edu>.
4914
4915         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4916         initialization of GValue from dbus type to here.
4917         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4918         for the "glib-genmarshal" program from a DBus type.
4919         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4920         into the C name for it we use in the glib bindings.
4921         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4922         glib C type (not GValue).
4923         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4924
4925         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4926         from dbus-gobject.c.
4927
4928         * glib/dbus-gutils.h: Prototype it.
4929
4930         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4931         (marshal_dbus_message_to_g_marshaller): Use new shared function
4932         dbus_glib_marshal_dbus_message_to_gvalue_array.
4933
4934         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4935         Will be changed once we have annotations.
4936
4937         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4938         GStaticRWLock.  Callers updated.
4939         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4940         (string_table_next): New function for iterating over zero-terminated
4941         string value array.
4942         (string_table_lookup): New function; retrieves specific entry in
4943         array.
4944         (get_method_data): New function; look up method data in object data chunk.
4945         (object_error_domain_prefix_from_object_info)
4946         (object_error_code_from_object_info): New functions, but not implemented yet.
4947         (method_interface_from_object_info): New function; retrieve interface name.
4948         (method_name_from_object_info): New function; retrieve method name.
4949         (method_arg_info_from_object_info): New function; retrieve argument data.
4950         (arg_iterate): New function; iterates over serialized argument data.
4951         (method_dir_signature_from_object_info): New function; returns a
4952         GString holding type signature for arguments for just one
4953         direction (input or output).
4954         (method_input_signature_from_object_info)
4955         (method_output_signature_from_object_info): New functions.
4956         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4957         converts dbus message arguments into a GValue array.  Used for both
4958         signal handling and method invocation.
4959         (struct DBusGlibWriteIterfaceData): New utility structure.
4960         (write_interface): New function; generate introspection XML for
4961         an interface.
4962         (introspect_interfaces): New function; gathers all interface->methods,
4963         generates introspection XML for them.
4964         (handle_introspect): Invoke introspect_interfaces.
4965         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4966         (lookup_object_and_method): New function; examines an incoming message
4967         and attempts to match it up (via interface, method name, and argument
4968         signature) with a known object and method.
4969         (gerror_domaincode_to_dbus_error_name): New function; converts a
4970         GError domain and code into a DBus error name.  Needs GError data
4971         added to object introspection to work well.
4972         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4973         GError.
4974         (invoke_object_method): New function to invoke an object method
4975         looked up via lookup_object_and_method.  Parses the incoming
4976         message, turns it into a GValue array, then invokes the marshaller
4977         specified in the DBusGMethodInfo.  Creates a new message with
4978         either return values or error message as appropriate.
4979         (gobject_message_function): Invoke lookup_object_and_method and
4980         invoke_object_method.
4981
4982         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4983         (enum DBusBindingOutputMode): New enum for binding output modes.
4984         (pretty_print): Print binding names.
4985         (dbus_binding_tool_error_quark): GError bits.
4986         (version): Fix typo.
4987         (main): Create GIOChannel for output.  Parse new --mode argument,
4988         possible values are "pretty-print", "glib-server", "glib-client".
4989         Use mode to invoke appropriate function.
4990         
4991         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4992
4993         * glib/dbus-glib-tool.h: New header, just includes GError bits
4994         for now.
4995
4996         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4997         maps binding style to name.
4998         (struct MethodInfo): Ditto.
4999         (get_hash_keys, get_hash_key): Utility function, returns keys for
5000         a GHashTable.
5001         (interface_info_new, method_info_new): Initialize bindings.
5002         (interface_info_unref, method_info_unref): Destroy bindings.
5003         (method_info_get_binding_names, method_info_get_binding_name)
5004         (interface_info_get_binding_names, interface_info_get_binding_name):
5005         Functions for retrieving binding names.
5006         (method_info_set_binding_name, interface_info_set_binding_name):
5007         Functions for setting binding names.
5008
5009         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5010         for glib binding generation.
5011
5012         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5013         and client-side glib glue generation.
5014
5015         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5016         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5017         dbus-glib-tool.h.
5018
5019         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5020         of using GClosureMarshal directly.
5021         (struct DBusGObjectInfo): Add n_infos member.
5022
5023         * test/glib/test-service-glib.xml: New file; contains introspection data
5024         for MyTestObject used in test-service-glib.c.
5025
5026         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5027         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5028         (my_object_uppercase, my_object_many_args): New test methods.
5029         (main): Use dbus_g_object_class_install_info to include generated object
5030         info.
5031
5032         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5033         as well as client-side bindings.
5034
5035         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5036         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5037         using both the dbus_gproxy stuff directly as well as the generated bindings.
5038
5039 2005-02-15  Havoc Pennington  <hp@redhat.com>
5040
5041         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5042         complete a pending call, don't run filters first.
5043
5044         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5045         dbus_pending_call_steal_reply
5046
5047         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5048         _dbus_connection_block_pending_call
5049         (dbus_pending_call_get_reply): change to steal_reply and return a
5050         ref
5051
5052         * dbus/dbus-connection.c
5053         (dbus_connection_send_with_reply_and_block): port to work in terms
5054         of DBusPendingCall
5055         (_dbus_connection_block_pending_call): replace block_for_reply
5056         with this
5057
5058 2005-02-14  Havoc Pennington  <hp@redhat.com>
5059
5060         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5061         properly handle looking up group information by name; fix 
5062         from j@bootlab.org
5063
5064 2005-02-13  Havoc Pennington  <hp@redhat.com>
5065
5066         * dbus/dbus-connection.c (dbus_connection_return_message) 
5067         (dbus_connection_borrow_message): hold dispatch lock while message
5068         is outstanding
5069         (_dbus_connection_block_for_reply): hold dispatch lock while we
5070         block for the reply, so nobody steals our reply
5071         (dbus_connection_pop_message): hold the dispatch lock while we
5072         pluck the message
5073
5074 2005-02-13  Havoc Pennington  <hp@redhat.com>
5075
5076         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5077         (_dbus_connection_release_dispatch)
5078         (_dbus_connection_acquire_io_path)
5079         (_dbus_connection_release_io_path): make the mutex and condvar
5080         control access to the "acquired" flag. Drop the connection lock
5081         while waiting on the condvar. Hopefully these are baby steps in
5082         roughly the right direction.
5083
5084 2005-02-13  Havoc Pennington  <hp@redhat.com>
5085
5086         * dbus/dbus-connection.c: use separate mutexes for the condition
5087         variables; this is some kind of baseline for sanity, but the
5088         condition variables still aren't used correctly afaict
5089
5090 2005-02-13  Havoc Pennington  <hp@redhat.com>
5091
5092         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5093         fix a double-unlock
5094
5095         * dbus/dbus-connection.c
5096         (_dbus_connection_detach_pending_call_unlocked): add this
5097
5098         Initial semi-correct pass through to fix thread locking; there are
5099         still some issues with the condition variable paths I'm pretty
5100         sure
5101         
5102         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5103         lock/unlock calls
5104
5105         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5106         rename to add _unlocked
5107         (struct DBusConnection): move "dispatch_acquired" and
5108         "io_path_acquired" to use only one bit each.
5109         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5110         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5111         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5112         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5113         (_dbus_connection_remove_timeout) 
5114         (_dbus_connection_toggle_timeout): drop lock when calling out to
5115         user functions; done in a hacky/bad way.
5116         (_dbus_connection_send_and_unlock): add a missing unlock
5117         (_dbus_connection_block_for_reply): add a missing unlock
5118
5119         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5120         drop lock in a hacky probably unsafe way to call out to user
5121         function
5122
5123 2005-02-12  Havoc Pennington  <hp@redhat.com>
5124
5125         * tools/dbus-tree-view.c (info_set_func_text): display more
5126         details on args
5127
5128         * bus/driver.c (bus_driver_handle_list_services): list the bus
5129         driver
5130
5131         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5132
5133         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5134         (method_info_get_n_args): new function
5135
5136 2005-02-12  Havoc Pennington  <hp@redhat.com>
5137
5138         * bus/driver.c (bus_driver_handle_introspect): add introspection
5139         for bus driver
5140
5141 2005-02-12  Havoc Pennington  <hp@redhat.com>
5142
5143         * bus/driver.c: put the signature of each bus driver method in the
5144         table of handlers and check it on incoming calls; this isn't
5145         really useful, but going to add introspect support in a minute.
5146
5147 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5148
5149         * mono/Connection.cs: The unpredictability of finalizers in mono
5150         prevents us from deterministically disconnecting the filters from
5151         the Service class's finalizer, so move tracking of filters and
5152         matches here.  Add API for that.
5153
5154         * mono/Service.cs: Remove the code, add code which calls the
5155         methods now on the Connection class.
5156
5157 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5158
5159         * python/dbus.py (class Sender): added to support dbus signals better
5160         (Bus::add_signal_receiver): added expand_args parameter which defaults
5161         to True.  When expand args is True the signal handler will pass the 
5162         message arguments as parameters to the signal handler.  If False
5163         revert to previous behavior where the signal handler must get the
5164         argument list from the message.  This is to help port applications
5165         like HAL that have a tendancy to send variable length argument lists.
5166         self._match_rule_to_receivers is now a dict of dicts.
5167         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5168         removing it from a list
5169         (Bus::_signal_func): change signal handlers so that interface,
5170         signal_name, service, path and message are packed into a Sender
5171         object and that is passed to the handler.  If expand_args is True
5172         extract the args list from the message and append it to the parameter
5173         list
5174         
5175         * python/dbus_bindings.pyx.in (class Signature): added to support 
5176         signiature types
5177         (MessageIter::__init__): changed iteration limit to match D-BUS
5178         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5179         STRUCT and VARIENT type support
5180         (MessageIter::python_value_to_dbus_sig): made recursive to support
5181         recursive types
5182         (MessageIter::append*): added Signature, dict, tuple 
5183         support
5184
5185         * python/examples/example-client.py: added examples of getting tuples
5186         and dicts
5187
5188         * python/examples/example-service.py: added examples of sending tuples
5189         and dicts
5190
5191         * python/examples/example-signal-recipient.py: Fixed to handle new
5192         signal callback format
5193
5194 2005-02-10  Havoc Pennington  <hp@redhat.com>
5195
5196         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5197         (call dbus_g_proxy_add_signal)
5198
5199         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5200         escape the hostname
5201         (_dbus_server_new_for_domain_socket): escape the path
5202
5203         * dbus/dbus-address.c (dbus_address_escape_value): new
5204         (dbus_address_unescape_value): new
5205         (dbus_parse_address): unescape values
5206
5207         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5208
5209         * doc/dbus-specification.xml: explain how to escape values in
5210         addresses
5211
5212 2005-02-10  Havoc Pennington  <hp@redhat.com>
5213
5214         * dbus/dbus-message-factory.c (generate_special): modify test to
5215         avoid using a non-basic dict key
5216
5217         * dbus/dbus-marshal-validate-util.c: add test for the below
5218
5219         * doc/dbus-specification.xml: require that dict keys are a basic
5220         type
5221
5222         * dbus/dbus-marshal-validate.c
5223         (_dbus_validate_signature_with_reason): require that dict key is a
5224         basic type
5225
5226 2005-02-10  Havoc Pennington  <hp@redhat.com>
5227
5228         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5229         change to be _and_unlock instead of _unlocked
5230
5231         * dbus/dbus-connection.c
5232         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5233         have no_update so we can find this bug quickly in future
5234
5235 2005-02-10  Havoc Pennington  <hp@redhat.com>
5236
5237         * dbus/dbus-message-util.c (verify_test_message): tests for string
5238         array
5239
5240         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5241         support for arrays of string/signature/path
5242
5243 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5244
5245         * dbus/dbus-connection.c
5246         (_dbus_connection_queue_received_message_link,
5247         _dbus_connection_message_sent): Add the path to
5248         the verbose output.
5249         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5250         _dbus_connection_send_preallocated_unlocked(), updated the
5251         dispatch status, and unlocks.  Fixes a bug where certain
5252         situations (like a broken pipe) could cause a Disconnect message
5253         to not be sent, tricking the bus into thinking a service was still
5254         there when the process had quit.
5255         (_dbus_connection_send_preallocated): Call
5256         _dbus_connection_send_preallocated_and_unlock().
5257         (_dbus_connection_send_and_unlock): Added.  Calls
5258         _dbus_connection_send_preallocated_and_unlock().
5259         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5260         (dbus_connection_send_with_reply): Update the dispatch status and
5261         unlock.
5262
5263         * mono/Service.cs (~Service): Added.  Removes the filter so that
5264         we don't get unmanaged code calling back into a GCed delegate.
5265         (RemoveFilter); Added.
5266
5267 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5268
5269         * dbus/dbus-message.c (dbus_message_iter_open_container):
5270         - Removed check for iterator type being an array because
5271         get_arg_type does not work with writer iterators
5272         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5273
5274 2005-02-07  Havoc Pennington  <hp@redhat.com>
5275
5276         * doc/dbus-specification.xml: some more language cleanups; add
5277         stuff about how to deal with invalid protocol and extension
5278         points; add _ to allowed chars in auth commands; add EXTENSION_
5279         auth command prefix
5280
5281 2005-02-06  Havoc Pennington  <hp@redhat.com>
5282
5283         * s/expected/required/ in a couple places for clarity
5284
5285 2005-02-07  Colin Walters  <walters@verbum.org>
5286
5287         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5288         sender or proposed_recipient.
5289
5290 2005-02-06  Havoc Pennington  <hp@redhat.com>
5291
5292         * dbus/dbus-message-factory.c (generate_special): more tests
5293
5294         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5295         array length that exceeds the maximum
5296
5297 2005-02-05  Havoc Pennington  <hp@redhat.com>
5298
5299         * dbus/dbus-message-factory.c (generate_special): more test cases,
5300         increasing coverage
5301
5302         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5303         reason why a signature was invalid
5304
5305         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5306         skip the length of the string before we look at it in validation
5307
5308         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5309         equal_substring
5310
5311         * dbus/dbus-message.c (_dbus_message_loader_new): default
5312         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5313
5314 2005-02-05  Havoc Pennington  <hp@redhat.com>
5315
5316         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5317         if the signature of a variant was empty
5318         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5319         struct with no element type)
5320
5321         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5322         mangled messages to break things
5323
5324 2005-02-04  Havoc Pennington  <hp@redhat.com>
5325
5326         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5327         g_quark_try_string() so it actually can return 0
5328         (dbus_g_proxy_connect_signal): ditto
5329
5330 2005-02-04  Havoc Pennington  <hp@redhat.com>
5331
5332         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5333         bogus warning
5334         (tristring_from_message): assert cleanly on null path/interface
5335         (should not be possible though I decided later)
5336         (dbus_g_proxy_dispose): move proxy manager unregistration here
5337         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5338         g_return_if_fail() checks
5339
5340 2005-02-04  Havoc Pennington  <hp@redhat.com>
5341
5342         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5343
5344         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5345         (with some minor changes)
5346
5347         * doc/dbus-specification.xml: add deprecated attribute to
5348         introspection format
5349
5350 2005-01-31  Havoc Pennington  <hp@redhat.com>
5351
5352         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5353         think it's sort of right
5354
5355 2005-01-30  Havoc Pennington  <hp@redhat.com>
5356
5357         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5358
5359 2005-01-30  Havoc Pennington  <hp@redhat.com>
5360
5361         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5362
5363         * autogen.sh: change to autotools 1.9
5364
5365         * glib/dbus-gproxy.c: completely change how signals work
5366         (dbus_g_proxy_add_signal): new function to specify signature of a
5367         signal
5368         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5369         and g_warning if the incoming message has the wrong signature.
5370
5371 2005-01-30  Havoc Pennington  <hp@redhat.com>
5372
5373         * tools/dbus-names-model.c (have_names_notify): fix this
5374
5375         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5376         up the string array handling a bit 
5377
5378 2005-01-30  Havoc Pennington  <hp@redhat.com>
5379
5380         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5381         (dbus_g_pending_call_cancel): new function
5382
5383         * dbus/dbus-glib.h: move GType decls for connection/message here;
5384         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5385         here, just kind of rationalizing how we handle all that
5386
5387         * tools/dbus-names-model.c: new file for a tree model listing the
5388         services on a bus
5389
5390         * tools/dbus-tree-view.c (model_new): use proper typing on the
5391         model rows
5392
5393 2005-01-30  Havoc Pennington  <hp@redhat.com>
5394
5395         * glib/dbus-gmain.c: add a custom GSource back that just checks
5396         whether the message queue has anything in it; otherwise, there are 
5397         cases where we won't see messages in the queue since there was no 
5398         IO visible to the glib main loop
5399
5400         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5401         increase default message timeout to 25 seconds
5402
5403 2005-01-30  Havoc Pennington  <hp@redhat.com>
5404
5405         * test/glib/test-profile.c (no_bus_stop_server): remove the
5406         warning about the g_warning that I just fixed
5407
5408         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5409         custom source, seems to be a lot easier to understand and work
5410         better.
5411
5412 2005-01-30  Havoc Pennington  <hp@redhat.com>
5413
5414         I think this main loop thing is conceptually broken, but here are 
5415         some band aids. I'll maybe rewrite it in a minute.
5416         
5417         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5418         custom GSource, so don't pass it in; confusing
5419         (gsource_server_finalize, gsource_connection_finalize): add
5420         finalize handlers that remove all the watches.  
5421
5422 2005-01-30  Havoc Pennington  <hp@redhat.com>
5423
5424         * glib/dbus-gobject.c (introspect_properties): fix the XML
5425         generated
5426
5427         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5428         which effectively detects the use of freed messages
5429
5430         * glib/dbus-gobject.c (handle_introspect): modify and return the
5431         reply message instead of the incoming message
5432
5433         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5434         gee, maybe it should SEND THE XML instead of just making a string
5435         and freeing it again ;-)
5436
5437         * tools/dbus-print-message.c (print_message): improve printing of
5438         messages
5439
5440         * configure.in: add debug-glib.service to the output
5441
5442 2005-01-30  Havoc Pennington  <hp@redhat.com>
5443
5444         dbus-viewer introspected and displayed the bus driver
5445         
5446         * dbus/dbus-object-tree.c 
5447         (object_tree_test_iteration): add tests for a handler registered on "/"
5448
5449         * dbus/dbus-object-tree.c
5450         (_dbus_decompose_path): fix to handle path "/" properly
5451         (run_decompose_tests): add tests for path decomposition
5452         
5453         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5454         properly
5455
5456         * glib/dbus-gobject.c (handle_introspect): fix quotes
5457
5458         * test/glib/run-test.sh: support launching the bus, then running
5459         dbus-viewer
5460
5461         * test/glib/test-service-glib.c (main): put in a trivial gobject
5462         subclass and register it on the connection
5463
5464         * bus/driver.c (bus_driver_handle_introspect): implement
5465         introspection of the bus driver service
5466
5467         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5468         identifiers, doctype decl
5469
5470         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5471         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5472         returning the service unchanged.
5473         (bus_driver_handle_message): remove old check for reply_serial in
5474         method calls, now the message type deals with that
5475         (bus_driver_handle_message): handle NULL interface
5476
5477         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5478
5479         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5480         -1 for len
5481
5482         * tools/dbus-viewer.c: add support for introspecting a service on
5483         a bus
5484
5485         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5486         (dbus_g_pending_call_unref): add
5487
5488 2005-01-29  Havoc Pennington  <hp@redhat.com>
5489
5490         * tools/dbus-tree-view.c: add support for displaying properties.
5491         (run dbus-viewer with an introspect xml file as arg, then resize
5492         the window so the tree elements show up, not sure what that is)
5493
5494         * glib/dbus-gobject.c (handle_introspect): return
5495         org.freedesktop.Properties and org.freedesktop.Introspectable
5496         interfaces when we are introspected.
5497
5498         * doc/dbus-specification.xml: allow empty interface name when 
5499         Get/Set a property
5500
5501 2005-01-29  Havoc Pennington  <hp@redhat.com>
5502
5503         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5504         though it uses glib, it could be extended for any binding in
5505         principle
5506
5507         * glib/dbus-gobject.c (gobject_message_function): change to the
5508         new way properties work
5509
5510         * dbus/dbus-protocol.h: add the new interfaces
5511
5512         * doc/dbus-specification.xml: document the introspection format,
5513         Introspectable interface, and add an org.freedesktop.Properties
5514         interface.
5515
5516         * glib/dbus-gparser.c: add support for a <property> element
5517
5518         * glib/dbus-gidl.c: add PropertyInfo
5519
5520         * glib/dbus-gobject.c (handle_introspect): put the outermost
5521         <node> outside the signal and property descriptions.
5522         (introspect_properties): export properties as <property> rather
5523         than as method calls
5524
5525 2005-01-28  Havoc Pennington  <hp@redhat.com>
5526
5527         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5528         related to authentication protocol
5529
5530 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5531
5532         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5533                 - BUS_ACTIVATION -> BUS_STARTER
5534                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5535                 - class MessageIter (__init__): Added recursion checking 
5536                 so we throw a nice error instead of just disconnecting from the
5537                 bus.
5538                 (get): Added arg_type parameter for recursion.
5539                 Removed the nil type
5540                 Added signiture type placeholder (not implemented)
5541                 Added struct type placeholder (not implemented)
5542                 Added varient type placeholder (not implemented)
5543                 Commented out dict type for now     
5544                 (get_element_type): renamed from get_array_type
5545                 (get_*): changed to use the dbus_message_iter_get_basic API
5546                 (get_*_array): removed in favor of recursive get_array method
5547                 (get_array): new recursive method which calls get to marshal
5548                 the elements of the array
5549                 (value_to_dbus_sig): New method returns the corrasponding
5550                 dbus signiture to a python value
5551                 (append): Comment out dict handling for now
5552                 Handle lists with the new recursive API
5553                 Comment out None handling for now
5554                 (append_nil): removed
5555                 (append_*): changed to use dbus_message_iter_append_basic API
5556                 (append_*_array): removed in favor of recursive append_array 
5557                 method
5558                 (__str__): Make it easier to print out recursive iterators
5559                 for debugging
5560                 - class Message (__str__): moved type inspection to the
5561                 MessageIter class' __str__ method
5562                 (get_iter): Added an append parameter wich defaults to False
5563                 If True use the new API's to create an append iterator
5564
5565         * python/dbus.py: Update to use new bindings API
5566                 - TYPE_ACTIVATION -> TYPE_STARTER
5567                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5568                 - class ActivationBus -> class StarterBus
5569                 - class RemoteObject (__call__): get an append iterator
5570                 - (_dispatch_dbus_method_call): get an append iterator
5571                 - class Object (emit_signal): get an append iterator
5572
5573         * python/examples/: Fixed up the examples to work with the new API
5574                 
5575 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5576
5577         * configure.in: Bump version up to 0.30.
5578
5579         * HACKING: Add a release item to bump the version number up after 
5580         a release.
5581
5582 2005-01-28  Havoc Pennington  <hp@redhat.com>
5583
5584         * doc/dbus-specification.xml: update to describe 16-bit types and
5585         dict entries
5586
5587         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5588         assertion
5589
5590         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5591         type
5592
5593         * dbus/dbus-marshal-recursive.c: implement
5594
5595 2005-01-27  Havoc Pennington  <hp@redhat.com>
5596
5597         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5598
5599         * configure.in: find the right type for 16 and 32 bit ints as well
5600         as 64
5601
5602         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5603         the 16-bit types so people don't have to stuff them in 32-bit or
5604         byte arrays.
5605
5606 2005-01-27  Havoc Pennington  <hp@redhat.com>
5607
5608         * dbus/dbus-message.c: byteswap the message if you init an
5609         iterator to read/write from it
5610         
5611         * dbus/dbus-marshal-byteswap.c: new file implementing 
5612         _dbus_marshal_byteswap()
5613
5614         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5615
5616 2005-01-26  Havoc Pennington  <hp@redhat.com>
5617         
5618         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5619         build, apparently - nobody noticed?)
5620         
5621 2005-01-26  Havoc Pennington  <hp@redhat.com>
5622
5623         * dbus/dbus-marshal-recursive.h: remove todo comment
5624
5625 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5626
5627         * Land the mono binding changes to conform to the new APIs.
5628
5629         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5630         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5631
5632         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5633         type code as a string.
5634         (InitAppending): Rename dbus_message_append_iter_init() to
5635         dbus_message_iter_init_append().
5636
5637         * mono/BusDriver.cs: Rename ServiceEventHandler to
5638         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5639         Rename ServiceOwnerChanged to NameOwnerChanged.
5640
5641         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5642         underlying C call.
5643
5644         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5645
5646         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5647         dbus_bus_acquire_service() to dbus_bus_request_name().
5648
5649         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5650         of Type.UnderlyingSystemType to get the correct element type for
5651         the array.
5652         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5653         dbus_message_get_{element|arg}_type() instead of
5654         dbus_message_iter_init_array_iterator().
5655         (Append): Replace dbus_message_iter_append_array() with
5656         dbus_message_iter_open_container() and
5657         dbus_message_iter_close_container().
5658
5659         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5660         types have been removed.
5661         
5662         * mono/DBusType/*.cs: Replace calls of
5663         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5664         but specify the type in the DllImport extern declaration.  Ditto
5665         for dbus_message_iter_append_[type]() ->
5666         dbus_message_iter_append_basic().
5667
5668         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5669         NameOwnerChangedHandler.
5670
5671 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5672
5673         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5674                 - get_base_service -> get_unique_name
5675                 - bus_get_base_service -> bus_get_unique_name
5676                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5677                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5678                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5679                 - bus_activate_service -> bus_start_service_by_name
5680                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5681                 - bus_acquire_service -> bus_request_name
5682                 - dbus_bus_acquire_service -> dbus_bus_request_name
5683                 - bus_service_exists -> bus_name_has_owner
5684                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5685
5686         * python/dbus.py: Rename of methods
5687                 - activate_service -> start_service_by_name
5688                 - bus_acquire_service -> bus_request_name
5689                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5690                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5691
5692         
5693 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5694
5695         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5696         signature for the method that can't be found.
5697
5698         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5699         the message has any arguments, we need to call
5700         _dbus_type_reader_get_current_type(), not
5701         _dbus_type_reader_has_next().
5702
5703 2005-01-24  Havoc Pennington  <hp@redhat.com>
5704
5705         * dbus/dbus-message-factory.c: more testing of message validation
5706
5707         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5708         header
5709
5710 2005-01-23  Havoc Pennington  <hp@redhat.com>
5711
5712         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5713         get this all working, not many tests in the framework yet though
5714
5715 2005-01-22  Havoc Pennington  <hp@redhat.com>
5716
5717         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5718         tutorial, based on work from David Wheeler.
5719
5720 2005-01-21  Havoc Pennington  <hp@redhat.com>
5721
5722         * dbus/dbus-bus.c: add more return_if_fail checks
5723
5724         * dbus/dbus-message.c (load_message): have the "no validation"
5725         mode (have to edit the code to toggle the mode for now though)
5726
5727         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5728         skips all validation; I want to use this at least for benchmark
5729         baseline, I'm not sure if it should be a publicly-available switch.
5730
5731 2005-01-21  Havoc Pennington  <hp@redhat.com>
5732
5733         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5734         toplevel doxygen group as the low-level API stuff
5735
5736         * dbus/dbus.h: note that libdbus is the low-level API
5737
5738 2005-01-20  Havoc Pennington  <hp@redhat.com>
5739
5740         * update-dbus-docs.sh: script to update docs on the web site, only
5741         works for me though. neener.
5742
5743 2005-01-20  Havoc Pennington  <hp@redhat.com>
5744
5745         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5746         code can reveal bugs in it
5747
5748 2005-01-20  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5751         select() version, patches from Tor Lillqvist
5752
5753 2005-01-20  Havoc Pennington  <hp@redhat.com>
5754
5755         * doc/dbus-tutorial.xml: replace > with &gt;
5756
5757         * bus/services.c (bus_registry_acquire_service): validate the name
5758         and return a better error if it's no good.
5759
5760         * doc/dbus-specification.xml: note NO_AUTO_START change
5761
5762         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5763         from AUTO_START, we're toggling the default
5764
5765         * bus/dispatch.c: adapt the tests to change of auto-start default
5766
5767 2005-01-18  Havoc Pennington  <hp@redhat.com>
5768
5769         * rename dbus-daemon-1 to dbus-daemon throughout
5770
5771 2005-01-18  Havoc Pennington  <hp@redhat.com>
5772
5773         * Throughout, grand renaming to strip out the use of "service",
5774         just say "name" instead (or "bus name" when ambiguous).  Did not
5775         change the internal code of the message bus itself, only the
5776         programmer-facing API and messages.
5777         
5778         * doc/dbus-specification.xml: further update the message bus section
5779         
5780         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5781         in error case
5782
5783 2005-01-17  Havoc Pennington  <hp@redhat.com>
5784
5785         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5786         ever
5787
5788         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5789         "invalid name character" not only non-ASCII
5790
5791         * doc/dbus-specification.xml: further update spec, message bus 
5792         parts are still out-of-date but the marshaling etc. stuff is now
5793         accurate-ish
5794
5795 2005-01-17  Havoc Pennington  <hp@redhat.com>
5796
5797         * doc/dbus-specification.xml: partially update spec
5798
5799 2005-01-17  Havoc Pennington  <hp@redhat.com>
5800
5801         * Throughout, align variant bodies according to the contained
5802         type, rather than always to 8. Should save a fair bit of space in
5803         message headers.
5804         
5805         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5806         fix handling of case where p == end
5807
5808         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5809
5810 2005-01-17  Havoc Pennington  <hp@redhat.com>
5811
5812         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5813
5814         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5815         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5816         are marshaling/unmarshaling a boolean.
5817
5818 2005-01-16  Havoc Pennington  <hp@redhat.com>
5819
5820         This is about it on what can be disabled/deleted from libdbus
5821         easily, back below 150K anyhow. Deeper cuts are more work than 
5822         just turning the code off as I've done here.
5823         
5824         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5825         signed int convenience funcs
5826
5827         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5828         verbose mode
5829
5830         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5831         things out of libdbus
5832
5833         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5834         
5835         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5836         tests-enabled-only, though it should probably be deleted)
5837
5838         * dbus/dbus-message-util.c: same stuff
5839
5840         * dbus/dbus-auth-util.c: same stuff
5841
5842 2005-01-16  Havoc Pennington  <hp@redhat.com>
5843
5844         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5845
5846         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5847         way for stripping down dbus-userdb.c stuff included in libdbus.
5848         Rename _dbus_parse_uid for consistency.
5849
5850 2005-01-16  Havoc Pennington  <hp@redhat.com>
5851
5852         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5853         name the assertion failed in
5854
5855         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5856         (_dbus_return_val_if_fail): assert that the name of the function
5857         containing the check doesn't start with '_', since we only want to 
5858         use checks on public functions
5859         
5860         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5861         checks to assertions
5862
5863         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5864         change checks to asserts for private function
5865
5866         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5867         to asserts for private function
5868
5869         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5870         broken assertion that was breaking make check
5871         (_dbus_type_reader_array_is_empty): remove this rather than fix
5872         it, was only used in assertions
5873
5874 2005-01-16  Havoc Pennington  <hp@redhat.com>
5875
5876         * test/unused-code-gc.py: hacky script to find code that's used
5877         only by the bus (not libdbus) or used only by tests or not used at
5878         all. It has some false alarms, but looks like we can clean up a
5879         lot of size from libdbus.
5880
5881         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5882         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5883         
5884 2005-01-16  Havoc Pennington  <hp@redhat.com>
5885
5886         * Add and fix docs according to Doxygen warnings throughout
5887         source.
5888         
5889         * dbus/dbus-marshal-recursive.c
5890         (_dbus_type_reader_array_is_empty): change this to just call
5891         array_reader_get_array_len() and make it static
5892
5893         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5894         from get_array_type
5895         (dbus_message_iter_init_append): rename from append_iter_init
5896
5897         * dbus/dbus-marshal-recursive.c
5898         (_dbus_type_reader_get_element_type): rename from
5899         _dbus_type_reader_get_array_type
5900
5901 2005-01-15  Havoc Pennington  <hp@redhat.com>
5902
5903         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5904
5905         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5906         when DBUS_DISABLE_ASSERT
5907         (_dbus_marshal_set_basic): be sure we align for the string length
5908
5909         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5910         this look faster
5911
5912         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5913         inline macro version
5914         (_dbus_string_set_byte): provide inline macro version
5915
5916 2005-01-15  Havoc Pennington  <hp@redhat.com>
5917
5918         * Land the new message args API and type system.
5919
5920         This patch is huge, but the public API change is not 
5921         really large. The set of D-BUS types has changed somewhat, 
5922         and the arg "getters" are more geared toward language bindings;
5923         they don't make a copy, etc.
5924
5925         There are also some known issues. See these emails for details
5926         on this huge patch:
5927         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5928         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5929         
5930         * dbus/dbus-marshal-*: all the new stuff
5931
5932         * dbus/dbus-message.c: basically rewritten
5933
5934         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5935         freed blocks to be all non-nul bytes so using freed memory is less
5936         likely to work right
5937
5938         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5939         DBUS_FAIL_MALLOC=N environment variable, so you can do
5940         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5941         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5942         thorough.
5943
5944         * qt/message.cpp: port to the new message args API
5945         (operator<<): use str.utf8() rather than str.unicode()
5946         (pretty sure this is right from the Qt docs?)
5947
5948         * glib/dbus-gvalue.c: port to the new message args API
5949
5950         * bus/dispatch.c, bus/driver.c: port to the new message args API
5951
5952         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5953         "locked" flag to TRUE and align_offset to 0; I guess we never
5954         looked at these anyhow, but seems cleaner.
5955
5956         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5957         move allocation padding macro to this header; use it to implement
5958         (_DBUS_STRING_STATIC): ability to declare a static string.
5959
5960         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5961         change to return TRUE if the interface is not set.
5962
5963         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5964         to dbus-marshal-validate.[hc]
5965
5966         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5967         dbus-internals.c
5968
5969         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5970         to dbus-marshal-*.[hc]
5971
5972         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5973         function here from dbus-marshal.c
5974
5975 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5976
5977         * NEWS: Update for 0.23.
5978
5979         * configure.in: Release 0.23.
5980
5981 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5982
5983         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5984         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5985         behind.
5986
5987         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5988         uninstall"
5989
5990         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5991         is an enum, get the enum's underlying type.  Another mono
5992         1.1.3 fix.
5993
5994 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5995
5996         Patch from Sjoerd Simons <sjoerd@luon.net>
5997
5998         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5999         DESTDIR.  It breaks stuff.
6000
6001 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6002
6003         Patch from Tambet Ingo <tambet@ximian.com>
6004
6005         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6006         calling type.GetElementType().  The code previously depended on
6007         broken Mono behavior, which was fixed in Mono 1.1.3.
6008
6009         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6010         Activator.CreateInstance() so that the class's constructor is
6011         called with the right parameters.
6012
6013 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6014
6015         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6016
6017         * dbus/dbus-connection.c
6018         (_dbus_connection_queue_received_message_link): Call
6019         _dbus_connection_remove_timeout() instead of the _locked()
6020         variant, since it's always called from
6021         _dbus_connection_handle_watch(), which handles the locking.
6022         Removed the _locked() variant since it's no longer used.
6023
6024 2005-01-03  Havoc Pennington  <hp@redhat.com>
6025
6026         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6027         return
6028         
6029 2004-12-26  Havoc Pennington  <hp@redhat.com>
6030
6031         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6032
6033 2005-01-03  Havoc Pennington  <hp@redhat.com>
6034
6035         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6036         floating point
6037
6038         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6039
6040 2005-01-02  Havoc Pennington  <hp@redhat.com>
6041
6042         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6043
6044 2005-01-01  Havoc Pennington  <hp@redhat.com>
6045
6046         * configure.in: add -Wfloat-equal
6047
6048 2005-01-01  Havoc Pennington  <hp@redhat.com>
6049
6050         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6051         for a variety of reasons '==' doesn't do this.
6052
6053 2004-12-31  Havoc Pennington  <hp@redhat.com>
6054
6055         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6056         I keep wishing I had
6057
6058 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6059
6060         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6061
6062 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6063
6064         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6065         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6066         dbus-protocol.h.  Because they are defines and not enums they are not
6067         autogenerated.
6068
6069 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6070
6071         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6072         dbus_bus_activate_service
6073
6074         * python/dbus.py (Bus.activate_service): activate a service on the
6075         bus.
6076
6077 2004-12-24  Havoc Pennington  <hp@redhat.com>
6078
6079         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6080         file format has also changed and I haven't adapted to that yet
6081         
6082         * Makefile.am: load .gcno files from latest gcc
6083
6084 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6085         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6086
6087         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6088         lowlevel binding
6089
6090         * python/dbus.py (get_unix_user): Added binding to 
6091         call dbus_bindings.bus_get_unix_user
6092
6093         * python/extract.py: Modified the proto_pat regex to
6094         handle unsigned long
6095
6096 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6097
6098         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6099         better POSIX compliance.
6100
6101 2004-12-19  Havoc Pennington  <hp@redhat.com>
6102
6103         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6104         (_dbus_string_insert_8_aligned): new functions
6105
6106         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6107
6108 2004-12-18  Havoc Pennington  <hp@redhat.com>
6109
6110         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6111         macro
6112
6113         * dbus/dbus-message.c: fix a comment, and add a still-unused
6114         not-implemented function
6115
6116         * dbus/dbus-marshal.h: fix comment
6117
6118         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6119
6120 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6121
6122         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6123         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6124         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6125         Type.UnderlyingSystemType to get the actual system type
6126         underneath.  This code previously depended on the broken Mono
6127         behavior, which was fixed in 1.1.3.
6128
6129 2004-11-27  Havoc Pennington  <hp@redhat.com>
6130
6131         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6132         are disabled
6133         (_dbus_string_get_const_data): inline when asserts are disabled
6134
6135         * dbus/dbus-message.c: record the _dbus_current_generation of
6136         creation so we can complain if dbus_shutdown() is used improperly.
6137         Do this only if checks are enabled.
6138
6139         * dbus/dbus-connection.c: ditto
6140         
6141 2004-11-26  Havoc Pennington  <hp@redhat.com>
6142
6143         * test/glib/test-profile.c: add with_bus mode to profile echoes
6144         that go through the bus.
6145
6146         * test/glib/run-test.sh: add ability to run test-profile
6147
6148         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6149         config file reload.
6150
6151 2004-11-26  Havoc Pennington  <hp@redhat.com>
6152
6153         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6154         thing was implemented
6155
6156 2004-11-26  Havoc Pennington  <hp@redhat.com>
6157
6158         * test/glib/test-profile.c: tweak a bit, add support for some
6159         made-up minimal malloc overhead with plain sockets, since in 
6160         real life some sort of buffers are unavoidable thus we could 
6161         count them in the theoretical best case
6162
6163 2004-11-26  Havoc Pennington  <hp@redhat.com>
6164
6165         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6166         where I was trying to cache one too many messages
6167
6168 2004-11-26  Havoc Pennington  <hp@redhat.com>
6169
6170         * dbus/dbus-message.c: reimplement message cache as an array which 
6171         makes the cache about twice as fast and saves maybe 1.5% overall
6172
6173 2004-11-26  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6176         message cache lock here
6177
6178 2004-11-26  Havoc Pennington  <hp@redhat.com>
6179
6180         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6181         the "char byte_order" next to each other to save 4 bytes
6182         (dbus_message_new_empty_header): reduce preallocation, since the
6183         message cache should achieve a similar effect
6184         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6185         message cache that keeps a few DBusMessage around in a pool,
6186         another 8% speedup or so.
6187
6188         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6189
6190 2004-11-25  Havoc Pennington  <hp@redhat.com>
6191
6192         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6193         to write, without reading or blocking, try it before the poll()
6194         and skip the poll() if nothing remains to write. This is about a
6195         3% speedup in the echo client/server
6196
6197 2004-11-25  Havoc Pennington  <hp@redhat.com>
6198
6199         The primary change here is to always write() once before adding
6200         the write watch, which gives us about a 10% performance increase.
6201         
6202         * dbus/dbus-transport-unix.c: a number of modifications to cope
6203         with removing messages_pending
6204         (check_write_watch): properly handle
6205         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6206         messages_pending stuff
6207         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6208         AUTHENTICATED cases
6209         (unix_handle_watch): after writing, see if the write watch can be
6210         removed
6211         (unix_do_iteration): assert that write_watch/read_watch are
6212         non-NULL rather than testing that they aren't, since they 
6213         aren't allowed to be NULL. check_write_watch() at the end so 
6214         we add the watch if we did not finish writing (e.g. got EAGAIN)
6215
6216         * dbus/dbus-transport-protected.h: remove messages_pending call,
6217         since it resulted in too much inefficient watch adding/removing; 
6218         instead we now require that the transport user does an iteration 
6219         after queueing outgoing messages, and after trying the first
6220         write() we add a write watch if we got EAGAIN or exceeded our 
6221         max bytes to write per iteration setting
6222
6223         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6224         function
6225
6226         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6227         freed and then accessed, valgrind flagged this bug, fix it
6228
6229         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6230         as the last valid field plus 1, where really it is equal to the
6231         last valid field. Corrects some message corruption issues.
6232
6233         * dbus/dbus-mainloop.c: verbosity changes
6234
6235         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6236         instead of aborting in one of the test codepaths
6237
6238         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6239         caused not printing the pid ever again if a verbose was missing
6240         the newline at the end
6241         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6242
6243         * dbus/dbus-connection.c: verbosity changes; 
6244         (dbus_connection_has_messages_to_send): new function
6245         (_dbus_connection_message_sent): no longer call transport->messages_pending
6246         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6247         try to write() immediately, so we can avoid the write watch. This
6248         is the core purpose of this patchset
6249         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6250         dump the outgoing message queue, so nobody will get confused
6251         trying to send them or thinking stuff is pending to be sent
6252
6253         * bus/test.c: verbosity changes
6254
6255         * bus/driver.c: verbosity/assertion changes
6256
6257         * bus/dispatch.c: a bunch of little tweaks to get it working again
6258         because this patchset changes when/where you need to block.
6259
6260 2004-11-23  Havoc Pennington  <hp@redhat.com>
6261
6262         * test/glib/test-profile.c: modify to accept a plain_sockets
6263         argument in which case it will bench plain sockets instead of
6264         libdbus, for comparison purposes.
6265
6266 2004-11-22  Havoc Pennington  <hp@redhat.com>
6267
6268         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6269         threads for more time, so sysprof can get a grip on it.
6270
6271         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6272         pointless variable
6273
6274 2004-11-13  Havoc Pennington  <hp@redhat.com>
6275
6276         * test/glib/test-profile.c: fix this thing up a bit
6277
6278         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6279         preallocation sizes by a fair bit; not sure if this will be an
6280         overall performance win or not, but it does reduce reallocs.
6281
6282         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6283         the test hack that forced constant realloc if asserts are
6284         disabled, so we can profile sanely. Sprinkle in some
6285         _DBUS_UNLIKELY() which are probably pointless, but before I
6286         noticed the real performance problem I put them in.
6287         (_dbus_string_validate_utf8): micro-optimize this thing a little
6288         bit, though callgrind says it didn't help; then special-case
6289         ascii, which did help a lot; then be sure we detect nul bytes as
6290         invalid, which is a bugfix.
6291         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6292         superstition; use memset to nul the padding instead of a manual
6293         loop.
6294         (_dbus_string_get_length): inline this as a
6295         macro; it showed up in the profile because it's used for loop
6296         tests and so forth
6297
6298 2004-11-10  Colin Walters  <walters@verbum.org>
6299
6300         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6301         for extra paranoia.
6302
6303 2004-11-09  Colin Walters  <walters@verbum.org>
6304
6305         * dbus/dbus-string.c (_dbus_string_get_length): New
6306         function, writes DBusString to C buffer.
6307
6308         * dbus/dbus-string.h: Prototype it.
6309
6310         * dbus/dbus-message.c (dbus_message_type_to_string): New
6311         function, converts message type into C string.
6312
6313         * dbus/dbus-message.h: Prototype it.
6314
6315         * bus/selinux.c (bus_selinux_check): Take source pid,
6316         target pid, and audit data.  Pass audit data to
6317         avc_has_perm.
6318         (log_audit_callback): New function, appends extra
6319         audit information.
6320         (bus_selinux_allows_acquire_service): Also take
6321         service name, add it to audit data.
6322         (bus_selinux_allows_send): Also take message
6323         type, interface, method member, error name,
6324         and destination, and add them to audit data.
6325         (log_cb): Initialize func_audit.
6326         
6327         * bus/selinux.h (bus_selinux_allows_acquire_service)
6328         (bus_selinux_allows_send): Update prototypes 
6329
6330         * bus/services.c (bus_registry_acquire_service): Pass
6331         service name to bus_selinux_allows_acquire_service.
6332
6333         * bus/bus.c (bus_context_check_security_policy): Pass
6334         additional audit data.  Move assignment of dest
6335         to its own line.
6336
6337 2004-11-07  Colin Walters  <walters@verbum.org>
6338
6339         * dbus/dbus-transport-unix.c (do_authentication): Always
6340         initialize auth_completed.
6341         
6342 2004-11-07  Colin Walters  <walters@verbum.org>
6343
6344         * bus/bus.c (load_config): Break into three
6345         separate functions: process_config_first_time_only,
6346         process_config_every_time, and process_config_postinit.
6347         (process_config_every_time): Move call of
6348         bus_registry_set_service_context_table into
6349         process_config_postinit.
6350         (process_config_postinit): New function, does
6351         any processing that needs to happen late
6352         in initialization (and also on reload).
6353         (bus_context_new): Instead of calling load_config,
6354         open config parser here and call process_config_first_time_only
6355         and process_config_every_time directly.  Later, after
6356         we have forked but before changing UID,
6357         invoke bus_selinux_full_init, and then call
6358         process_config_postinit.
6359         (bus_context_reload_config): As in bus_context_new,
6360         load parse file inside here, and call process_config_every_time
6361         and process_config_postinit.
6362
6363         * bus/services.h, bus/services.c
6364         (bus_registry_set_service_context_table): Rename
6365         from bus_registry_set_sid_table.  Take string hash from config
6366         parser, and convert them here into SIDs.
6367
6368         * bus/config-parser.c (struct BusConfigParser): Have
6369         config parser only store a mapping of service->context
6370         string.
6371         (merge_service_context_hash): New function.
6372         (merge_included): Merge context string hashes instead
6373         of using bus_selinux_id_table_union.
6374         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6375         simply create a new string hash.
6376         (bus_config_parser_unref): Unref it.
6377         (start_selinux_child): Simply insert strings into hash,
6378         don't call bus_selinux_id_table_copy_over.
6379
6380         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6381         (bus_selinux_id_table_copy_over): Delete.
6382
6383 2004-11-03  Colin Walters  <walters@verbum.org>
6384
6385         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6386         variables.
6387         
6388 2004-11-03  Colin Walters  <walters@verbum.org>
6389
6390         * bus/test-main.c (test_pre_hook): Fix test logic,
6391         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6392
6393 2004-11-02  Colin Walters  <walters@redhat.com>
6394
6395         * bus/selinux.c (bus_selinux_init): Split into two functions,
6396         bus_selinux_pre_init and bus_selinux_post_init.
6397         (bus_selinux_pre_init): Just determine whether SELinux is
6398         enabled.
6399         (bus_selinux_post_init): Do everything else.
6400
6401         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6402         config file, and bus_selinux_post_init after.  This ensures that
6403         we don't lose the policyreload notification thread that
6404         bus_selinux_init created before forking previously.
6405         
6406         * bus/test-main.c (test_pre_hook): Update for split.
6407
6408 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6409
6410         Patch from Johan Fischer <linux@fischaz.com>
6411         
6412         * mono/doc/Makefile.am (install-data-local): Added directory
6413         install for DESTDIR
6414
6415 2004-10-29  Colin Walters  <walters@redhat.com>
6416
6417         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6418         parameter for fd to write pid to.       
6419
6420         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6421         
6422         * bus/bus.c (bus_context_new): Pass print_pid_fd
6423         to _dbus_become_daemon (bug #1720)
6424
6425 2004-10-29  Colin Walters  <walters@redhat.com>
6426
6427         Patch from Ed Catmur <ed@catmur.co.uk>
6428
6429         * mono/doc/Makefile.am (install-data-local): Handle
6430         DESTDIR.
6431
6432 2004-10-29  Colin Walters  <walters@redhat.com>
6433
6434         * bus/.cvsignore, qt/.cvsignore: Update.
6435
6436 2004-10-29  Colin Walters  <walters@redhat.com>
6437
6438         Patch from Kristof Vansant <de_lupus@pandora.be>
6439
6440         * configure.in: Detect Slackware.
6441         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6442         * bus/rc.messagebus.in: New file.
6443
6444 2004-10-29  Colin Walters  <walters@redhat.com>
6445
6446         * tools/dbus-monitor.c (filter_func): Return
6447         DBUS_HANDLER_RESULT_HANDLED in filter function
6448         for now.  See:
6449         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6450
6451 2004-10-29  Colin Walters  <walters@redhat.com>
6452
6453         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6454
6455         * bus/services.c (bus_registry_acquire_service): 
6456         Correctly retrieve service name from DBusString
6457         for printing.
6458
6459 2004-10-29  Colin Walters  <walters@redhat.com>
6460
6461         * dbus/dbus-glib.h: Update documentation to not
6462         refer to internal APIs.
6463
6464 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6465
6466         * mono/Arguments.cs (GetDBusTypeConstructor):
6467         type.UnderlyingSystemType will return "System.Byte" if you do it
6468         on "byte[]", which is not what we want.  So check the type.IsArray
6469         property and use System.Array instead.
6470
6471 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6472
6473         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6474         the DBusUserInfo structure since this is passed into the function.
6475         This would cause a double free when the function that allocated
6476         the structure would try to free it when an error occured.
6477
6478         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6479         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6480         for service activation to avoid 32bit/64bit parallel install issues
6481
6482 2004-10-21  Colin Walters  <walters@verbum.org>
6483
6484         * AUTHORS: Fix my email address, the @gnu.org one
6485         has been bouncing for some time.  Also add J5.
6486         
6487 2004-10-21  Colin Walters  <walters@verbum.org>
6488
6489         * dbus/dbus-transport-unix.c (do_authentication): Return
6490         authentication status to callers.
6491         (unix_handle_watch): If we completed authentication this round,
6492         don't do another read.  Instead wait until the next iteration,
6493         after we've read any pending data in the auth buffer.
6494         (unix_do_iteration): Ditto.
6495         (unix_handle_watch): Updated for new do_authentication prototype.
6496
6497 2004-10-18  Colin Walters  <walters@verbum.org>
6498
6499         * bus/selinux.c (bus_selinux_enabled): Handle
6500         --disable-selinux case.
6501         
6502 2004-10-18  Colin Walters  <walters@verbum.org>
6503
6504         * bus/selinux.h: Add bus_selinux_enabled.
6505         
6506         * bus/selinux.c (bus_selinux_enabled): Implement it.
6507         
6508         * bus/config-parser.c (struct include): Add
6509         if_selinux_enabled member.
6510         (start_busconfig_child): Parse if_selinux_enabled
6511         attribute for include.
6512         (bus_config_parser_content): Handle it.
6513
6514         * bus/session.conf.in, bus/system.conf.in: Add
6515         inclusion of context mapping to default config files;
6516         conditional on SELinux being enabled.
6517         
6518         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6519         
6520         * test/data/invalid-config-files/badselinux-1.conf, 
6521         test/data/invalid-config-files/badselinux-2.conf:
6522         Test files for bad syntax.
6523         
6524 2004-10-17  Colin Walters  <walters@verbum.org>
6525
6526         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6527         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6528         format specifier mismatches.
6529
6530 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6531
6532         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6533         format string.
6534
6535         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6536         pointer (bug #1540, Leonardo Boiko).
6537
6538 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6539
6540         * mono/BusDriver.cs: Changed BusDriver struct to remove
6541         the ServiceCreated and ServiceDeleted events and replace them
6542         with the new ServiceOwnerChanged event.
6543
6544         * mono/example/BusListener.cs: Added a new example program,
6545         which listens for and reports any ServiceOwnerChanged events
6546         on the bus driver.
6547
6548         * mono/example/Makefile.am (DESTDIR): Build changes for the
6549         new BusListener.cs example.
6550
6551 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6552
6553         * bus/signals.c (bus_match_rule_parse): validate the components of
6554         match rules (bug #1439).
6555
6556         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6557
6558 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6559
6560         * doc/dbus-specification.xml: document ServiceOwnerChanged
6561         signal.
6562         
6563         * bus/driver.c, bus/driver.h, bus/services.c: Use
6564         ServiceOwnerChanged signal instead of ServiceCreated and
6565         ServiceDeleted.
6566         
6567         * bus/dispatch.c: update testcase for the new signal.
6568
6569 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6570
6571         Patch from Nat Friedman <nat@novell.com>
6572
6573         * mono/Makefile.am: A number of small build fixes to allow "make
6574         distcheck" to succeed.
6575
6576         * mono/example/Makefile.am: "make distcheck" fixes.
6577
6578         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6579         key in @srcdir@.
6580
6581         * test/Makefile.am: "make distcheck" fixes.
6582
6583 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6584
6585         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6586
6587         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6588
6589         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6590         messages after the first one (bug #1389).
6591         
6592         * bus/dispatch.c (check_double_hello_message): add a test case for
6593         the double hello message bug.
6594         (check_existent_service_activation): fix check of spawning error.
6595         
6596 2004-09-16  David Zeuthen  <david@fubar.dk>
6597
6598         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6599
6600 2004-09-12  David Zeuthen  <david@fubar.dk>
6601
6602         Patch from Kay Sievers <kay.sievers@vrfy.org>
6603
6604         * bus/bus.c (bus_context_new):
6605         * bus/bus.h:
6606         * bus/main.c (usage)
6607         (main):
6608         Add commandline option --nofork to override configuration file
6609         setting.
6610
6611 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6612
6613         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6614         compilers don't like it (bug #974).
6615
6616 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6617
6618         * qt/connection.*: Applied patch by Jérôme Lodewyck
6619         <lodewyck@clipper.ens.fr> to integrate an existing
6620         connection into the Qt eventloop
6621
6622 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6623
6624         * mono/BusDriver.cs: Added.  This is a class for interacting with
6625         the org.freedesktop.DBus service.
6626
6627         * mono/Message.cs: Added a mechanism to expose the message that is
6628         currently being dispatched via the static Message.Current
6629         property.  Added Message.Sender and Message.Destination
6630         properties.
6631
6632         * mono/Handler.cs: Expose the dispatched message via
6633         Message.Current when handling method calls.
6634
6635         * mono/Service.cs: Expose the dispatched message via
6636         Message.Current when handling signal emissions.
6637         
6638         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6639         Connection.BaseService property.
6640
6641 2004-08-28  Havoc Pennington  <hp@redhat.com>
6642
6643         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6644
6645         More fixes from Steve Grubb
6646         
6647         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6648         (_dbus_listen_tcp_socket): fix fd leak
6649
6650         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6651         EINTR to a bit lower in the code
6652
6653 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6654
6655         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6656         TRUE if we are inquiring about the existence of the built-in
6657         org.freedesktop.DBus service.
6658
6659 2004-08-25  John Palmieri  <johnp@redhat.com>
6660         * bus/config-parser.c:
6661         (struct PolicyType): Add POLICY_CONSOLE
6662         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6663         (start_busconfig_child): Sets up console element when
6664         <policy at_console=""> is encountered in a policy file
6665         (append_rule_from_element): Convert console elements to console
6666         rules.
6667
6668         * bus/policy.c: 
6669         (bus_policy_create_client_policy): Add console rules to the client
6670         policy based on if the client is at the console
6671         (bus_policy_append_console_rule): New function for adding a
6672         console rule to a policy
6673         (bus_policy_merge): Handle console rule merging
6674
6675         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6676         where we check for console user files
6677         
6678         * dbus/dbus-sysdeps.c:
6679         (_dbus_file_exists): New function which checks if the given
6680         file exists
6681         (_dbus_user_at_console): New function which does the system
6682         specific process of checking if the user is at the console
6683
6684         * dbus/dbus-userdb.c:
6685         (_dbus_is_console_user): New function converts a UID to user name
6686         and then calls the system specific _dbus_user_at_console to 
6687         see if the user is at the console and therefor a console user
6688
6689 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6690
6691         * bus/config-parser.c (set_limit):
6692         * bus/dbus-daemon-1.1.in:
6693         * test/data/valid-config-files/many-rules.conf: set the
6694         max_match_rules_per_connection limt from the config file. 
6695
6696         * doc/busconfig.dtd: update the DTD.
6697
6698         * bus/driver.c: remove some unused variables.
6699
6700 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6701
6702         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6703         it's been replaced by dbus_g_bus_get
6704
6705 2004-08-23  Colin Walters  <walters@redhat.com>
6706
6707         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6708
6709         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6710
6711         * bus/selinux.c: Create a thread for policy reload notification.
6712         (bus_selinux_get_policy_root): Implement.
6713
6714         * bus/config-parser.c (start_busconfig_child)
6715         (bus_config_parser_content): Support SELinux-root relative
6716         inclusion.
6717
6718         * configure.in <HAVE_SELINUX>: Add -lpthread.
6719         
6720         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6721         (test_post_hook): Move memory checking into here.
6722         (test_pre_hook, test_post_hook): Move SELinux checks in
6723         here, but conditional on a DBUS_TEST_SELINUX environment
6724         variable.  Unfortunately we can't run the SELinux checks
6725         as a normal user, since they won't have any permissions
6726         for /selinux.  So this will have to be tested manually
6727         for now, until we have virtualization for most of
6728         libselinux.
6729         
6730 2004-08-23  Havoc Pennington  <hp@redhat.com>
6731
6732         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6733         drop supplementary groups, suggested by Steve Grubb
6734
6735 2004-08-20  Colin Walters  <walters@redhat.com>
6736
6737         * bus/config-parser.c (start_busconfig_child): Remove some unused
6738         variables.
6739         
6740         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6741         warning.
6742
6743 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6744
6745         * configure.in: If --enable-mono is passed in, if we can't find
6746         mono error out.
6747
6748         * mono/Makefile.am: Use /gacutil to install assemblies into the
6749         GAC and not /root.
6750
6751 2004-08-12  Havoc Pennington  <hp@redhat.com>
6752
6753         * NEWS: update for 0.22
6754
6755         * configure.in: release 0.22
6756
6757 2004-08-11  Colin Walters  <walters@redhat.com>
6758
6759         * tools/dbus-send.c (main, usage): Add --reply-timeout
6760         argument.
6761
6762 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6763
6764         * bus/bus.c (process_config_first_time_only): get rid of an unused
6765         DBusError that was causing a memoy leak (bug #989).
6766
6767         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6768         fix compilation on Solaris/Forte C (bug #974)
6769
6770         * bus/main.c (main): plug two minuscule memleaks.
6771
6772 2004-08-10  Havoc Pennington  <hp@redhat.com>
6773
6774         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6775
6776 2004-08-09  Havoc Pennington  <hp@redhat.com>
6777
6778         * COPYING: switch to Academic Free License version 2.1 instead of
6779         2.0, to resolve complaints about patent termination clause.
6780
6781 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6782
6783         * README: added documentation for the --enable-python 
6784         configure switch.
6785
6786 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6787
6788         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6789         _unref in the SELinux support.
6790
6791         * doc/busconfig.dtd: update DTD for SELinux support.
6792
6793         * bus/config-loader-libxml.c: fix error handler and parser
6794         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6795
6796         * configure.in: remove the warning about libxml2.
6797
6798         * dbus/dbus-bus.c: silence doxygen warning.
6799
6800 2004-07-31  Colin Walters  <walters@redhat.com>
6801
6802         * configure.in: Move #error in SELinux check to its own line.
6803
6804 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6805
6806         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6807         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6808         dbus_error_set.
6809
6810         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6811         broken by the change in the _SET_OOM macros.
6812
6813 2004-07-31  Colin Walters  <walters@redhat.com>
6814
6815         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6816         BUS_SET_OOM.
6817
6818 2004-07-31  Colin Walters  <walters@redhat.com>
6819
6820         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6821         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6822         AC_MSG_CHECKING.
6823
6824 2004-07-24  Havoc Pennington  <hp@redhat.com>
6825
6826         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6827
6828         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6829         functionality
6830
6831         * configure.in: add --enable-selinux
6832         
6833         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6834
6835         * bus/main.c (main): initialize and shut down selinux
6836
6837         * bus/connection.c: store SELinux ID on each connection, to avoid 
6838         repeated getting of the string context and converting it into 
6839         an ID
6840
6841         * bus/bus.c (bus_context_get_policy): new accessor, though it
6842         isn't used
6843         (bus_context_check_security_policy): check whether the security
6844         context of sender connection can send to the security context of
6845         recipient connection
6846
6847         * bus/config-parser.c: add parsing for <selinux> and <associate>
6848         
6849         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6850         implement dbus_connection_get_unix_fd()
6851
6852         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6853         function, used by the selinux stuff
6854         
6855 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6856
6857         * bus/config-loader-libxml.c: complete the implementation of
6858         libxml backend for config file loader. Doesn't work with full OOM
6859         test yet. 
6860         
6861         * configure.in: change error when selecting libxml into a warning.
6862         
6863         * test/data/invalid-config-files: add two non-well-formed XML
6864         files. 
6865         
6866         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6867         
6868         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6869         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6870         be necessary to read all the buffer. (bug #894)
6871
6872         * bus/activation.c (bus_activation_activate_service): fix a
6873         potential assertion failure (bug #896). Small optimization in the
6874         case of auto-activation messages.
6875
6876         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6877         add test case for byte-through-vararg bug (#901). patch by Kimmo
6878         Hämäläinen. 
6879
6880 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6881
6882         * python/dbus.py:
6883         * python/dbus_bindings.pyx.in:
6884         Add dbus.init_gthreads (), allow emit_signal to pass
6885         arguments to the signal.
6886         
6887 2004-07-24  Havoc Pennington  <hp@redhat.com>
6888
6889         * AUTHORS: add some people, not really comprehensively, let me
6890         know if I missed you
6891
6892 2004-07-24  Havoc Pennington  <hp@redhat.com>
6893
6894         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6895         Owen
6896
6897         * test/Makefile.am (DIST_SUBDIRS): here also
6898
6899 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6900
6901         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6902         breaking build on Solaris, reported by Farhad Saberi on the ML.
6903
6904         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6905         va_arg invocation to account for integer promotion in the case of
6906         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6907
6908         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6909         _dbus_list_get_first_link, not _dbus_list_get_first.
6910
6911         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6912
6913         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6914         handler functions so that the asserts in _dbus_object_subtree_unref
6915         do not fail.
6916
6917         * dbus/dbus-transport-unix.c (do_reading):
6918         _dbus_transport_queue_messages return value is of type
6919         dbus_bool_t, not DBusDispatchStatus.
6920         
6921 2004-07-19  David Zeuthen  <david@fubar.dk>
6922
6923         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6924
6925         * bus/dispatch.c:
6926         (check_get_connection_unix_user): Debug says GetProperty; but the
6927         method is called GetConnectionUnixUser
6928         (check_get_connection_unix_process_id): New function
6929         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6930         also call check_get_connection_unix_process_id()
6931         
6932         * bus/driver.c:
6933         (bus_driver_handle_get_connection_unix_process_id): New function,
6934         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6935         interface
6936         
6937         * dbus/dbus-auth.c:
6938         (handle_server_data_external_mech): Set pid from the credentials
6939         obtained from the socket
6940         
6941         * dbus/dbus-connection.c:
6942         (dbus_connection_get_unix_process_id): New function
6943         
6944         * dbus/dbus-connection.h: 
6945         Add prototype for dbus_connection_get_unix_process_id
6946         
6947         * dbus/dbus-transport.c:
6948         (_dbus_transport_get_unix_process_id): New function
6949         
6950         * dbus/dbus-transport.h:
6951         Add prototype for _dbus_transport_get_unix_process_id
6952         
6953 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6954
6955         * dbus/dbus-message.c: Message counter fix, patch by Christian
6956         Hammond <chipx86@gnupdate.org>
6957
6958 2004-07-18  Seth Nickell  <seth@gnome.org>
6959
6960         * python/dbus.py:
6961         * python/dbus_bindings.pyx.in:
6962         * python/tests/test-client.py:
6963
6964         Add dbus.ByteArray and dbus_bindings.ByteArray
6965         types so that byte streams can be passed back.
6966
6967         Give jdahlin the heaps of credit that are so
6968         rightfully his.
6969         
6970 2004-07-12  Seth Nickell  <seth@gnome.org>
6971
6972         * python/dbus.py:
6973
6974         Add message argument to the default object_method_handler
6975         function.
6976         
6977         * python/dbus_bindings.pyx.in:
6978
6979         Automatically return NIL when passed an empty list
6980         (we can't pass back a list since lists are typed
6981         and we don't have any idea what type the the client
6982         intended the list to be... :-( )
6983         
6984 2004-07-10  Seth Nickell  <seth@gnome.org>
6985
6986         * python/examples/Makefile.am:
6987
6988         Fix distcheck breakage caused by new examples.
6989
6990 2004-07-10  Seth Nickell  <seth@gnome.org>
6991
6992         * python/dbus.py:
6993
6994         Add "message" argument to service-side dbus.Object
6995         methods. This will break existing services written
6996         using the python bindings, but will allow extraction
6997         of all the message information (e.g. who its from).
6998
6999         Add improved "object oriented" signal handling/emission.
7000         
7001         * python/examples/example-service.py:
7002
7003         Nix this example.
7004         
7005         * python/examples/example-signal-emitter.py:
7006         * python/examples/example-signal-recipient.py:
7007
7008         Two new examples that show how to emit and receive
7009         signals using the new APIs.
7010         
7011         * python/examples/example-signals.py:
7012         * python/examples/gconf-proxy-service.py:
7013         * python/examples/gconf-proxy-service2.py:
7014
7015         Add "message" argument to service methods.
7016
7017 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7018
7019         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7020         * dbus/bus.c (dbus_bus_get_unix_user)
7021         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7022         method of org.freedesktop.DBus interface.
7023
7024         * bus/dispatch.c: test case
7025
7026 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7027
7028         * python/Makefile.am: switched include directory from glib/ to dbus/
7029         since dbus-glib.h moved
7030  
7031 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7032
7033         * configure.in: prevent building the gcj stuff and libxml loader
7034         since they are broken.
7035
7036 2004-06-20  Havoc Pennington  <hp@redhat.com>
7037
7038         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7039         codes from the dbus error names
7040         
7041         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7042         as dbus/dbus-glib.h and that breakage is now visible due to 
7043         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7044         
7045         * glib/dbus-glib.h: s/gproxy/g_proxy/
7046
7047         * dbus/dbus-shared.h: new header to hold stuff shared with
7048         binding APIs
7049         
7050         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7051         than dbus-errors.h
7052
7053         * glib/dbus-glib.h (dbus_set_g_error): move to
7054         dbus-glib-lowlevel.h
7055
7056         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7057         of stuff to enable this
7058
7059         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7060
7061         * a bunch of other changes with the same basic "separate glib 
7062         bindings from dbus.h" theme
7063         
7064 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7065
7066         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7067
7068         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7069
7070 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7071
7072         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7073         the reply value of the ServiceExists message.
7074
7075 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7076
7077         * python/dbus_bindings.pyx.in: No longer need to parse path
7078         elements and pass them as arrays of strings.  The C API now
7079         accepts plain path strings.
7080         (_build_parsed_path): removed 
7081
7082 2004-06-07  Havoc Pennington  <hp@redhat.com>
7083
7084         * doc/TODO: remove auto-activation item since it's done; sort
7085         items by importance/milestone
7086
7087 2004-06-07  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7090         random signature when using REQUIRED_FIELDS (this hack won't work
7091         in the long term)
7092
7093         * dbus/dbus-message.c: change the signature to be a header field,
7094         instead of message->signature special-case string. Incremental
7095         step forward. Then we can fix up code to send the signature in the
7096         message, then fix up code to validate said signature, then fix up
7097         code to not put the typecodes inline, etc.
7098         (load_one_message): don't make up the signature after the fact
7099         (decode_header_data): require signature field for the known
7100         message types
7101
7102         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7103
7104         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7105
7106 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7107
7108         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7109
7110         * mono/Handler.cs: Updated to follow new path argument for
7111         (un-)registering objects.
7112
7113         * mono/example/Makefile.am:
7114         * mono/Makefile.am:
7115         * configure.in: Bumped required version for mono and use new -pkg
7116         syntax for deps
7117
7118 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7119
7120         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7121         registration functions take the path argument as char* instead of
7122         char**.
7123
7124         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7125         split off the path decompostion part of
7126         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7127         warnings. 
7128
7129         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7130         
7131 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7132  
7133         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7134         machine approach.  A state is implemented as a function that
7135         handles incoming events as specified for that state.
7136         
7137         * doc/dbus-specification.xml: Update auth protocol state machine
7138         specification to match implementation.  Remove some leftover
7139         base64 examples.
7140
7141 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7142
7143         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7144         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7145         quiet doxygen.
7146
7147         * Doxyfile.in: remove deprecated options.
7148
7149         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7150         glib/test-thread.h, glib/test-thread-client.c,
7151         glib/test-thread-server.c, glib/test-profile.c,
7152         glib/test-dbus-glib.c: remove these unused files.
7153
7154 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7155
7156         * dbus/dbus-object-tree.c
7157         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7158         non-fallback handlers (bug #684).
7159         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7160         (find_subtree_recurse): report wether the returned subtree is an
7161         exact match or a "fallback" match higher up in the tree.
7162         (object_tree_test_iteration): update test case.
7163
7164 2004-06-01  Seth Nickell  <seth@gnome.org>
7165
7166         * python/dbus_bindings.pyx.in:
7167         * python/tests/test-client.py:
7168
7169         Round off basic type support. Add dicts (yay!), and 
7170         remaining array types.
7171
7172         Make MessageIter more general so it works for dicts too.
7173
7174         Mark all loop variables as C integers.
7175         
7176 2004-05-31  Havoc Pennington  <hp@redhat.com>
7177
7178         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7179         "in" before "out"
7180
7181         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7182
7183         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7184         option that runs the tests, and start filling in some code
7185         including for starters just dumping the interfaces to stdout
7186
7187         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7188
7189         * test/data/valid-introspection-files/lots-of-types.xml: test of
7190         an example introspection file
7191
7192         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7193         "node" (I think...)
7194
7195 2004-05-31  Seth Nickell  <seth@gnome.org>
7196
7197         * python/dbus_bindings.pyx.in:
7198         * python/tests/test-client.py:
7199
7200         Test Suite: 1
7201         Python Bindings: 0
7202
7203         Fix string array memory trashing bug... oops...
7204
7205 2004-05-30  Seth Nickell  <seth@gnome.org>
7206
7207         * python/dbus.py:
7208
7209         Add a nicer-but-less-flexible alternate API for handling 
7210         calls to virtual objects in dbus.ObjectTree.
7211
7212         Screw up the argument order to the dbus.Object constructor
7213         for consistency with dbus.ObjectTree (and to make dbus_methods
7214         optional for future extension)
7215         
7216         * python/examples/Makefile.am:
7217         * python/examples/gconf-proxy-service.py:
7218         * python/examples/gconf-proxy-service2.py:
7219
7220         Alternate implementation of gconf-proxy-service using the
7221         nicer dbus.ObjectTree API.
7222         
7223         * python/examples/example-service.py:
7224         * python/tests/test-server.py
7225
7226         Reverse the argument order to deal with dbus.Object constructor
7227         changes.
7228         
7229 2004-05-30  Seth Nickell  <seth@gnome.org>
7230
7231         * python/examples/example-client.py:
7232         * python/examples/example-service.py:
7233
7234         Take it back. Lists seem to work but they're broken
7235         in the test suite. Make the base examples use
7236         lists (works fine).
7237
7238 2004-05-30  Seth Nickell  <seth@gnome.org>
7239
7240         * python/dbus_bindings.pyx.in:
7241         * python/tests/test-client.py:
7242
7243         Add some more tests and fix errors that crop up.
7244         Unfortunately, currently it seems like marshalling
7245         and unmarshalling of lists is completely broken :-(
7246
7247 2004-05-30  Seth Nickell  <seth@gnome.org>
7248
7249         * python/dbus_bindings.pyx.in:
7250
7251         Add support for ObjectPath type.
7252
7253         * python/dbus.py:
7254
7255         Refactor message handling code to a common function.
7256         
7257         * python/tests/test-client.py:
7258         * python/tests/test-server.py:
7259
7260         Add tests that check to make sure values of all types
7261         can be echoed from a service w/o mangling.
7262         
7263 2004-05-29  Seth Nickell  <seth@gnome.org>
7264
7265         * python/dbus.py:
7266
7267         Add ObjectTree class which allows implementation
7268         of trees of "virtual" objects. Basically the python
7269         wrapper for "register_fallback".
7270         
7271         * python/examples/Makefile.am
7272         * python/examples/gconf-proxy-client.py:
7273         * python/examples/gconf-proxy-service.py:
7274
7275         Implement a simple GConf proxy service that supports
7276         get/set on string and int GConf keys using the ObjectTree.
7277         
7278 2004-05-29  Seth Nickell  <seth@gnome.org>
7279
7280         * python/dbus.py:
7281         * python/examples/example-client.py:
7282         * python/examples/example-service.py:
7283         * python/examples/list-system-services.py:
7284
7285         Add SessionBus, SystemBus and ActivationBus classes
7286         so you don't need to know the special little BUS_TYPE
7287         flag.
7288         
7289 2004-05-29  Havoc Pennington  <hp@redhat.com>
7290
7291         * bus/config-parser.c (process_test_valid_subdir): temporarily
7292         stop testing config parser OOM handling, since expat has issues
7293         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7294
7295         * bus/dbus-daemon-1.1.in: change requested_reply to
7296         send_requested_reply/receive_requested_reply so we can send the
7297         replies, not just receive them.
7298
7299         * bus/config-parser.c: parse the new
7300         send_requested_reply/receive_requested_reply
7301
7302         * bus/policy.c (bus_client_policy_check_can_send): add
7303         requested_reply argument and use it
7304
7305         * bus/bus.c (bus_context_check_security_policy): pass through
7306         requested_reply status to message send check
7307
7308         * bus/system.conf.in: adapt to requested_reply change
7309         
7310 2004-05-28  Havoc Pennington  <hp@redhat.com>
7311
7312         * test/glib/test-service-glib.c (main): remove unused variable
7313
7314         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7315
7316         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7317         from the enum, no longer in use.
7318
7319         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7320         works right.
7321
7322         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7323         whether error_name passed in is a valid error name.
7324
7325 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7326
7327         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7328         OBJECT_PATH and OBJECT_PATH_ARRAY
7329
7330 2004-05-28  Seth Nickell  <seth@gnome.org>
7331
7332         * python/examples/Makefile.am:
7333
7334         Forget to add Makefile.am. Do not pass go.
7335
7336 2004-05-28  Michael Meeks  <michael@ximian.com>
7337
7338         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7339         fix no int64 case.
7340
7341         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7342
7343         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7344         (_dbus_message_iter_get_basic_type_array): impl.
7345         drastically simplify ~all relevant _get methods to use these.
7346         (_dbus_message_iter_append_basic_array),
7347         (dbus_message_iter_append_basic): impl
7348         drastically simplify ~all relevant _append methods to use these.
7349
7350         * dbus/dbus-message-builder.c (parse_basic_type) 
7351         (parse_basic_array, lookup_basic_type): impl.
7352         (_dbus_message_data_load): prune scads of duplicate /
7353         cut & paste coding.
7354
7355         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7356         (_dbus_demarshal_basic_type): implement,
7357         (demarshal_and_validate_len/arg): beef up debug.
7358         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7359
7360 2004-05-27  Seth Nickell  <seth@gnome.org>
7361
7362         * configure.in:
7363         * python/Makefile.am:
7364
7365         Include the example python apps in the tarball.
7366         
7367         * python/examples/list-system-services.py
7368
7369         Add a python new example that fetches the list of services
7370         from the system bus.
7371         
7372 2004-05-27  Seth Nickell  <seth@gnome.org>
7373
7374         * python/dbus.py:
7375         * python/dbus_bindings.pyx.in:
7376
7377         Fix failure to notify that a signal was not handled,
7378         resulted in hung functions.
7379         
7380 2004-05-25  Colin Walters  <walters@redhat.com>
7381
7382         * tools/dbus-monitor.c (main): Monitor all types of messages.
7383
7384 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7385
7386         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7387         which unregisters the object path and disposes the handler.
7388
7389 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7390  
7391         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7392          
7393         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7394         operands to && so we call dbus_message_iter_next () for the last
7395         argument also.
7396
7397 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7398
7399         * dbus/dbus-object-tree.c
7400         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7401         children even if the requested path isn't registered.
7402         (object_tree_test_iteration): test object_tree_list_registered.
7403
7404         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7405         it to 0.
7406         
7407 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7408
7409         * doc/TODO: Remove resolved items.
7410
7411         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7412         field.
7413         
7414         * bus/connection.c (bus_connections_expect_reply): Enforce the
7415         per-connection limit on pending replies.
7416         
7417         Patch from Jon Trowbridge <trow@ximian.com>:
7418  
7419         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7420         up a watch that triggers a config reload when one end of the pipe
7421         becomes readable.
7422         (signal_handler): Instead of doing the config reload in our SIGHUP
7423         handler, just write to the reload pipe and let the associated
7424         watch handle the reload when control returns to the main loop.
7425  
7426         * bus/driver.c (bus_driver_handle_reload_config): Added.
7427         Implements a ReloadConfig method for requesting a configuration
7428         file reload via the bus driver.
7429  
7430 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7431
7432         * HACKING: Updated release instructions concerning the wiki page.
7433
7434 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7435
7436         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7437         filter against auth->allowed_mechs; we only add allowed mechs in
7438         record_mechanisms().
7439  
7440         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7441         ALLOWED_MECHS to auth-script format so we can set the list of
7442         allowed mechanisms.
7443  
7444         * data/auth/client-out-of-mechanisms.auth-script: New test to
7445         check client disconnects when it is out of mechanisms to try.
7446  
7447         * dbus/dbus-auth.c (process_command): Remove check for lines
7448         longer that 1 MB; we only buffer up maximum 16 kB.
7449  
7450         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7451         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7452         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7453         assume there might be unused bytes.
7454  
7455         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7456         client-out-of-mechs, it is handled in process_reject(). Move check
7457         for max failures to send_rejected(), as it's a server-only thing.
7458
7459         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7460         send_auth(), send_data(), send_rejected(), send_error(),
7461         send_ok(), send_begin() and send_cancel().
7462
7463 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7464
7465         Remove base64 encoding, replace with hex encoding. Original patch
7466         from trow@ximian.com, added error handling.
7467
7468         * dbus/dbus-string.c (_dbus_string_base64_encode)
7469         (_dbus_string_base64_decode): Remove.
7470         (_dbus_string_hex_decode): Add end_return argument so we can
7471         distinguish between OOM and invalid hex encoding.
7472         (_dbus_string_test): Remove base64 tests and add test case for
7473         invalid hex.
7474
7475         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7476         Replace base64 with hex.
7477
7478         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7479         for invalid hex encoded data in auth protocol.
7480
7481 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7482
7483         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7484         leak.
7485
7486 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7487
7488         * mono/dbus-sharp.dll.config.in: Added for GAC
7489         * mono/dbus-sharp.snk: Added for GAC
7490         * mono/Assembly.cs.in: Added for GAC
7491         * mono/Makefile.am: Changes for GAC installation        
7492         * configure.in: Added refs for dbus-sharp.dll.config.in and
7493         Assembly.cs.in. More fixes for mono testing
7494         * mono/example/Makefile.am: Changed var to CSC
7495         * Makefile.am: Changed flag name to DBUS_USE_CSC
7496
7497 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7498
7499         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7500         * mono/doc/*: Added documentation framework
7501         * configure.in: Added monodoc check
7502         * README: Added description of mono configure flags
7503
7504 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7505
7506         * doc/dbus-specification.xml: Added a "Required" column to the 
7507         header fields table and changed the "zero or more" verbage in
7508         the above paragraph to read "The header must contain the required 
7509         named header fields and zero or more of the optional named header 
7510         fields".
7511         * test/data/invalid-messages/*.message: Added the required PATH 
7512         named header field to the tests so that they don't fail on 
7513         'Missing path field'
7514
7515 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7516
7517         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7518         the stack by implicitly defining variable and parameter types and
7519         removing the hack of defining C pointers as python objects and later
7520         casting them.
7521
7522 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7523
7524         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7525
7526 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7527
7528         * mono/DBusType/Dict.cs: Handle empty dicts
7529         * mono/DBusType/Array.cs: Handle empty arrays
7530         * mono/Arguments.cs: Handle empty arguments
7531
7532 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7533
7534         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7535         field
7536
7537 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7538
7539         * test/data/valid-messages/standard-*.message: Update message
7540         test scripts to new header field names.
7541
7542 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7543
7544         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7545         overflow to times_we_did_each_thing array which would chop off the
7546         first character of the failure_dir string. Increased the size of
7547         the array to 7 to reflect the number of random mutation functions
7548         we have.
7549
7550 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7551
7552         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7553         unix_server->watch here, it is unreffed in disconnect.
7554         (_dbus_server_new_for_tcp_socket): convert NULL host to
7555         "localhost" here so we don't append NULL to address.
7556         
7557         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7558         various addresses, including tcp with no explicit host.
7559
7560 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7561
7562         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7563         fix incorrect setting of .name_offset in the HeaderField (it was
7564         off by two bytes, positioned right after the name and typecode)
7565
7566         * bus/bus.c (bus_context_new, bus_context_unref): test before
7567         calling dbus_server_free_data_slot and _dbus_user_database_unref
7568         in case of an error.
7569
7570         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7571         by libdbus-gtool.
7572
7573 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7574
7575         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7576         _dbus_poll() instead of select().
7577
7578 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7579
7580         * bus/main.c (signal_handler): Reload the configuration files
7581         on SIGHUP.
7582         (main): Set up our SIGHUP handler.
7583
7584         * bus/bus.c (struct BusContext): Store the config file, user and
7585         fork flag in the BusContext.
7586         (process_config_first_time_only): Added.  Contains the code
7587         (previously in bus_context_new) for setting up the BusContext from
7588         the BusConfigParser that should only be run the first time the
7589         config files are read.
7590         (process_config_every_time): Added.  Contains the code (previously
7591         in bus_context_new) for setting up the BusContext from the
7592         BusConfigParser that should be run every time the config files are
7593         read.
7594         (load_config): Added.  Builds a BusConfigParser from the config
7595         files and passes the resulting structure off to
7596         process_config_first_time_only (assuming this is the first time)
7597         and process_config_every_time.
7598         (bus_context_new): All of the config-related code has been moved
7599         to process_config_first_time_only and process_config_every_time.
7600         Now this function just does the non-config-related initializations
7601         and calls load_config.
7602         (bus_context_reload_config): Added.
7603
7604 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7605
7606         * bus/driver.c (bus_driver_handle_get_service_owner):
7607         implement a GetServiceOwner method.
7608         * doc/dbus-specification.xml: document it.
7609         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7610         
7611         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7612         implement, using the bus GetServiceOwner method.
7613
7614         * test/glib/test-dbus-glib.c:
7615         use dbus_gproxy_new_for_service_owner so that we can receive the
7616         signal. 
7617
7618 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7619
7620         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7621         dbus/dbus-message.c, dbus/dbus-protocol.h
7622         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7623
7624         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7625         dbus/dbus-message.c, dbus/dbus-protocol.h
7626         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7627
7628         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7629         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7630         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7631
7632         * doc/dbus-specification.xml (Header Fields Table):
7633         s/SERVICE/DESTINATION
7634         s/SENDER_SERVICE/SENDER
7635
7636
7637 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7638
7639         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7640         a few seconds.
7641
7642 2004-04-13  Michael Meeks  <michael@ximian.com>
7643
7644         * glib/dbus-gobject.c (handle_introspect): split out
7645         (introspect_properties): this.
7646         (handle_introspect): implement this.
7647
7648         * test/glib/Makefile.am: use the absolute path so the bus
7649         daemon's chdir ("/") doesn't kill us dead.
7650
7651         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7652
7653 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7654
7655         * bus/config-parser.c (struct BusConfigParser): Added
7656         included_files field.
7657         (seen_include): Added.  Checks whether or not a file has already
7658         been included by any parent BusConfigParser.
7659         (bus_config_parser_new): Copy the parent's included_files.
7660         (include_file): Track which files have been included, and fail on
7661         circular inclusions.
7662         (process_test_valid_subdir): Changed printf to report if we are
7663         testing valid or invalid conf files.
7664         (all_are_equiv): Changed printf to be a bit clearer about
7665         what we are actually doing.
7666         (bus_config_parser_test): Test invalid configuration files.
7667
7668 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7669
7670         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7671         argument.  If non-null, the newly-constructed BusConfigParser will
7672         be initialized with the parent's BusLimits instead of the default
7673         values.
7674         (include_file): When including a config file, pass in
7675         the current parser as the parent and then copy the BusLimits
7676         from the included BusConfigParser pack to the current parser.
7677         (process_test_valid_subdir): Renamed from process_test_subdir.
7678         (process_test_equiv_subdir): Added.  Walks through a directory,
7679         descending into each subdirectory and loading the config files
7680         it finds there.  If any subdirectory contains two config files
7681         that don't produce identical BusConfigParser structs, fail.
7682         For now, the BusConfigParser's BusPolicies are not compared.
7683         (bus_config_parser_test): Call both process_test_valid_subdir and
7684         process_test_equiv_subdir.
7685
7686         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7687         argument and pass it along to the call to bus_config_parser_new.
7688         Also made a few small changes to allow this code to compile.
7689
7690         * bus/config-loader-expat.c (bus_config_load): Take a parent
7691         argument and pass it along to the call to bus_config_parser_new.
7692
7693         * bus/bus.c (bus_context_new): Load the config file
7694         with a NULL parent argument.
7695
7696 2004-03-29  Michael Meeks  <michael@ximian.com>
7697
7698         * glib/dbus-gobject.c (introspect_properties): split
7699         out, fix mangled 'while' flow control.
7700         (introspect_signals): implement.
7701         (handle_introspect): update.
7702
7703 2004-03-29  Michael Meeks  <michael@ximian.com>
7704
7705         * glib/dbus-gobject.c (set_object_property): split out / 
7706         re-work, use the property type, and not the message type(!)
7707         (get_object_property): ditto.
7708
7709         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7710         (dbus_gvalue_marshal): make this code re-usable, needed
7711         for signals too, also on both proxy and server side.
7712         Re-write for more efficiency / readability.
7713
7714 2004-03-29  Michael Meeks  <michael@ximian.com>
7715
7716         * dbus/dbus-message.c
7717         (dbus_message_new_error_printf): impl.
7718
7719         * dbus/dbus-connection.c
7720         (dbus_connection_unregister_object_path): fix warning.
7721
7722         * configure.in: fix no-mono-installed situation.
7723
7724 2004-03-27  Havoc Pennington  <hp@redhat.com>
7725
7726         Patch from Timo Teräs:
7727         
7728         * tools/dbus-send.c (main): if --print-reply, assume type is
7729         method call; support boolean type args
7730         
7731         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7732         bunch of memleak and logic bugs
7733         
7734 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7735
7736         * mono/Arguments.cs:
7737         * mono/Introspector.cs:
7738         * mono/Handler.cs:
7739         * mono/InterfaceProxy.cs:
7740         * mono/Message.cs
7741         * mono/ProxyBuilder.cs:
7742         * mono/Service.cs:
7743         Added InterfaceProxy class to avoid building proxies for every
7744         object.
7745
7746         * dbus-message.h:
7747         * dbus-message.c (dbus_message_append_args_valist)
7748         (dbus_message_iter_get_object_path)
7749         (dbus_message_iter_get_object_path_array)
7750         (dbus_message_iter_append_object_path)
7751         (dbus_message_iter_append_object_path_array):
7752         Added object_path iter functions to handle OBJECT_PATH arguments
7753         
7754 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7755
7756         First checkin of mono bindings.
7757         * configure.in:
7758         * Makefile.am:
7759         Build stuff for the bindings
7760         * dbus-sharp.pc.in: Added for pkgconfig
7761         
7762 2004-03-21  Havoc Pennington  <hp@redhat.com>
7763
7764         * test/test-service.c (main): remove debug spew
7765
7766 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7767
7768         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7769         arrays
7770
7771         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7772         (dbus_message_iter_init_array_iterator)
7773         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7774         indicate whether the iterator is empty
7775
7776         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7777         warnings
7778
7779 2004-03-19  Havoc Pennington  <hp@redhat.com>
7780
7781         * NEWS: 0.21 updates
7782
7783         * configure.in: 0.21
7784
7785         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7786         
7787         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7788         you don't need pyrex to make dist
7789
7790         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7791         sources; run moc
7792         
7793 2004-03-18  Richard Hult  <richard@imendio.com>
7794
7795         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7796         (dbus_message_set_auto_activation): Add doxygen docs.
7797
7798 2004-03-16  Richard Hult  <richard@imendio.com>
7799
7800         * bus/activation.c: (bus_activation_service_created),
7801         (bus_activation_send_pending_auto_activation_messages),
7802         (bus_activation_activate_service):
7803         * bus/activation.h:
7804         * bus/dispatch.c: (bus_dispatch),
7805         (check_nonexistent_service_auto_activation),
7806         (check_service_auto_activated),
7807         (check_segfault_service_auto_activation),
7808         (check_existent_service_auto_activation), (bus_dispatch_test):
7809         * bus/driver.c: (bus_driver_handle_activate_service):
7810         * bus/services.c: (bus_registry_acquire_service):
7811         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7812         (dbus_message_get_auto_activation):
7813         * dbus/dbus-message.h:
7814         * dbus/dbus-protocol.h: Implement auto-activation.
7815         
7816         * doc/dbus-specification.xml: Add auto-activation to the spec.
7817
7818 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7819
7820         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7821         fix a bug with CUSTOM types.
7822
7823         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7824         a unit test for this bug (used to fail).
7825
7826 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7827
7828         * bus/activation.c:
7829         (babysitter_watch_callback): notify all pending activations waiting for
7830           the same exec that the activation failed.
7831         (bus_activation_activate_service): shortcut the activation if we 
7832           already waiting for the same executable to start up.
7833
7834 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7835
7836         * bus/activation.c: 
7837         - Added service file reloading. 
7838           Each service files directory is kept in an hash table in 
7839           BusActivation and each BusActivationEntry knows what .service-file it
7840           was read from. So when you try to activate a service the bus will 
7841           check if it's been updated, removed or if new .service-files has 
7842           been installed.
7843         - Test code at the bottom for the service file reloading.
7844         * bus/test-main.c: (main):
7845         * bus/test.h:
7846         - added service reloading test.
7847         * dbus/dbus-sysdeps.c: 
7848         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7849
7850 2004-03-08  Michael Meeks  <michael@ximian.com>
7851
7852         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7853         bail immediately if disconnected, to avoid busy loop.
7854
7855         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7856         cleanup cut/paste/inefficiency.
7857
7858 2004-03-01  David Zeuthen  <david@fubar.dk>
7859
7860         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7861         bug where args were used twice. This bug resulted in a segfault
7862         on a Debian/PPC system when starting the messagebus daemon. Include
7863         dbus-sysdeps.h for DBUS_VA_COPY
7864
7865         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7866
7867         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7868         appropriate va_copy implementation. From GLib
7869         
7870 2004-02-24  Joe Shaw  <joe@ximian.com>
7871
7872         * bus/services.c (bus_registry_acquire_service): We need to pass
7873         in the service name to dbus_set_error() to prevent a crash.
7874
7875 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7876
7877         * AUTHORS: Reveal my True identity.
7878
7879 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7880
7881         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7882         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7883
7884 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7885
7886         * doc/TODO: Added not about better error check of configuration files.
7887
7888 2003-12-02  Richard Hult  <richard@imendio.com>
7889
7890         * Update AFL version to 2.0 throughout the source files to reflect
7891         the update that was done a while ago.
7892
7893 2003-12-02  Richard Hult  <richard@imendio.com>
7894
7895         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7896         wrote_dict_key to FALSE on the iter that the dict is appended to,
7897         just like when appending other types. Fixes a bug where a dict
7898         couldn't be put inside a dict.
7899         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7900         (message_iter_test, _dbus_message_test): Add test case for dict
7901         inside dict.
7902
7903 2003-12-01  David Zeuthen  <david@fubar.dk>
7904
7905         * python/dbus.py: Add the actual message when calling the reciever
7906         of a signal such that parameters can be inspected. Add the method
7907         remove_signal_receiver
7908         
7909 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7910
7911         * bus/*.[ch]:
7912         * dbus/*.[ch]:
7913         * glib/*.[ch]: Made ref functions return the pointer
7914
7915 2003-11-25  Zack Rusin  <zack@kde.org>
7916
7917         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7918
7919         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7920         wrappers,
7921
7922         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7923         the Integrator and to better fit with the server,
7924
7925 2003-11-24  Zack Rusin  <zack@kde.org>
7926
7927         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7928         the integrator handles it now
7929
7930         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7931         since QTimer wasn't really meant to be used the way DBusTimeout is
7932
7933 2003-11-24  Zack Rusin  <zack@kde.org>
7934
7935         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7936         Integrator class which integrates D-BUS with the Qt event loop,
7937
7938         * qt/connection.h, qt/connection.cpp: Move all the code which
7939         was dealing with D-BUS integration to the Integrator class,
7940         and start using Integrator,
7941
7942 2003-11-23  Zack Rusin  <zack@kde.org>
7943
7944         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7945         wrapper
7946
7947         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7948         switching namespaces to DBusQt, reworking the class,
7949
7950         * Makefile.cvs: switching dependencies so that it matches KDE 
7951         schematics,
7952         
7953         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7954         the library
7955
7956 2003-11-19  Havoc Pennington  <hp@redhat.com>
7957
7958         * NEWS: update
7959
7960         * configure.in: bump version to 0.20
7961
7962         * configure.in (have_qt): add yet another place to look for qt
7963         (someone hand trolltech a .pc file...)
7964
7965 2003-11-01  Havoc Pennington  <hp@redhat.com>
7966
7967         * doc/dbus-specification.xml: add state machine docs on the auth
7968         protocol; just a first draft, I'm sure it's wrong.      
7969
7970 2003-10-28  David Zeuthen  <david@fubar.dk>
7971
7972         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7973         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7974         
7975 2003-10-28  Havoc Pennington  <hp@redhat.com>
7976
7977         * dbus/dbus-message.c (get_next_field): delete unused function
7978
7979 2003-10-28  Havoc Pennington  <hp@redhat.com>
7980
7981         * bus/expirelist.c (do_expiration_with_current_time): detect
7982         failure of the expire_func due to OOM
7983
7984         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7985
7986         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7987         NoReply error that's now created by the bus when the service exits
7988
7989 2003-10-28  Havoc Pennington  <hp@redhat.com>
7990
7991         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7992         tests for set_path, set_interface, set_member, etc.
7993
7994         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7995
7996         * dbus/dbus-message.c (set_string_field): always just delete and
7997         re-append the field; accept NULL for deletion
7998         (re_align_fields_recurse): reimplement
7999         
8000 2003-10-26  Havoc Pennington  <hp@redhat.com>
8001
8002         * dbus/dbus-connection.c: fix docs to properly describe the
8003         disconnected message
8004         (_dbus_connection_notify_disconnected): remove this function; 
8005         we can't synchronously add the disconnected message, we have to 
8006         do it after we've queued any remaining real messages
8007         (_dbus_connection_get_dispatch_status_unlocked): queue the
8008         disconnect message only if the transport has finished queueing all
8009         its real messages and is disconnected.
8010         (dbus_connection_disconnect): update the dispatch status here
8011
8012 2003-10-22  Havoc Pennington  <hp@redhat.com>
8013
8014         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8015
8016         * bus/connection.c (bus_transaction_send_from_driver): set the
8017         destination to the connection's base service
8018
8019 2003-10-20  Havoc Pennington  <hp@redhat.com>
8020
8021         hmm, make check is currently not passing.
8022         
8023         * doc/dbus-specification.xml: add requirement that custom type
8024         names follow the same rules as interface names.
8025
8026         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8027         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8028         'map'
8029
8030         * doc/dbus-specification.xml: update type codes to match
8031         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8032         CUSTOM. Add type OBJECT_PATH to the spec.
8033
8034 2003-10-17  Havoc Pennington  <hp@redhat.com>
8035
8036         * bus/driver.c (create_unique_client_name): use "." as separator
8037         in base service names instead of '-'
8038
8039         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8040         byte at the end of the string
8041
8042         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8043         optimization macros since string validation seems to be a slow
8044         point.
8045         
8046         * doc/dbus-specification.xml: restrict valid
8047         service/interface/member/error names. Add test suite code for the
8048         name validation.
8049
8050         * dbus/dbus-string.c: limit service/interface/member/error names 
8051         to [0-9][A-Z][a-z]_
8052
8053         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8054         format arg to verbose spew
8055
8056         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8057         memory, return instead of g_error
8058
8059         * test/test-service.c (path_message_func): support emitting a
8060         signal on request
8061
8062         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8063         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8064         assuming the activation bus was the session bus so that services
8065         started manually will still register.
8066         (init_connections_unlocked): fix so that in OOM situation we get
8067         the same semantics when retrying the function
8068         
8069         * test/test-service.c (main): change to use path registration, to
8070         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8071         than DBUS_BUS_SESSION
8072
8073 2003-10-16  Havoc Pennington  <hp@redhat.com>
8074
8075         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8076
8077         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8078         coverage of the tests
8079         (coverage-report.txt): don't move the .da and .bbg files around
8080
8081 2003-10-16  Havoc Pennington  <hp@redhat.com>
8082
8083         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8084         to put there
8085
8086 2003-10-16  Havoc Pennington  <hp@redhat.com>
8087
8088         * bus/connection.c (bus_pending_reply_expired): either cancel or
8089         execute, not both
8090         (bus_connections_check_reply): use unlink, not remove_link, as we
8091         don't want to free the link; fixes double free mess
8092
8093         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8094         where no reply was received
8095
8096         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8097         fix a refcount leak
8098
8099         * bus/signals.c (match_rule_matches): add special cases for the
8100         bus driver, so you can match on sender/destination for it.
8101
8102         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8103         DBUS_PRINT_BACKTRACE is set
8104
8105         * dbus/dbus-internals.c: add pid to assertion failure messages
8106
8107         * dbus/dbus-connection.c: add message type code to the debug spew
8108
8109         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8110         sender=foo not service=foo
8111
8112         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8113         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8114         DBUS_ACTIVATION_ADDRESS instead
8115
8116         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8117         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8118
8119         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8120         context struct
8121
8122         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8123         (dbus_message_iter_get_object_path_array): new function (half
8124         finished, disabled for the moment)
8125         
8126         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8127         DBUS_MESSAGE_TYPE_ERROR
8128
8129         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8130         avoid redirecting stderr to /dev/null
8131         (babysit): close stdin if not doing the "exit_with_session" thing
8132
8133         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8134         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8135         stdout/stdin, so things don't get confused
8136         
8137         * bus/system.conf.in: fix to allow replies, I modified .conf
8138         instead of .conf.in again.
8139
8140 2003-10-14  David Zeuthen  <david@fubar.dk>
8141
8142         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8143         argtype to arg_type when raising unknown arg type exception.
8144         Changed type list to reflect the changes in dbus-protocol.h so 
8145         the bindings actually work.
8146
8147 2003-10-14  Havoc Pennington  <hp@redhat.com>
8148
8149         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8150         to have a bug keeping it from outputting the .da files sometimes
8151         (string_get_string): don't append garbage nul bytes to the string.
8152
8153 2003-10-15  Seth Nickell  <seth@gnome.org>
8154
8155         * python/Makefile.am:
8156
8157         Include dbus_h_wrapper.h in the dist tarball.
8158
8159 2003-10-14  Havoc Pennington  <hp@redhat.com>
8160
8161         * bus/bus.c (bus_context_check_security_policy): revamp this to
8162         work more sanely with new policy-based requested reply setup
8163
8164         * bus/connection.c (bus_transaction_send_from_driver): set bus
8165         driver messages as no reply
8166
8167         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8168         requested_reply attribute on allow/deny rules
8169
8170         * bus/system.conf: add <allow requested_reply="true"/>
8171
8172         * bus/driver.c (bus_driver_handle_message): fix check for replies
8173         sent to the bus driver, which was backward. How did this ever work
8174         at all though? I think I'm missing something.
8175
8176         * dbus/dbus-message.c (decode_header_data): require error and
8177         method return messages to have a reply serial field to be valid
8178         (_dbus_message_loader_queue_messages): break up this function;
8179         validate that reply serial and plain serial are nonzero; 
8180         clean up the OOM/error handling.
8181         (get_uint_field): don't return -1 from this
8182         (dbus_message_create_header): fix signed/unsigned bug
8183
8184         * bus/connection.c (bus_connections_expect_reply): save serial of
8185         the incoming message, not reply serial
8186
8187 2003-10-14  Havoc Pennington  <hp@redhat.com>
8188
8189         * bus/connection.c: implement pending reply tracking using
8190         BusExpireList
8191
8192         * bus/bus.c (bus_context_check_security_policy): verify that a
8193         reply is pending in order to allow a reply to be sent. Deny 
8194         messages of unknown type.
8195
8196         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8197
8198         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8199         (bus_context_get_reply_timeout): new
8200
8201 2003-10-13  Seth Nickell  <seth@gnome.org>
8202
8203         * python/Makefile.am:
8204
8205         Pass "make distcheck": remove a couple files from DIST_FILES
8206         that weren't included in the final version.
8207
8208 2003-10-12  Havoc Pennington  <hp@pobox.com>
8209
8210         Added test code that 1) starts an actual bus daemon and 2) uses
8211         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8212         more testing possible, but this is the basic framework.
8213         
8214         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8215         empty proxy lists from the proxy list hash
8216
8217         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8218         couple of return_if_fail checks
8219
8220         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8221         to allocate, so everything is cleared to NULL as it should be.
8222
8223         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8224         source as data to dbus_connection_set_timeout_functions() as the 
8225         timeout functions expected
8226
8227         * test/glib/run-test.sh: add a little script to start up a message
8228         bus and run tests using it
8229
8230         * tools/dbus-launch.1: updates
8231
8232         * tools/dbus-launch.c (main): add --config-file option
8233
8234         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8235         that could never be reached.
8236
8237         * dbus/dbus-message.c (dbus_message_new_method_return) 
8238         (dbus_message_new_error, dbus_message_new_signal): set the
8239         no-reply-expected flag on all these. Redundant, but may
8240         as well be consistent.
8241
8242 2003-10-11  Havoc Pennington  <hp@pobox.com>
8243
8244         * test/decode-gcov.c (function_solve_graph): make broken block
8245         graph a nonfatal error since it seems to be broken. Need to debug
8246         this.
8247
8248         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8249         can't just check type > INVALID < LAST anymore
8250
8251         * dbus/dbus-message.c (dbus_message_get_signature): new function
8252         (dbus_message_has_signature): new function
8253         (struct DBusMessage): add signature field (right now it isn't sent
8254         over the wire, just generated on the fly)
8255         (dbus_message_copy): copy the signature, and init strings to
8256         proper length to avoid some reallocs
8257         (dbus_message_iter_init_array_iterator): return void, since it
8258         can't fail
8259         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8260         (_dbus_message_loader_queue_messages): add silly temporary hack to
8261         fill in message->signature on load
8262
8263         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8264         characters, so they are relatively human-readable.
8265
8266 2003-10-11  Havoc Pennington  <hp@pobox.com>
8267
8268         * dbus/dbus-message.c (_dbus_message_test): add more test
8269         coverage, but #if 0 for now since they uncover a bug 
8270         not fixed yet; I think in re_align_field_recurse()
8271         (re_align_field_recurse): add FIXME about broken assertion
8272
8273         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8274
8275         * bus/connection.c: share a couple code bits with expirelist.c
8276
8277         * bus/expirelist.h, bus/expirelist.c: implement a generic
8278         expire-items-after-N-seconds facility, was going to share between
8279         expiring connections and replies, decided not to use for expiring
8280         connections for now.
8281
8282         * COPYING: include AFL 2.0 (still need to change all the file headers)
8283
8284 2003-10-09  Havoc Pennington  <hp@redhat.com>
8285
8286         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8287         gcc 3.3. Not that we do anything about it yet.
8288
8289         * bus/signals.c (bus_match_rule_parse): impose max length on the
8290         match rule text
8291
8292         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8293
8294 2003-10-09  Havoc Pennington  <hp@redhat.com>
8295
8296         Make matching rules theoretically work (add parser).
8297         
8298         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8299         the case where destination is explicitly specified as bus driver
8300         and someone else is eavesdropping.
8301         
8302         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8303         definition of eavesdropping and assertion
8304
8305         * tools/dbus-send.c (main): use dbus_message_type_from_string
8306
8307         * bus/signals.c (bus_match_rule_parse): implement
8308
8309         * dbus/dbus-message.c (dbus_message_type_from_string): new
8310
8311         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8312
8313 2003-10-02  Havoc Pennington  <hp@pobox.com>
8314
8315         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8316         dbus_gproxy_oneway_call
8317
8318         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8319         (dbus_server_setup_with_g_main): fix to allow calling them more
8320         than once on the same args
8321         (dbus_bus_get_with_g_main): new function
8322
8323 2003-10-02  Havoc Pennington  <hp@redhat.com>
8324
8325         * doc/dbus-tutorial.xml: write some stuff
8326
8327 2003-09-29  Havoc Pennington  <hp@pobox.com>
8328
8329         * configure.in: split checks for Doxygen from XML docs, check for
8330         xmlto
8331
8332         * doc/Makefile.am: XML-ify all the docs, and add a blank
8333         dbus-tutorial.xml
8334
8335 2003-09-29  Havoc Pennington  <hp@pobox.com>
8336
8337         * Merge dbus-object-names branch. To see the entire patch 
8338         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8339         it's huuuuge though.
8340         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8341         
8342 2003-09-28  Havoc Pennington  <hp@pobox.com>
8343
8344         * HACKING: update to reflect new server
8345
8346 2003-09-26  Seth Nickell  <seth@gnome.org>
8347
8348         * python/dbus.py:
8349         * python/examples/example-signals.py:
8350
8351         Start implementing some notions of signals. The API
8352         is really terrible, but they sort of work (with the
8353         exception of being able to filter by service, and to
8354         transmit signals *as* a particular service). Need to
8355         figure out how to make messages come from the service
8356         we registered :-(
8357         
8358         * python/dbus_bindings.pyx.in:
8359
8360         Removed duplicate message_handler callbacks.
8361         
8362 2003-09-25  Havoc Pennington  <hp@redhat.com>
8363
8364         * bus/session.conf.in: fix my mess
8365
8366 2003-09-25  Havoc Pennington  <hp@pobox.com>
8367
8368         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8369
8370 2003-09-25  Seth Nickell  <seth@gnome.org>
8371
8372         * python/examples/example-service.py:
8373
8374         Johan notices complete wrong code in example-service, but
8375         completely wrong in a way that works exactly the same (!).
8376         Johan is confused, how could this possibly work? Example
8377         code fails to serve purpose of making things clear.
8378         Seth fixes.
8379
8380 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8381
8382         * doc/dbus-specification.sgml: don't require header fields
8383         to be 4-byte aligned and specify that fields should be
8384         distinguished from padding by the fact that zero is not
8385         a valid field name.
8386         
8387         * doc/TODO: remove re-alignment item and add item to doc
8388         the OBJECT_PATH type.
8389         
8390         * dbus/dbus-message.c:
8391         (HeaderField): rename the original member to value_offset
8392         and introduce a name_offset member to keep track of where
8393         the field actually begins.
8394         (adjust_field_offsets): remove.
8395         (append_int_field), (append_uint_field),
8396         (append_string_field): don't align the start of the header
8397         field to a 4-byte boundary.
8398         (get_next_field): impl finding the next marhsalled field
8399         after a given field.
8400         (re_align_field_recurse): impl re-aligning a number of
8401         already marshalled fields.
8402         (delete_field): impl deleting a field of any type and
8403         re-aligning any following fields.
8404         (delete_int_or_uint_field), (delete_string_field): remove.
8405         (set_int_field), (set_uint_field): no need to re-check
8406         that we have the correct type for the field.
8407         (set_string_field): ditto and impl re-aligning any
8408         following fields.
8409         (decode_header_data): update to take into account that
8410         the fields aren't 4-byte aligned any more and the new
8411         way to distinguish padding from header fields. Also,
8412         don't exit when there is too much header padding.
8413         (process_test_subdir): print the directory.
8414         (_dbus_message_test): add test to make sure a following
8415         field is re-aligned correctly after field deletion.
8416         
8417         * dbus/dbus-string.[ch]:
8418         (_dbus_string_insert_bytes): rename from insert_byte and
8419         allow the insert of multiple bytes.
8420         (_dbus_string_test): test inserting multiple bytes.
8421
8422         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8423         warning note to docs about having to re-align any
8424         marshalled values following the string.
8425         
8426         * dbus/dbus-message-builder.c:
8427         (append_string_field), (_dbus_message_data_load):
8428         don't align the header field.
8429         
8430         * dbus/dbus-auth.c: (process_test_subdir): print the
8431         directory.
8432         
8433         * test/break-loader.c: (randomly_add_one_byte): upd. for
8434         insert_byte change.
8435         
8436         * test/data/invalid-messages/bad-header-field-alignment.message:
8437         new test case.
8438         
8439         * test/data/valid-messages/unknown-header-field.message: shove
8440         a dict in the unknown field.
8441
8442 2003-09-25  Seth Nickell  <seth@gnome.org>
8443
8444         * python/dbus.py:
8445         * python/dbus_bindings.pyx.in:
8446
8447         Handle return values.
8448         
8449         * python/examples/example-client.py:
8450         * python/examples/example-service.py:
8451
8452         Pass back return values from the service to the client.
8453         
8454 2003-09-24  Seth Nickell  <seth@gnome.org>
8455
8456         * python/dbus.py:
8457
8458         Connect Object methods (when you are sharing an object) up... pass
8459         in a list of methods to be shared. Sharing all the methods just
8460         worked out too weird. You can now create nice Services over the
8461         DBus in Python. :-)
8462         
8463         * python/dbus_bindings.pyx.in:
8464
8465         Keep references to user_data tuples passed into C functions so 
8466         Python doesn't garbage collect on us.
8467
8468         Implement MethodReturn and Error subclasses of Message for creating
8469         DBusMessage's of those types.
8470         
8471         * python/examples/example-client.py:
8472         * python/examples/example-service.py:
8473
8474         Simple example code showing both how create DBus services and objects,
8475         and how to use them.
8476
8477 2003-09-23  Havoc Pennington  <hp@pobox.com>
8478
8479         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8480
8481 2003-09-23  Havoc Pennington  <hp@redhat.com>
8482
8483         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8484         (dbus_gproxy_disconnect_signal): implement
8485         (dbus_gproxy_manager_remove_signal_match): implement
8486         (dbus_gproxy_manager_add_signal_match): implement
8487         (dbus_gproxy_oneway_call): implement
8488
8489 2003-09-23  Havoc Pennington  <hp@pobox.com>
8490
8491         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8492         subclass. This means dropping the transparent thread safety of the
8493         proxy; you now need a separate proxy per-thread, or your own
8494         locking on the proxy. Probably right anyway.
8495         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8496
8497 2003-09-22  Havoc Pennington  <hp@redhat.com>
8498
8499         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8500
8501 2003-09-21  Seth Nickell  <seth@gnome.org>
8502
8503         First checkin of the Python bindings.
8504         
8505         * python/.cvsignore:
8506         * python/Makefile.am:
8507         * python/dbus_bindings.pyx.in:
8508         * python/dbus_h_wrapper.h:
8509
8510         Pieces for Pyrex to operate on, building a dbus_bindings.so
8511         python module for low-level access to the DBus APIs.
8512         
8513         * python/dbus.py:
8514
8515         High-level Python module for accessing DBus objects.
8516
8517         * configure.in:
8518         * Makefile.am:
8519
8520         Build stuff for the python bindings.
8521
8522         * acinclude.m4:
8523
8524         Extra macro needed for finding the Python C header files.
8525
8526 2003-09-21  Havoc Pennington  <hp@pobox.com>
8527
8528         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8529         implementing the proxy manager, didn't get very far.
8530
8531         * dbus/dbus-bus.c (dbus_bus_add_match): new
8532         (dbus_bus_remove_match): new
8533
8534         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8535         path_name argument; adjust the other not-yet-implemented 
8536         gproxy constructors to be what I think they should be.
8537
8538 2003-09-21  Havoc Pennington  <hp@pobox.com>
8539
8540         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8541         by default for message bus connections.
8542
8543         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8544         exit_on_disconnect flag is set and we process the disconnected
8545         signal.
8546         (dbus_connection_set_exit_on_disconnect): new function
8547
8548 2003-09-21  Havoc Pennington  <hp@pobox.com>
8549
8550         Get matching rules mostly working in the bus; only actually
8551         parsing the rule text remains. However, the client side of
8552         "signal connections" hasn't been started, this patch is only the
8553         bus side.
8554         
8555         * dbus/dispatch.c: fix for the matching rules changes
8556         
8557         * bus/driver.c (bus_driver_handle_remove_match)
8558         (bus_driver_handle_add_match): send an ack reply from these
8559         method calls
8560
8561         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8562         arguments, reported by Seth Nickell
8563
8564         * bus/config-parser.c (append_rule_from_element): support
8565         eavesdrop=true|false attribute on policies so match rules 
8566         can be prevented from snooping on the system bus.
8567
8568         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8569         and "destination" in attribute names; fix some docs bugs; 
8570         add eavesdrop=true|false attribute
8571
8572         * bus/driver.c (bus_driver_handle_add_match)
8573         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8574         messages
8575
8576         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8577         rid of broadcast service concept, signals are just always broadcast
8578
8579         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8580         mostly implement matching rules stuff (currently only exposed as signal
8581         connections)
8582
8583 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8584
8585         * doc/dbus-specification.sgml: Change the header field name
8586         to be an enum and update the rest of the spec to reference
8587         the fields using the conventinal name.
8588
8589         * dbus/dbus-protocol.h: update to reflect the spec.
8590
8591         * doc/TODO: add item to remove the 4 byte alignment requirement.
8592         
8593         * dbus/dbus-message.c: Remove the code to generalise the
8594         header/body length and serial number header fields as named
8595         header fields so we can reference field names using the 
8596         protocol values.
8597         (append_int_field), (append_uint_field), (append_string_field):
8598         Append the field name as a byte rather than four chars.
8599         (delete_int_or_uint_field), (delete_string_field): reflect the
8600         fact that the field name and typecode now occupy 4 bytes instead
8601         of 8.
8602         (decode_string_field), (decode_header_data): update to reflect
8603         protocol changes and move the field specific encoding from
8604         decode_string_field() back into decode_header_data().
8605         
8606         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8607         Add utility to aid debugging.
8608         
8609         * dbus/dbus-message-builder.c:
8610         (append_string_field), (_dbus_message_data_load): Update to
8611         reflect protocol changes; Change the FIELD_NAME directive
8612         to HEADER_FIELD and allow it to take the field's conventional
8613         name rather than the actual value.
8614         
8615         * test/data/*/*.message: Update to use HEADER_FIELD instead
8616         of FIELD_NAME; Always align the header on an 8 byte boundary
8617         *before* updating the header length.
8618
8619 2003-09-15  Havoc Pennington  <hp@pobox.com>
8620
8621         * dbus/dbus-pending-call.c: add the get/set object data
8622         boilerplate as for DBusConnection, etc. Use generic object data
8623         for the notify callback.
8624
8625         * glib/dbus-gparser.c (parse_node): parse child nodes
8626
8627         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8628         
8629         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8630         contain functions shared between the convenience lib and the
8631         installed lib
8632
8633         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8634         -export-symbols-regex to the GLib library
8635
8636         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8637         fix the locking in here, and add a default handler for
8638         Introspect() that just returns sub-nodes.
8639
8640 2003-09-14  Havoc Pennington  <hp@pobox.com>
8641
8642         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8643         rather than gfoo consistent
8644
8645         * glib/dbus-gproxy.h: delete for now, move contents to
8646         dbus-glib.h, because the include files don't work right since we
8647         aren't in the dbus/ subdir.
8648         
8649         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8650         (dbus_gproxy_end_call): finish
8651         (dbus_gproxy_begin_call): finish
8652
8653         * glib/dbus-gmain.c (dbus_set_g_error): new
8654
8655         * glib/dbus-gobject.c (handle_introspect): include information
8656         about child nodes in the introspection
8657
8658         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8659         function to help in implementation of introspection
8660
8661         * dbus/dbus-object-tree.c
8662         (_dbus_object_tree_list_registered_and_unlock): new function
8663
8664 2003-09-12  Havoc Pennington  <hp@pobox.com>
8665
8666         * glib/dbus-gidl.h: add common base class for all the foo_info
8667         types
8668
8669         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8670         similar to kdcop
8671
8672         * test/Makefile.am: try test srcdir -ef . in addition to test
8673         srcdir = ., one of them should work (yeah lame)
8674         
8675         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8676         library
8677         
8678         * glib/dbus-gparser.h: make description_load routines return
8679         NodeInfo* not Parser*
8680
8681         * Makefile.am (SUBDIRS): build test dir after all library dirs
8682
8683         * configure.in: add GTK+ detection
8684
8685 2003-09-07  Havoc Pennington  <hp@pobox.com>
8686
8687         * Make Doxygen contented.
8688
8689 2003-09-07  Havoc Pennington  <hp@pobox.com>
8690
8691         * doc/dbus-specification.sgml: more updates
8692
8693 2003-09-06  Havoc Pennington  <hp@pobox.com>
8694
8695         * doc/dbus-specification.sgml: partial updates
8696
8697         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8698         zillionth time; hopefully I edited the right file this time.
8699
8700         * bus/config-parser.c (append_rule_from_element): support
8701         send_type, send_path, receive_type, receive_path
8702
8703         * bus/policy.c: add message type and path to the list of things
8704         that can be "firewalled"
8705
8706 2003-09-06  Havoc Pennington  <hp@pobox.com>
8707
8708         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8709         (dbus_connection_register_object_path): make this not handle
8710         messages to paths below the given path
8711
8712 2003-09-03  Havoc Pennington  <hp@pobox.com>
8713
8714         * test/glib/Makefile.am: add this with random glib-linked test
8715         programs
8716
8717         * glib/Makefile.am: remove the random test programs from here,
8718         leave only the unit tests
8719
8720         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8721         uscore/javacaps conversion, and fix     
8722         (get_object_property, set_object_property): change to .NET
8723         convention for mapping props to methods, set_FooBar/get_FooBar, 
8724         since one language has such a convention we may as well copy it. 
8725         Plus real methods in either getFooBar or get_foo_bar style won't 
8726         collide with this convention.
8727
8728 2003-09-01  Havoc Pennington  <hp@pobox.com>
8729
8730         * glib/dbus-gparser.c: implement
8731
8732         * glib/dbus-gobject.c: start implementing skeletons support
8733
8734         * configure.in: when disabling checks/assert, also define
8735         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8736
8737 2003-09-01  Havoc Pennington  <hp@pobox.com>
8738
8739         * glib/Makefile.am: rearrange a bunch of files and get "make
8740         check" framework set up
8741
8742 2003-08-31  Havoc Pennington  <hp@pobox.com>
8743
8744         * fix build with --disable-tests
8745
8746 2003-08-30  Havoc Pennington  <hp@pobox.com>
8747
8748         * dbus/dbus-connection.c: purge DBusMessageHandler
8749
8750         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8751         use callbacks everywhere
8752
8753 2003-08-30  Havoc Pennington  <hp@pobox.com>
8754
8755         * test/data/valid-config-files/system.d/test.conf: change to 
8756         root for the user so warnings don't get printed
8757
8758         * dbus/dbus-message.c: add dbus_message_get_path,
8759         dbus_message_set_path
8760         
8761         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8762         dispatching to a path
8763
8764         * dbus/dbus-string.c (_dbus_string_validate_path): add
8765
8766         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8767         (_dbus_marshal_object_path): implement
8768
8769         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8770         to contain the path to the target object
8771         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8772         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8773
8774 2003-08-30  Havoc Pennington  <hp@pobox.com>
8775
8776         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8777
8778 2003-08-29  Havoc Pennington  <hp@pobox.com>
8779
8780         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8781         registered
8782         (struct DBusObjectSubtree): shrink this
8783         a lot, since we may have a lot of them
8784         (_dbus_object_tree_free_all_unlocked): implement
8785         (_dbus_object_tree_dispatch_and_unlock): implement
8786
8787 2003-08-29  Havoc Pennington  <hp@pobox.com>
8788
8789         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8790
8791 2003-08-28  Havoc Pennington  <hp@pobox.com>
8792
8793         purge DBusObjectID
8794         
8795         * dbus/dbus-connection.c: port to no ObjectID, create a
8796         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8797
8798         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8799         everything except UnregisterFunction and MessageFunction
8800         
8801         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8802         add DBUS_TYPE_OBJECT_PATH
8803         
8804         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8805         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8806         path-based object IDs
8807
8808 2003-08-25  Havoc Pennington  <hp@pobox.com>
8809
8810         Just noticed that dbus_message_test is hosed, I wonder when I
8811         broke that. I thought make check was passing earlier...
8812         
8813         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8814         container tree, will replace most of dbus-object-registry
8815
8816         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8817         screwup
8818
8819 2003-08-19  Havoc Pennington  <hp@pobox.com>
8820
8821         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8822         (dbus_message_is_error): fix this function
8823
8824         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8825         match
8826
8827         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8828         reflect clarified man page
8829         (bus_client_policy_check_can_send): ditto
8830         
8831         * bus/session.conf.in: fixup
8832
8833         * bus/system.conf.in: fixup
8834
8835 2003-08-18  Havoc Pennington  <hp@redhat.com>
8836
8837         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8838
8839         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8840         dumb bug created earlier (wrong order of args to
8841         decode_header_data())
8842         
8843         * tools/dbus-send.c: port
8844
8845         * tools/dbus-print-message.c (print_message): port
8846
8847         * test/data/*messages: port all messages over
8848         
8849         * dbus/dbus-message-builder.c: support including 
8850         message type
8851         
8852         * bus/driver.c: port over
8853         
8854         * bus/dispatch.c: port over to new stuff
8855
8856         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8857         rename disconnect signal to "Disconnected"
8858
8859 2003-08-17  Havoc Pennington  <hp@pobox.com>
8860
8861         This doesn't compile yet, but syncing up so I can hack on it from
8862         work. What are branches for if not broken code? ;-)
8863         
8864         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8865         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8866         DBUS_HEADER_FIELD_ERROR_NAME
8867         
8868         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8869         for the interface+member pairs
8870         (string_hash): change to use g_str_hash algorithm
8871         (find_direct_function, find_string_function): refactor these to
8872         share most code.
8873         
8874         * dbus/dbus-message.c: port all of this over to support 
8875         interface/member fields instead of name field
8876
8877         * dbus/dbus-object-registry.c: port over
8878         
8879         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8880         from _dbus_string_validate_name
8881
8882         * bus/dbus-daemon-1.1: change file format for the 
8883         <deny>/<allow> stuff to match new message naming scheme
8884
8885         * bus/policy.c: port over
8886
8887         * bus/config-parser.c: parse new format
8888         
8889 2003-08-16  Havoc Pennington  <hp@pobox.com>
8890
8891         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8892         broken assertion
8893
8894         * glib/dbus-gproxy.c: some hacking
8895
8896 2003-08-15  Havoc Pennington  <hp@redhat.com>
8897
8898         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8899
8900         * dbus/dbus-connection.c
8901         (dbus_connection_send_with_reply_and_block): factor out internals;
8902         change to convert any error replies to DBusError instead of 
8903         returning them as a message
8904
8905 2003-08-15  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-connection.c, 
8908         dbus/dbus-pending-call.c: Finish the pending call stuff
8909
8910 2003-08-14  Havoc Pennington  <hp@redhat.com>
8911
8912         * dbus/dbus-pending-call.c: start on new object that will replace
8913         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8914         replies
8915
8916         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8917         with remote interfaces
8918
8919         * dbus/dbus-gidl.c: do the boring boilerplate in here
8920         
8921 2003-08-12  Havoc Pennington  <hp@pobox.com>
8922
8923         * bus/dispatch.c (bus_dispatch): make this return proper 
8924         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8925
8926         * dbus/dbus-errors.c (dbus_set_error): use
8927         _dbus_string_append_printf_valist
8928
8929         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8930         (_dbus_string_append_printf): new
8931
8932         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8933         UNKNOWN_METHOD
8934
8935         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8936         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8937         message is unhandled.
8938
8939 2003-08-11  Havoc Pennington  <hp@pobox.com>
8940
8941         * bus/test.c (client_disconnect_handler): change to return
8942         HANDLED (would have been REMOVE_MESSAGE)
8943
8944         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8945         HANDLED/NOT_YET_HANDLED instead of
8946         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8947         should be used.
8948
8949 2003-08-10  Havoc Pennington  <hp@pobox.com>
8950
8951         * tools/dbus-send.c (main): add --type argument, for now
8952         supporting only method_call and signal types.
8953
8954         * tools/dbus-print-message.c: print message type
8955
8956         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8957         init connection->objects
8958
8959         * doc/dbus-specification.sgml: fix sgml
8960
8961         * bus/*.c: port over to object-instance API changes
8962
8963         * test/test-service.c: ditto
8964         
8965         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8966         name, we will have to fix up the rest of the code to also handle
8967         this
8968         (dbus_message_new): generic message-creation call
8969         (set_string_field): allow appending name field
8970
8971 2003-08-06  Havoc Pennington  <hp@pobox.com>
8972
8973         * dbus/dbus-object-registry.c: implement signal connection 
8974         and dispatch
8975
8976         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8977
8978         * dbus/dbus-internals.c (_dbus_memdup): new function
8979
8980 2003-08-02  Havoc Pennington  <hp@pobox.com>
8981
8982         * dbus/dbus-message.c (dbus_message_get_no_reply)
8983         (dbus_message_set_no_reply): add these and remove
8984         set_is_error/get_is_error
8985
8986         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8987         remove the ERROR flag, since there's now an ERROR type
8988
8989 2003-08-01  Havoc Pennington  <hp@pobox.com>
8990
8991         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8992         implement
8993
8994         * dbus/dbus-message.c (dbus_message_get_type): new function
8995
8996         * doc/dbus-specification.sgml: add "type" byte to messages
8997
8998 2003-08-01  Havoc Pennington  <hp@pobox.com>
8999
9000         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9001         a message type enum to distinguish kinds of message
9002         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9003         that need not be replied to
9004
9005 2003-08-01  Havoc Pennington  <hp@pobox.com>
9006
9007         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9008         (unpack_8_octets): fix no-64-bit-int bug
9009
9010         * dbus/dbus-object-registry.c (validate_id): validate the 
9011         connection ID bits, not just the instance ID.
9012
9013         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9014         the connection-global 33 bits of the object ID
9015
9016         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9017         object ID in the new way
9018
9019         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9020         define server/client/instance bits.
9021
9022 2003-07-30  Havoc Pennington  <hp@pobox.com>
9023
9024         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9025         build
9026
9027 2003-07-13  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9030         fields to DBusObjectVTable and DBusObjectInfo
9031
9032 2003-07-12  Havoc Pennington  <hp@pobox.com>
9033
9034         * dbus/dbus-object-registry.c: implement unit test,
9035         fix bugs discovered in process
9036
9037         * dbus/dbus-connection.c: remove handler_table and
9038         register_handler(), add DBusObjectRegistry usage
9039
9040         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9041         (dbus_object_id_set_null): new functions
9042
9043 2003-07-08  Havoc Pennington  <hp@pobox.com>
9044
9045         * dbus/dbus-object.c: implement some of this
9046
9047         * dbus/dbus-object-registry.c
9048         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9049         param
9050         (_dbus_object_registry_new): handle OOM
9051
9052 2003-07-08  Havoc Pennington  <hp@pobox.com>
9053
9054         * dbus/dbus-object.h: sketch out an API for registering objects
9055         with a connection, that allows us to use as little as 24 bytes
9056         per object and lets application code represent an object in 
9057         any conceivable way.
9058
9059         * dbus/dbus-object-registry.c: implement the hard bits of the
9060         DBusConnection aspect of object API. Not yet wired up.
9061         
9062 2003-07-06  Havoc Pennington  <hp@pobox.com>
9063
9064         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9065         (_dbus_marshal_object_id): new
9066         (_dbus_demarshal_object_id): new
9067         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9068         consolidate identical switch cases. Don't conditionalize handling
9069         of DBUS_TYPE_UINT64, need to handle the type always.
9070         (_dbus_marshal_validate_arg): consolidate identical cases, and
9071         handle DBUS_TYPE_OBJECT_ID
9072
9073         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9074
9075         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9076
9077 2003-09-28  Havoc Pennington  <hp@pobox.com>
9078
9079         * real 0.13 release
9080
9081 2003-09-28  Havoc Pennington  <hp@pobox.com>
9082
9083         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9084         to work with Debian db2html
9085
9086 2003-09-28  Havoc Pennington  <hp@pobox.com>
9087
9088         * configure.in: 0.13
9089
9090         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9091         stylesheet-images for benefit of Debian
9092         
9093         Change back to using filesystem-linked sockets for the system
9094         bus, so only root can create the default system bus address.
9095         
9096         * bus/system.conf.in: change to use
9097         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9098
9099         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9100         from here.
9101
9102         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9103         here, and AC_DEFINE DBUS_SYSTEM_PATH
9104
9105 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9106
9107         * doc/TODO:
9108         * doc/busconfig.dtd:
9109         Add busconfig DTD.
9110         
9111 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9112
9113         * doc/dbus-specification.sgml:
9114         Add activation reply values.
9115         
9116 2003-08-05  Havoc Pennington  <hp@redhat.com>
9117
9118         * configure.in: 0.12
9119
9120 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9121
9122         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9123         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9124         (add_watch), (remove_watch), (create_source):
9125         Refcount fds, fixes some reentrancy issues.
9126         
9127 2003-07-30  Havoc Pennington  <hp@redhat.com>
9128
9129         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9130         bus address to be abstract if we have abstract sockets
9131
9132         * NEWS: update
9133
9134 2003-07-28  Havoc Pennington  <hp@redhat.com>
9135
9136         * bus/messagebus.in: fix to avoid processname/servicename 
9137         confusion, from Michael Kearey
9138         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9139         
9140 2003-07-23  Havoc Pennington  <hp@pobox.com>
9141
9142         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9143         fix from Andy Hanton to remove broken "+1"
9144
9145 2003-07-16  Havoc Pennington  <hp@pobox.com>
9146
9147         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9148         babysitter process, as suggested by Thomas Leonard, so 
9149         an "eval `dbus-launch --exit-with-session`" will actually 
9150         return
9151
9152 2003-07-16  Havoc Pennington  <hp@pobox.com>
9153
9154         * configure.in: print out EXPANDED_* variables in the summary at
9155         the end; clean up the code that computes EXPANDED_ variables and
9156         get the ones using exec_prefix right. Should make things work
9157         when you build without --prefix
9158
9159 2003-06-29  Havoc Pennington  <hp@pobox.com>
9160
9161         * mono/Test.cs (class Test): fire up a main loop and run it
9162
9163         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9164         done once, the app has to do it
9165
9166 2003-06-26  Havoc Pennington  <hp@pobox.com>
9167
9168         * mono/Connection.cs: set up connection with the glib main loop
9169
9170 2003-07-01  Havoc Pennington  <hp@redhat.com>
9171
9172         * doc/dbus-specification.sgml: clarify the format of a type code,
9173         change suggested by Jim Blandy
9174
9175 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9176
9177         * doc/Makefile.am:
9178         * tools/Makefile.am: Don't assume srcdir == builddir.
9179
9180         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9181         the allocated block.
9182         (_dbus_memory_test): New function.
9183         * dbus/dbus-test.h: Add _dbus_memory_test ().
9184         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9185
9186         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9187         of %c%c%c%c.
9188         (dbus_message_new): Remove obsolete @todo.
9189
9190         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9191         (_dbus_marshal_set_uint64): Fix comment.
9192
9193         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9194         hardcode FIELD_REPLY_SERIAL.
9195
9196         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9197         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9198
9199         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9200         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9201
9202 2003-06-24  Havoc Pennington  <hp@pobox.com>
9203
9204         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9205
9206 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9207
9208         * configure.in:
9209         * gcj/.cvsignore:
9210         * gcj/Hello.java:
9211         * gcj/Makefile.am:
9212         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9213         * gcj/org/.cvsignore:
9214         * gcj/org/Makefile.am:
9215         * gcj/org/freedesktop/.cvsignore:
9216         * gcj/org/freedesktop/Makefile.am:
9217         * gcj/org/freedesktop/dbus/.cvsignore:
9218         * gcj/org/freedesktop/dbus/Makefile.am:
9219         * gcj/org/freedesktop/dbus/Message.java: (Message),
9220         (Message.Message):
9221         * gcj/org/freedesktop/dbus/natMessage.cc:
9222         Fix the build system.
9223
9224 2003-06-22  Havoc Pennington  <hp@pobox.com>
9225
9226         * mono/Connection.cs: add more bindings
9227
9228         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9229         more than once.
9230
9231 2003-06-22  Havoc Pennington  <hp@pobox.com>
9232
9233         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9234         Start wrapping more stuff.
9235
9236 2003-06-22  Havoc Pennington  <hp@pobox.com>
9237
9238         * mono/Message.cs: implement Message.Wrap() that ensures we only
9239         have a single C# wrapper per DBusMessage, assuming it works which
9240         it probably doesn't.
9241
9242         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9243         (dbus_message_free_data_slot): new
9244         (dbus_message_set_data): new
9245         (dbus_message_get_data): new
9246
9247 2003-06-22  Havoc Pennington  <hp@pobox.com>
9248
9249         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9250         (_dbus_data_slot_allocator_alloc): rework these to keep a
9251         reference count on each slot and automatically manage a global
9252         slot ID variable passed in by address
9253
9254         * bus/bus.c: convert to new dataslot API
9255
9256         * dbus/dbus-bus.c: convert to new dataslot API
9257
9258         * dbus/dbus-connection.c: convert to new dataslot API
9259
9260         * dbus/dbus-server.c: convert to new dataslot API
9261
9262         * glib/dbus-gmain.c: ditto
9263
9264         * bus/test.c: ditto
9265
9266         * bus/connection.c: ditto
9267
9268 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9269
9270         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9271         after the gcj checks so that the correct configuration tags
9272         will be added to libtool.
9273
9274         * dbus-glib-1.pc.in: No need to specify any includes since
9275         dbus-1.pc.in has those.
9276
9277 2003-06-22  Havoc Pennington  <hp@pobox.com>
9278
9279         * mono/*, gcj/*, configure.in, Makefile.am:
9280         Check in makefiles and subdirs for mono and gcj bindings.
9281         Neither binding actually exists, just trying to get through
9282         all the build and other boring bits.
9283
9284 2003-06-21  Philip Blundell  <philb@gnu.org>
9285
9286         * tools/dbus-monitor.1: Updated.
9287
9288         * tools/dbus-send.1: Likewise.
9289
9290 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9291
9292         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9293         for hangup and error after checking read so we won't discard
9294         pending data if both hangup and read are set.
9295
9296 2003-06-19  Philip Blundell  <philb@gnu.org>
9297
9298         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9299
9300         * tools/dbus-send.c: Accept both --system and --session.
9301
9302         * tools/dbus-monitor.c: Same here.
9303
9304 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9305
9306         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9307         from C++ (Patch by Miloslav Trmac).
9308
9309 2003-06-15  Joe Shaw  <joe@assbarn.com>
9310
9311         * configure.in: Check for socklen_t.
9312
9313         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9314
9315         * test/test-segfault.c: Add #include <sys/time.h>
9316
9317         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9318         dbus-launch needs it.
9319
9320 2003-06-09  Havoc Pennington  <hp@redhat.com>
9321
9322         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9323         SUN_LEN, it breaks abstract socket usage
9324
9325         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9326         starts of lines.
9327
9328 2003-06-04  Havoc Pennington  <hp@pobox.com>
9329
9330         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9331         using unix:abstract=/foo, and when listening in a tmpdir
9332         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9333
9334         * dbus/dbus-transport.c (_dbus_transport_open): support
9335         unix:abstract=/foo
9336
9337         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9338         support abstract sockets
9339
9340         * dbus/dbus-transport-unix.c
9341         (_dbus_transport_new_for_domain_socket): support abstract sockets
9342
9343         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9344         toggle as an argument, implement abstract namespace support
9345         (_dbus_listen_unix_socket): ditto
9346
9347         * configure.in: add --enable-abstract-sockets and implement
9348         a configure check for autodetection of the right value.
9349
9350 2003-06-01  Havoc Pennington  <hp@pobox.com>
9351
9352         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9353         in /tmp (though on Linux this will end up being useless,
9354         when we add abstract namespace support)
9355
9356         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9357         subst'ing it
9358
9359 2003-05-28  Colin Walters  <walters@verbum.org>
9360
9361         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9362
9363 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9364
9365         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9366
9367 2003-05-17  Colin Walters  <walters@gnu.org>
9368
9369         * tools/dbus-send.c: Don't exit with an error code if --help was
9370         passed.  Default to using the session bus instead of the system
9371         one.
9372
9373         * tools/dbus-launch.c: Ditto.
9374
9375         * tools/dbus-monitor.c: Ditto.
9376
9377         * tools/dbus-send.1: Update with new arguments.
9378
9379         * tools/dbus-launch.c: Emit code to export variables.  New
9380         arguments -s and -c to specify shell syntax, and a bit of code to
9381         autodetect syntax.  Also, allow specifying a program to run.
9382
9383         * tools/dbus-launch.1: Update with new arguments.
9384
9385         * tools/dbus-send.1: Ditto.
9386
9387         * tools/dbus-monitor.1: Ditto.
9388
9389 2003-05-17  Havoc Pennington  <hp@pobox.com>
9390
9391         * bus/config-parser.c (merge_included): merge in policies from
9392         child configuration file.
9393
9394         * bus/policy.c (bus_policy_merge): function to merge two policies
9395         together
9396
9397 2003-05-16  Havoc Pennington  <hp@redhat.com>
9398
9399         * dbus/dbus-connection.c: disable verbose lock spew
9400
9401         * tools/dbus-send.c: add --print-reply command line option
9402
9403         * tools/dbus-print-message.h (print_message): new util function
9404         shared by dbus-send and dbus-monitor
9405
9406         * tools/dbus-monitor.c (handler_func): exit on disconnect
9407
9408         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9409         disconnected, don't try to use the read_watch
9410
9411         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9412         so we can find this bug more easily
9413
9414 2003-05-16  Havoc Pennington  <hp@redhat.com>
9415
9416         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9417         NULL as DBusHashTable is annoyingly likely to do.
9418
9419 2003-05-16  Colin Walters  <walters@verbum.org>
9420
9421         * tools/dbus-monitor.c: Add --session argument and usage()
9422         function.
9423
9424         * tools/dbus-monitor.1: Update with new --session arg.
9425
9426         * bus/Makefile.am (install-data-hook): Create
9427         $(libdir)/dbus-1.0/services so that the session bus is happy.
9428
9429 2003-05-15  Havoc Pennington  <hp@redhat.com>
9430
9431         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9432         on non-x86. ifdef's are evil.
9433
9434 2003-05-15  Havoc Pennington  <hp@redhat.com>
9435
9436         * configure.in: 0.11
9437
9438         * NEWS: update
9439
9440         * bus/Makefile.am (initddir): apparently we are supposed to put
9441         init scripts in /etc/rc.d/init.d not /etc/init.d
9442
9443         * bus/Makefile.am: remove the "you must --enable-tests to make
9444         check" as it broke distcheck
9445
9446         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9447
9448 2003-05-13  James Willcox  <jwillcox@gnome.org>
9449
9450         * configure.in:
9451         * bus/activation.c: (bus_activation_service_created),
9452         (bus_activation_activate_service):
9453         * bus/driver.c: (bus_driver_send_service_deleted),
9454         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9455         (bus_driver_send_service_acquired),
9456         (bus_driver_send_welcome_message),
9457         (bus_driver_handle_list_services):
9458         * bus/session.conf.in:
9459         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9460         (dbus_bus_service_exists), (dbus_bus_activate_service):
9461         * dbus/dbus-bus.h:
9462
9463         Add some convenience API which lets you activate a service, and did a
9464         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9465         and dbus_message_get_args()
9466
9467 2003-05-11  Havoc Pennington  <hp@pobox.com>
9468
9469         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9470         calling _dbus_marshal_validate_arg() for every byte in a byte
9471         array, etc.
9472
9473         * dbus/dbus-message-handler.c: use atomic reference counting to
9474         reduce number of locks slightly; the global lock in here sucks
9475
9476         * dbus/dbus-connection.c
9477         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9478         update_dispatch_status that can be called with lock held; then use
9479         in a couple places to reduce locking/unlocking
9480         (dbus_connection_send): hold the lock over the whole function
9481         instead of acquiring it twice.
9482
9483         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9484
9485         * bus/connection.c (bus_connections_setup_connection): fix access
9486         to already-freed memory.
9487
9488         * dbus/dbus-connection.c: keep a little cache of linked list
9489         nodes, to avoid using the global linked list alloc lock in the
9490         normal send-message case. Instead we just use the connection lock
9491         that we already have to take.
9492
9493         * dbus/dbus-list.c (_dbus_list_find_last): new function
9494
9495         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9496         change to use a struct for the atomic type; fix docs,
9497         they return value before increment, not after increment.
9498
9499         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9500         (_dbus_string_append_8_aligned): new functions to try to
9501         microoptimize this operation.
9502         (reallocate_for_length): break this out of set_length(), to
9503         improve profile info, and also so we can consider inlining the
9504         set_length() part.
9505
9506         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9507         strings with some preallocation, cuts down on our calls to realloc
9508         a fair bit. Though if we can get the "move entire string to empty
9509         string" optimization below to kick in here, it would be better.
9510
9511         * dbus/dbus-string.c (_dbus_string_move): just call
9512         _dbus_string_move_len
9513         (_dbus_string_move_len): add a special case for moving
9514         an entire string into an empty string; we can just
9515         swap the string data instead of doing any reallocs.
9516         (_dbus_string_init_preallocated): new function
9517
9518 2003-05-11  Havoc Pennington  <hp@pobox.com>
9519
9520         Write a "test-profile" that does echo client-server with threads;
9521         profile reveals lock contention, memcpy/realloc of buffers, and
9522         UTF-8 validation as hot spots. 20% of lock contention eliminated
9523         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9524         contention is global mempool locks for GList and DBusList.
9525
9526         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9527         x86 implementation
9528
9529         * dbus/dbus-connection.c (struct DBusConnection): use
9530         dbus_atomic_t for the reference count
9531
9532         * dbus/dbus-message.c (struct DBusMessage): declare
9533         dbus_atomic_t values as volatile
9534
9535         * configure.in: code to detect ability to use atomic integer
9536         operations in assembly, from GLib patch
9537
9538         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9539         time, tired of it being wrong in threads and forked processes
9540
9541         * glib/test-profile.c: a little program to bounce messages back
9542         and forth between threads and eat CPU
9543
9544         * dbus/dbus-connection.c: add debug spew macros for debugging
9545         thread locks; include config.h at top; fix deadlock in
9546         dbus_connection_flush()
9547
9548 2003-05-08  Havoc Pennington  <hp@pobox.com>
9549
9550         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9551         data from getting written, and there wasn't a good reason to
9552         use _exit really.
9553
9554         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9555         dbus_verbose lines in test coverage
9556         (main): add list of functions sorted by # of untested blocks
9557         to the coverage report
9558
9559         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9560
9561         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9562
9563         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9564         extend test coverage
9565
9566         * test/data/auth/cancel.auth-script: test canceling an
9567         authentication
9568
9569         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9570         aren't used. in CVS history if we end up needing them.
9571
9572 2003-05-04  Havoc Pennington  <hp@pobox.com>
9573
9574         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9575         unit test
9576
9577         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9578         function, which assumed length was in # of strings, not bytes
9579
9580         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9581         missing coverage
9582
9583         * dbus/dbus-connection.c
9584         (_dbus_connection_queue_received_message): disable function for
9585         now, we are only using it in test mode
9586
9587         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9588         remove a mistaken FIXME
9589
9590 2003-05-04  Havoc Pennington  <hp@pobox.com>
9591
9592         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9593         unlock mutex on successful return, patch from Anders Gustafsson
9594
9595 2003-05-04  Havoc Pennington  <hp@pobox.com>
9596
9597         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9598         Anders Gustafsson
9599
9600 2003-05-04  Havoc Pennington  <hp@pobox.com>
9601
9602         * tools/dbus-launch.c: implement
9603
9604         * bus/main.c (main), bus/bus.c (bus_context_new):
9605         implement --print-pid and --fork
9606
9607 2003-05-03  Havoc Pennington  <hp@redhat.com>
9608
9609         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9610         the address had no value, and add to test suite. Fix and
9611         regression test from Miloslav Trmac
9612
9613 2003-05-03  Havoc Pennington  <hp@pobox.com>
9614
9615         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9616         watch is invalid when handled
9617
9618         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9619         dbus-launch utility to launch the bus from a shell script.  Didn't
9620         actually implement dbus-launch yet, it's just a placeholder still.
9621
9622 2003-05-03  Havoc Pennington  <hp@pobox.com>
9623
9624         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9625         daemon; also documents daemon config file, so replaces
9626         doc/config-file.txt. Corrected some stuff from config-file.txt in
9627         the process of moving it.
9628
9629 2003-05-03  Havoc Pennington  <hp@pobox.com>
9630
9631         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9632         add some man pages
9633
9634 2003-05-03  Colin Walters  <walters@verbum.org>
9635
9636         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9637         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9638
9639         * Makefile.am: Update to use new .pc versioning scheme.
9640
9641 2003-05-02  Havoc Pennington  <hp@redhat.com>
9642
9643         * bus/system.conf.in: allow send/receive to/from message bus
9644         service
9645
9646 2003-04-30  Havoc Pennington  <hp@redhat.com>
9647
9648         * configure.in: print a note when building with unit tests and
9649         without assertions
9650
9651 2003-04-30  Havoc Pennington  <hp@redhat.com>
9652
9653         * Makefile.am: add a check-local that complains if you didn't
9654         configure with --enable-tests
9655
9656 2003-04-29  Havoc Pennington  <hp@redhat.com>
9657
9658         * glib/dbus-gmain.c: docs cleanups
9659
9660         * dbus/dbus-types.h: add docs on int64 types
9661
9662         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9663         public API docs section
9664
9665 2003-04-29  Havoc Pennington  <hp@redhat.com>
9666
9667         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9668         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9669         parallel install API version, not with the D-BUS package version.
9670
9671         * HACKING: move some of README over here
9672
9673         * README: updates, and document API/ABI policy
9674
9675         * configure.in: reindentation
9676
9677 2003-04-29  Havoc Pennington  <hp@redhat.com>
9678
9679         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9680         to use this library" to be sure people have the right
9681         expectations.
9682
9683 2003-04-28  Havoc Pennington  <hp@redhat.com>
9684
9685         * configure.in: add --enable-docs which by default is auto yes if
9686         doxygen and db2html found, no otherwise; but can be forced on/off
9687
9688         * doc/Makefile.am: conditionalize whether to build docs on
9689         --enable-docs
9690
9691 2003-04-28  Havoc Pennington  <hp@redhat.com>
9692
9693         * configure.in: 0.10
9694
9695         * NEWS: update
9696
9697         * bus/system.conf.in: add <includedir>system.d</includedir>
9698
9699         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9700         username was provided but not uid
9701
9702         * bus/config-parser.c (struct BusConfigParser): keep track of
9703         whether the parser is toplevel or was included; change some
9704         of the error handling if it's included.
9705
9706 2003-04-27  Havoc Pennington  <hp@pobox.com>
9707
9708         Unbreak my code...
9709
9710         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9711         report correct status if we finish processing authentication
9712         inside this function.
9713
9714         * bus/activation.c (try_send_activation_failure): use
9715         bus_transaction_send_error_reply
9716
9717         * bus/connection.c (bus_connection_get_groups): return an error
9718         explaining the problem
9719
9720         * bus/bus.c (bus_context_check_security_policy): implement
9721         restriction here that inactive connections can only send the
9722         hello message. Also, allow bus driver to send anything to
9723         any recipient.
9724
9725         * bus/connection.c (bus_connection_complete): create the
9726         BusClientPolicy here instead of on-demand.
9727         (bus_connection_get_policy): don't return an error
9728
9729         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9730         sender field in message being replied to
9731
9732         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9733         causing it to return FALSE always
9734
9735         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9736         we checked sender rather than destination
9737
9738 2003-04-25  Havoc Pennington  <hp@redhat.com>
9739
9740         test suite is slightly hosed at the moment, will fix soon
9741
9742         * bus/connection.c (bus_connections_expire_incomplete): fix to
9743         properly disable the timeout when required
9744         (bus_connection_set_name): check whether we can remove incomplete
9745         connections timeout after we complete each connection.
9746
9747         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9748         probably still broken.
9749
9750         * bus/services.c (bus_registry_acquire_service): implement max
9751         number of services owned, and honor allow/deny rules on which
9752         services a connection can own.
9753
9754         * bus/connection.c (bus_connection_get_policy): report errors here
9755
9756         * bus/activation.c: implement limit on number of pending
9757         activations
9758
9759 2003-04-25  Havoc Pennington  <hp@redhat.com>
9760
9761         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9762         where we used >= 0 instead of != DBUS_UID_UNSET.
9763
9764 2003-04-25  Havoc Pennington  <hp@redhat.com>
9765
9766         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9767         were toggled without add/remove, fix from Anders Gustafsson
9768
9769 2003-04-24  Havoc Pennington  <hp@redhat.com>
9770
9771         * test/data/valid-config-files/basic.conf: add <limit> tags to
9772         this test
9773
9774         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9775         <limit> tag in configuration file.
9776
9777 2003-04-24  Havoc Pennington  <hp@redhat.com>
9778
9779         * bus/dispatch.c: somehow missed some name_is
9780
9781         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9782         (_dbus_timeout_set_interval): new
9783
9784         * bus/connection.c (bus_connections_setup_connection): record time
9785         when each connection is first set up, and expire them after the
9786         auth timeout passes.
9787
9788 2003-04-24  Havoc Pennington  <hp@redhat.com>
9789
9790         * dbus/dbus-message.c (dbus_message_name_is): rename
9791         (dbus_message_service_is): rename
9792         (dbus_message_sender_is): rename
9793         (dbus_message_get_service): rename
9794
9795 2003-04-24  Havoc Pennington  <hp@redhat.com>
9796
9797         * configure.in: add --enable-checks
9798
9799         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9800
9801         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9802         to use thread locks.
9803         (_dbus_connection_handler_destroyed_locked): move some private
9804         functions into proper docs group
9805
9806         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9807         _dbus_return_val_if_fail
9808
9809         Throughout: use dbus_return_if_fail
9810
9811 2003-04-23  James Willcox  <jwillcox@gnome.org>
9812
9813         * glib/dbus-glib.h:
9814         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9815         (dbus_connection_setup_with_g_main),
9816         (dbus_server_setup_with_g_main):
9817         * glib/test-dbus-glib.c: (main):
9818         * glib/test-thread-client.c: (main):
9819         * glib/test-thread-server.c: (new_connection_callback), (main):
9820         * tools/dbus-monitor.c: (main):
9821
9822         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9823         and dbus_server_setup_with_g_main().
9824
9825 2003-04-20  Havoc Pennington  <hp@pobox.com>
9826
9827         * doc/dbus-specification.sgml: document the restrictions on
9828         message and service names
9829
9830 2003-04-22  Havoc Pennington  <hp@redhat.com>
9831
9832         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9833         support, and do some code cleanups to share more code and
9834         speed up array marshal/demarshal.
9835
9836         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9837
9838         * configure.in: generate dbus-arch-deps.h
9839
9840         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9841         64-bit typecodes
9842
9843 2003-04-22  Havoc Pennington  <hp@redhat.com>
9844
9845         * test/data/valid-messages/opposite-endian.message: fix test
9846         to use proper type for rply field
9847
9848         * test/data/invalid-messages: add tests for below validation
9849
9850         * dbus/dbus-message.c (decode_header_data): validate field types,
9851         and validate that named fields are valid names
9852         (decode_name_field): consider messages in the
9853         org.freedesktop.Local. namespace to be invalid.
9854
9855         * dbus/dbus-string.c (_dbus_string_validate_name): new
9856
9857 2003-04-19  Havoc Pennington  <hp@pobox.com>
9858
9859         * bus/driver.c (bus_driver_handle_hello): check limits and
9860         return an error if they are exceeded.
9861
9862         * bus/connection.c: maintain separate lists of active and inactive
9863         connections, and a count of each. Maintain count of completed
9864         connections per user. Implement code to check connection limits.
9865
9866         * dbus/dbus-list.c (_dbus_list_unlink): export
9867
9868         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9869         number of bytes in the message queue for a connection
9870
9871 2003-04-18  Havoc Pennington  <hp@pobox.com>
9872
9873         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9874
9875         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9876         memleaks
9877
9878         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9879         on realloc be sure to update the pointer in the keyring
9880
9881         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9882         offset to avoid writing to unallocated memory
9883
9884         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9885         try the next mechanism, so we properly handle OOM
9886
9887         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9888         on OOM.
9889         (_dbus_keyring_new): fix OOM bug
9890         (_dbus_keyring_new_homedir): always set error; impose a maximum
9891         number of keys we'll load from the file, mostly to speed up the
9892         test suite and make its OOM checks more useful, but also for
9893         general sanity.
9894
9895         * dbus/dbus-auth.c (process_error_server): reject authentication
9896         if we get an error from the client
9897         (process_cancel): on cancel, send REJECTED, per the spec
9898         (process_error_client): send CANCEL if we get an error from the
9899         server.
9900
9901 2003-04-18  Havoc Pennington  <hp@pobox.com>
9902
9903         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9904         debug spew
9905
9906         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9907         handling problem
9908
9909         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9910         about DBUS_TEST_HOMEDIR once
9911
9912         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9913         the environment
9914
9915         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9916         config file so we test the right thing
9917
9918         Throughout: assorted docs improvements
9919
9920 2003-04-18  Havoc Pennington  <hp@pobox.com>
9921
9922         * glib/dbus-gmain.c: adapt to watch changes
9923
9924         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9925
9926         * dbus/dbus-server.h: remove dbus_server_handle_watch
9927
9928         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9929
9930         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9931         like DBusTimeout, so we don't need dbus_connection_handle_watch
9932         etc.
9933
9934 2003-04-17  Havoc Pennington  <hp@redhat.com>
9935
9936         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9937         database usage so it all goes via the DBusUserDatabase cache.
9938
9939 2003-04-17  Havoc Pennington  <hp@redhat.com>
9940
9941         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9942         there was an OOM watch we skipped, we always return TRUE so we
9943         iterate again to have a look at it again. Fixes test suite hang.
9944         Code rearrangement also lets us lose some memset and only iterate
9945         over callbacks once.
9946
9947         * bus/driver.c (bus_driver_handle_message): sense of test for
9948         reply was backward
9949
9950 2003-04-16  Havoc Pennington  <hp@pobox.com>
9951
9952         * doc/dbus-specification.sgml: make spec say serials are unsigned
9953
9954         * dbus/dbus-message.h: change message serials to unsigned
9955
9956         * dbus/dbus-connection.c: adapt to message serials being unsigned
9957
9958 2003-04-15  Havoc Pennington  <hp@pobox.com>
9959
9960         * bus/bus.c: create and keep around a shared DBusUserDatabase
9961         object.
9962
9963         * bus/connection.c (bus_connection_get_groups): don't cache
9964         groups for user in the connection object, since user database
9965         object now does that.
9966
9967 2003-04-16  Havoc Pennington  <hp@redhat.com>
9968
9969         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9970         list of size counters
9971         (_dbus_message_loader_putback_message_link): put back a popped link
9972
9973         * dbus/dbus-connection.c
9974         (dbus_connection_set_max_live_messages_size): rename
9975         max_received_size
9976         (dbus_connection_get_outgoing_size): get size of outgoing
9977         queue
9978         (_dbus_connection_set_connection_counter): remove this cruft
9979
9980 2003-04-14  Havoc Pennington  <hp@redhat.com>
9981
9982         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9983         caching, but at some point we might want to be able to use a
9984         different database.
9985
9986         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9987         SHA1 conf file to test the sha1 auth mechanism, since the regular
9988         test always uses EXTERNAL when available.
9989
9990         * configure.in,
9991         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9992         add conf file that requires use of sha1 auth
9993
9994 2003-04-13  Havoc Pennington  <hp@pobox.com>
9995
9996         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9997         from Philip Blundell to send messages and monitor them.
9998
9999 2003-04-13  Havoc Pennington  <hp@pobox.com>
10000
10001         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10002         callbacks
10003
10004         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10005         users
10006
10007         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10008         fix to only recover unused bytes if we're already authenticated
10009         (_dbus_transport_get_is_authenticated): fix to still mark us
10010         authenticated if there are unused bytes.
10011
10012         * bus/dispatch.c: implement security policy checking
10013
10014         * bus/connection.c (bus_transaction_send_from_driver): new
10015
10016         * bus/bus.c (bus_context_check_security_policy): new
10017
10018         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10019         now we just set the DBusError and it gets converted to an error
10020         reply.
10021
10022         * bus/connection.c (allow_user_function): enable code using actual
10023         data from the config file
10024
10025         * bus/policy.c (list_allows_user): handle wildcard rules for
10026         user/group connection perms
10027
10028 2003-04-13  Havoc Pennington  <hp@pobox.com>
10029
10030         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10031
10032         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10033
10034         * bus/policy.c (bus_policy_append_mandatory_rule)
10035         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10036         (bus_policy_append_group_rule): new functions
10037
10038 2003-04-12  Havoc Pennington  <hp@pobox.com>
10039
10040         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10041
10042         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10043         the pid/gid/uid, just for paranoia.
10044
10045         * test/break-loader.c (randomly_do_n_things): find a byte
10046         containing a type code, and randomly change it to a different
10047         type code.
10048
10049 2003-04-12  Havoc Pennington  <hp@pobox.com>
10050
10051         * bus/policy.h: change BusPolicy to be the thing from the config
10052         file, and rename old BusPolicy to BusClientPolicy
10053
10054         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10055         match change in how policy works
10056
10057         * dbus/dbus-internals.h: mark assert_not_reached as
10058         __attribute((noreturn))__
10059
10060 2003-04-11  Havoc Pennington  <hp@redhat.com>
10061
10062         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10063         the broadcast service. Use boolean return for ServiceExists.
10064
10065 2003-04-11  Havoc Pennington  <hp@redhat.com>
10066
10067         * configure.in: add another directory to look for qt in.
10068
10069 2003-04-11  Havoc Pennington  <hp@redhat.com>
10070
10071         * AUTHORS: add Colin Walters
10072
10073 2003-04-11  Havoc Pennington  <hp@redhat.com>
10074
10075         * NEWS: update
10076
10077         * configure.in: 0.9
10078
10079 2003-04-11  Havoc Pennington  <hp@redhat.com>
10080
10081         * bus/messagebus.in: remove pid file when stopping the
10082         message bus, since the bus won't have privileges to remove it
10083         itself.
10084
10085 2003-04-11  Havoc Pennington  <hp@redhat.com>
10086
10087         * bus/bus.c (bus_context_new): move credentials change after
10088         creating pidfile
10089
10090 2003-04-11  Havoc Pennington  <hp@pobox.com>
10091
10092         * test/decode-gcov.c: add "below average functions" to the
10093         coverage report, and change how some of the code works.
10094
10095         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10096         not in the coverage stats.
10097
10098         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10099         couple places so running the test suite doesn't result in megaspam.
10100
10101 2003-04-11  Havoc Pennington  <hp@pobox.com>
10102
10103         * bus/dispatch.c (check_existent_service_activation): accept a no
10104         memory error in a place we didn't before
10105
10106         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10107         in case the first one failed," since the test suite is less
10108         broken now.
10109
10110 2003-04-10  Havoc Pennington  <hp@pobox.com>
10111
10112         * bus/dispatch.c (check_segfault_service_activation): add test
10113         for launching an executable that just crashes.
10114
10115         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10116         don't leave a million cores. We'll see how portable this is.
10117
10118 2003-04-10  Havoc Pennington  <hp@pobox.com>
10119
10120         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10121         the possible parent failures before we fork, so that we don't
10122         fail to create a babysitter after creating the child.
10123
10124         * bus/activation.c (bus_activation_activate_service): kill child
10125         if we don't successfully complete the activation.
10126
10127 2003-04-10  Havoc Pennington  <hp@redhat.com>
10128
10129         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10130         the connection if it's disconnected
10131
10132         * bus/activation.c (bus_activation_service_created): use new
10133         transaction features to roll back removal of pending activation if
10134         we don't successfully create the service after all. Don't remove
10135         pending activation if the function fails.
10136
10137         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10138         (_dbus_list_insert_after_link): new code to facilitate
10139         services.c fixes
10140
10141         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10142         new functionality, so we can preallocate the ability to insert
10143         into a hash table.
10144
10145         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10146         allowing us to put custom hooks in a transaction to be used for
10147         cancelling said transaction
10148
10149         * doc/dbus-specification.sgml: add some discussion of secondary
10150         service owners, and disallow zero-length service names
10151
10152         * bus/services.c (bus_registry_acquire_service): new function,
10153         splits out part of bus_driver_handle_acquire_service() and fixes
10154         a bug where we didn't remove the service doing the acquiring
10155         from the secondary queue if we failed to remove the current owner
10156         from the front of the queue.
10157
10158 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10159
10160         * doc/dbus-specification.sgml:
10161         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10162
10163 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10164
10165         * bus/.cvsignore:
10166         * glib/.cvsignore:
10167         * test/.cvsignore:
10168         Added files to cvsignore
10169
10170         * dbus/dbus-message.h:
10171         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10172         Make get_named() take two out argument and return a boolean.
10173         (dbus_message_iter_get_args_valist):
10174         Update usage of get_named().
10175         (dbus_message_iter_append_byte):
10176         Fix typo
10177         (dbus_message_iter_append_named)
10178         Fix typo
10179         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10180         More tests.
10181
10182 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10183
10184         * dbus/dbus-marshal.[ch]:
10185         Add array_type_pos argument to _dbus_marshal_validate_arg.
10186         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10187
10188         * dbus/dbus-message.[ch]:
10189         Multi-dimensional arrays have full type specification in the
10190         outermost array. Iter code re-arranged to handle this.
10191         Added some more iter tests.
10192
10193         * doc/dbus-specification.sgml:
10194         Add me to authors.
10195         Remove old FIXME.
10196         Update new array encoding description.
10197         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10198
10199         * test/data/invalid-messages/array-with-mixed-types.message:
10200         * test/data/valid-messages/array-of-array-of-uint32.message:
10201         Change to the new array format.
10202
10203         * test/data/invalid-messages/too-short-dict.message:
10204         Fix bug in test.
10205
10206         * test/data/valid-messages/recursive-types.message:
10207         Fix up and extend test.
10208
10209 2003-04-10  Havoc Pennington  <hp@pobox.com>
10210
10211         * bus/dispatch.c: lots of fixes
10212
10213         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10214         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10215         that was crack, broke the test service.
10216
10217         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10218         handling to avoid piling up errors if we get a failure on the
10219         first address.
10220
10221         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10222         pid in assertion failures.
10223
10224         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10225         to some fixed size of file descriptor array. Don't return TRUE
10226         anytime a timeout exists, that led to lots of busy loop silliness
10227         in the tests.
10228
10229 2003-04-09  Havoc Pennington  <hp@redhat.com>
10230
10231         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10232         I'd checked this in earlier but hadn't.
10233
10234 2003-04-09  Havoc Pennington  <hp@redhat.com>
10235
10236         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10237         the activation test (man this is getting old!)
10238
10239 2003-04-09  Havoc Pennington  <hp@redhat.com>
10240
10241         * test/test-utils.c: use dispatch status function to fix this up
10242
10243         * bus/connection.c (connection_watch_callback): don't dispatch
10244         from here
10245         (connection_timeout_callback): don't dispatch from here
10246         (bus_connections_setup_connection): set the dispatch status function
10247         (bus_connection_disconnected): unset it
10248
10249         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10250         used to add a connection to be dispatched
10251         (_dbus_loop_iterate): do the dispatching at the end of each
10252         iteration
10253
10254         * dbus/dbus-connection.c
10255         (dbus_connection_set_dispatch_status_function): new function
10256         allowing us to fix up main loop usage
10257         (_dbus_connection_last_unref): free all the various function
10258         user data
10259         (dbus_connection_dispatch): call the DispatchStatusFunction
10260         whenever this function returns
10261         (dbus_connection_handle_watch): call DispatchStatusFunction
10262         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10263         (reply_handler_timeout): call DispatchStatusFunction
10264         (dbus_connection_flush): call DispatchStatusFunction
10265
10266 2003-04-09  Havoc Pennington  <hp@redhat.com>
10267
10268         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10269         a memory leak
10270
10271         * bus/dispatch.c (check_service_activated): fix bug in test
10272
10273         * dbus/dbus-mainloop.c (check_timeout): fix this up
10274
10275         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10276         verbose output so we can sort out output from different processes,
10277         e.g. in the activation case.
10278
10279 2003-04-08  Colin Walters  <walters@gnu.org>
10280
10281         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10282         the pid file.
10283         (bus_context_new): Set it.
10284         (bus_context_unref): Use it to delete the pid file.
10285
10286 2003-04-08  Havoc Pennington  <hp@redhat.com>
10287
10288         * test/data/invalid-messages/array-with-mixed-types.message:
10289         regression test that fails for the moment
10290
10291         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10292         tests for convenience
10293
10294         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10295         array of nil, it broke things.
10296
10297         * test/data/invalid-messages/array-of-nil.message: regression test
10298
10299         * test/data/valid-messages/array-of-array-of-uint32.message:
10300         happened to write this so added it to suite
10301
10302 2003-04-08  Havoc Pennington  <hp@redhat.com>
10303
10304         * bus/driver.c (bus_driver_handle_acquire_service): init
10305         retval/reply before checking name
10306
10307         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10308         recursion depth argument
10309
10310         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10311         in the public struct for future extension
10312
10313         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10314         typo
10315
10316         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10317         message
10318
10319         * doc/dbus-specification.sgml: fix typo
10320
10321 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10322
10323         Implemented recursive types, named types and new-style iters
10324
10325         * bus/driver.c:
10326         * glib/test-thread-client.c: (thread_func):
10327         * glib/test-thread-server.c: (handle_test_message):
10328         * test/test-service.c: (handle_echo):
10329         Update to new api
10330
10331         * dbus/Makefile.am:
10332         * dbus/dbus-dict.c:
10333         * dbus/dbus-dict.h:
10334         * dbus/dbus.h
10335         Remove DBusDict
10336
10337         * dbus/dbus-internals.c: (_dbus_type_to_string):
10338         Update for new types.
10339
10340         * dbus/dbus-marshal.[ch]:
10341         Implement recursive types and the new marshalling format.
10342         Remove hardcoded dict marshalling.
10343         Marshal named types.
10344
10345         * dbus/dbus-message-builder.c:
10346         Add BYTE_ARRAY.
10347         Remove references to old types
10348
10349         * dbus/dbus-message.[ch]:
10350         New non-refcounted iter API that supports recursive iters.
10351         Use iters for appending, including support for recursive
10352         iters.
10353         Add byte and named type support.
10354         Update everything to new marshalling formats.
10355         Add tests for new API.
10356
10357         * dbus/dbus-protocol.h:
10358         Remove old array types.
10359         Add types: BYTE, ARRAY, DICT, NAMED
10360
10361         * dbus/dbus-string.c:
10362         * dbus/dbus-sysdeps.c:
10363         Make parse_double locale safe.
10364
10365         * dbus/dbus-test-main.c:
10366         Call setlocale.
10367
10368         * dbus/dbus-test.c:
10369         Kill dict test
10370
10371         * doc/dbus-specification.sgml:
10372         Update spec
10373
10374         * test/data/incomplete-messages/missing-body.message:
10375         * test/data/invalid-messages/bad-boolean.message:
10376         * test/data/invalid-messages/bad-boolean-array.message:
10377         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10378         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10379         * test/data/invalid-messages/too-short-dict.message:
10380         * test/data/valid-messages/dict-simple.message:
10381         * test/data/valid-messages/dict.message:
10382         * test/data/valid-messages/emptiness.message:
10383         * test/data/valid-messages/lots-of-arguments.message:
10384         * test/data/valid-messages/no-padding.message:
10385         * test/data/valid-messages/recursive-types.message:
10386         Add missing NAME fields
10387         Fix up dicts & arrays
10388
10389         * test/data/invalid-messages/dict-with-nil-value.message:
10390         Removed, this is not invalid anymore.
10391
10392         * test/data/valid-messages/recursive-types.message:
10393         Add new test for deeply recursive types.
10394
10395 2003-04-07  Havoc Pennington  <hp@pobox.com>
10396
10397         * bus/driver.c (bus_driver_handle_acquire_service): return an
10398         error if you try to acquire a service that starts with ':'
10399
10400 2003-04-07  Havoc Pennington  <hp@redhat.com>
10401
10402         * doc/dbus-specification.sgml: require that base service names
10403         start with ':' and that the base service is created/deleted
10404         as first and last things a connection does on the bus
10405
10406         * bus/dispatch.c (check_existent_service_activation): lots more
10407         work on the activation test; it doesn't fully pass yet...
10408
10409         * test/test-service.c (main): fix so we don't memleak the
10410         connection to the message bus
10411         (filter_func): accept a message asking us to exit
10412
10413 2003-04-06  Havoc Pennington  <hp@pobox.com>
10414
10415         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10416         from Colin Walters
10417
10418         * configure.in: fixes to Qt detection from Colin Walters
10419
10420         * doc/Makefile.am: Only remove generated docbook dirs if they
10421         exist, from Colin Walters
10422
10423         * dbus/dbus-bus.c: change how we set well-known connections to
10424         NULL, so that it works if a single connection is stored in
10425         two well-known array slots.
10426
10427         * test/Makefile.am: remove a lot of stuff that isn't immediately
10428         useful, it's in CVS history if we want it.
10429
10430         * test/test-service.c: use dbus-mainloop instead of that
10431         watch.[hc] crack
10432
10433 2003-04-06  Havoc Pennington  <hp@pobox.com>
10434
10435         * dbus/Makefile.am: split lists of sources into stuff that goes in
10436         the library, util functions that go in the lib and are also used
10437         elsewhere, and util functions that are used in tests/daemon but
10438         don't go in the lib.
10439
10440         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10441         here so it can be used in test binaries also
10442
10443 2003-04-06  Havoc Pennington  <hp@pobox.com>
10444
10445         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10446         here in the parent process, so we can return an error if it
10447         fails. Also, move some of the code into the child so the parent
10448         is less hosed if we fail midway through.
10449
10450         * bus/bus.c (bus_context_new): move pidfile detection further up
10451         in the function, before we start overwriting sockets and such.
10452
10453         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10454
10455         * configure.in: add --with-system-pid-file and --with-system-socket
10456
10457 2003-04-06  Colin Walters  <walters@verbum.org>
10458
10459         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10460
10461         * bus/system.conf.in: Declare a pidfile.
10462
10463         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10464         create one (if appropriate).
10465
10466         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10467         (struct BusConfigParser) [pidfile]: New.
10468         (element_type_to_name, merge_included, start_busconfig_child)
10469         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10470         (bus_config_parser_unref): Free it.
10471         (bus_config_parser_get_pidfile): New function.
10472
10473         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10474
10475         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10476
10477         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10478
10479         * dbus/dbus-sysdeps.h: Prototype it.
10480
10481 2003-04-06  Havoc Pennington  <hp@pobox.com>
10482
10483         * bus/bus.c (bus_context_new): print the address in here, rather
10484         than in main(), because we need to do it before forking the daemon
10485
10486         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10487         on the service nonexistent error
10488
10489         * bus/driver.c (bus_driver_handle_acquire_service): set the
10490         sender on the AcquireService reply
10491
10492         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10493         server also listen on a UNIX socket so services can connect to it.
10494
10495 2003-04-06  Havoc Pennington  <hp@pobox.com>
10496
10497         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10498         so it detects deadlocks and also we actually init threads when
10499         debugging.
10500
10501 2003-04-06  Havoc Pennington  <hp@pobox.com>
10502
10503         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10504         save the domain socket name, and unlink it when we disconnect the
10505         server. Means that at least when we exit normally, we won't leave
10506         a bunch of junk in /tmp
10507
10508         * dbus/dbus-transport-unix.c
10509         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10510         memory management). (I was making a real change here but then
10511         didn't)
10512
10513 2003-04-06  Havoc Pennington  <hp@pobox.com>
10514
10515         * bus/bus.c (bus_context_new): fix wrong handling of
10516         server_data_slot_unref() in the error case.
10517
10518         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10519         "(condition) != 0" to _dbus_real_assert so that
10520         "_dbus_assert (pointer)" doesn't cause a warning
10521
10522         * bus/main.c (main): accept --print-address option to print out
10523         the message bus address
10524
10525         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10526
10527         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10528         "tmpdir" option to unix: address on client side
10529
10530         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10531         to unix: address
10532
10533         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10534         we can use to create sockets in the test suite.
10535
10536         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10537         cleanly. To be used for testing.
10538
10539         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10540
10541         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10542
10543         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10544         handle trying to call this when there's no servers active
10545
10546 2003-04-05  Havoc Pennington  <hp@pobox.com>
10547
10548         * NEWS: update
10549
10550         * configure.in: 0.8
10551
10552 2003-04-05  Havoc Pennington  <hp@pobox.com>
10553
10554         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10555         crash on startup. Need to get "try starting the daemon"
10556         in the test suite I guess. ;-)
10557
10558         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10559         tracked the number of open connections; it's better done in
10560         application-specific code as you want it to span all servers etc.
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10565         patch from Colin Walters
10566
10567 2003-04-05  Havoc Pennington  <hp@pobox.com>
10568
10569         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10570         reality; in fact multiple mechanisms are allowed.
10571
10572         * dbus/dbus-internals.c (_dbus_real_assert)
10573         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10574         _dbus_assert_not_reached() into functions, so that they don't show
10575         up in basic block counts for test coverage, and don't use up as
10576         much disk space. Does mean slower execution speed though, so
10577         assumes --disable-asserts is the normal production case.
10578
10579 2003-04-05  Havoc Pennington  <hp@pobox.com>
10580
10581         * test/Makefile.am (dist-hook): also dist *.in files
10582
10583         * NEWS: update
10584
10585         * configure.in: 0.7
10586
10587 2003-04-05  Havoc Pennington  <hp@pobox.com>
10588
10589         * dbus/dbus-string.c: docs warning
10590
10591         * dbus/dbus-spawn.c: missing docs
10592
10593         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10594
10595 2003-04-05  Havoc Pennington  <hp@pobox.com>
10596
10597         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10598         magic from GLib
10599
10600         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10601         to -1 once we've reaped the babysitter
10602         (_dbus_babysitter_handle_watch): do as much work as we can, not
10603         just one go of it
10604
10605         * bus/activation.c: add code using DBusBabysitter so that we
10606         handle it when a service fails to start up properly.
10607         (bus_activation_service_created): don't remove the activation
10608         entries as we go, just let them get removed when we free the pending
10609         activation. Unref reply messages after sending them.
10610
10611 2003-04-05  Havoc Pennington  <hp@pobox.com>
10612
10613         * test/decode-gcov.c (main): print per-directory stats in the report
10614
10615         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10616
10617 2003-04-05  Havoc Pennington  <hp@pobox.com>
10618
10619         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10620
10621         * test/decode-gcov.c: hack up a little program to suck data
10622         out of gcov files. Yes this is sort of silly.
10623
10624         * configure.in: define something in config.h and do an
10625         AM_CONDITIONAL when gcov is enabled
10626
10627 2003-04-04  Havoc Pennington  <hp@redhat.com>
10628
10629         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10630         return a "babysitter" object that is used to monitor the status of
10631         the spawned process and reap it when required.
10632
10633         * test/test-segfault.c, test/test-exit.c,
10634         test/test-sleep-forever.c: binaries that do various lame things,
10635         used in the test suite.
10636
10637         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10638
10639 2003-04-03  Havoc Pennington  <hp@pobox.com>
10640
10641         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10642         in preparation for modifying it, dbus-sysdeps is getting
10643         a bit unmanageable.
10644
10645 2003-04-03  Havoc Pennington  <hp@redhat.com>
10646
10647         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10648         have multiple ones
10649
10650         * bus/*.[hc]: adapt to mainloop change
10651
10652 2003-04-03  Havoc Pennington  <hp@redhat.com>
10653
10654         * bus/activation.c (load_directory): fix up memleaks
10655         (bus_activation_entry_free): free the entry
10656
10657         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10658         we get one from the message bus; fix memleaks.
10659
10660         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10661
10662 2003-04-03  Havoc Pennington  <hp@pobox.com>
10663
10664         * bus/config-parser.c (bus_config_parser_unref): free
10665         list of mechanisms, bug discovered by test suite enhancements
10666         (putting system.conf and session.conf into suite)
10667
10668         * test/Makefile.am, test/test-service.c: add placeholder for a
10669         test service that we'll activate as part of test suite. Doesn't
10670         do anything yet.
10671
10672         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10673         setting NULL value, and use system malloc not dbus_malloc()
10674         when we have unavoidable memleakage.
10675
10676         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10677         didn't work, and support DBUS_BUS_ACTIVATION.
10678
10679         * bus/activation.c (child_setup): pass our well-known bus type to
10680         the child
10681
10682         * bus/config-parser.c: support <type> to specify well-known type
10683
10684         * doc/dbus-specification.sgml: document the env variables to
10685         locate well-known buses and find service activator
10686
10687 2003-04-02  Havoc Pennington  <hp@redhat.com>
10688
10689         * test/Makefile.am (all-local): add a rule to copy tests to
10690         builddir, so we can have generated tests. Use this to remove the
10691         silly hack for testing system.conf and session.conf. Will use this
10692         shortly to generate .service files pointing to test binaries.
10693
10694 2003-04-02  Havoc Pennington  <hp@redhat.com>
10695
10696         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10697         current alloc and needed new length, not max of the doubled
10698         allocation and needed new length. Also, when building tests,
10699         don't do the double-allocation stuff, just realloc every time.
10700
10701 2003-04-02  Havoc Pennington  <hp@redhat.com>
10702
10703         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10704         in error messages
10705         (_dbus_string_get_dirname): new
10706         (_dbus_sysdeps_test): new
10707         (_dbus_directory_open): include dirnames in error messages
10708
10709         * bus/config-parser.c: interpret <include> and <includedir> and
10710         <servicedir> relative to config file location if the given
10711         filename is not absolute.
10712
10713         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10714
10715 2003-04-02  Havoc Pennington  <hp@redhat.com>
10716
10717         * bus/connection.c (bus_transaction_send_error_reply): set sender
10718         service for the error, and unref the reply on success
10719
10720         * bus/activation.c: convert to use BusTransaction so OOM can be
10721         handled correctly
10722         (bus_activation_service_created): set sender of the message
10723
10724 2003-04-01  Havoc Pennington  <hp@redhat.com>
10725
10726         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10727         <includedir> (at least mostly)
10728
10729         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10730         first, then the user ID
10731
10732 2003-04-01  Havoc Pennington  <hp@pobox.com>
10733
10734         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10735         function
10736
10737         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10738
10739         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10740
10741         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10742         socket 0777, and unlink any existing socket.
10743
10744         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10745         the configuration file so specifies; set up auth mechanism
10746         restrictions
10747
10748         * bus/config-parser.c (bus_config_parser_content): add support
10749         for <fork> option and fill in code for <auth>
10750
10751         * bus/system.conf.in: add <fork/> to default configuration,
10752         and limit auth mechanisms to EXTERNAL
10753
10754         * doc/config-file.txt (Elements): add <fork>
10755
10756         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10757         (_dbus_change_identity): new function
10758
10759 2003-03-31  Havoc Pennington  <hp@redhat.com>
10760
10761         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10762         (_dbus_listen_unix_socket): fix off-by-one error in null
10763         termination spotted by Nalin
10764
10765 2003-03-31  Havoc Pennington  <hp@redhat.com>
10766
10767         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10768         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10769         having a real home directory available.
10770
10771 2003-03-31  Havoc Pennington  <hp@redhat.com>
10772
10773         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10774
10775         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10776
10777         * configure.in: add support for specifying a style of init script
10778         to install
10779
10780 2003-03-31  Havoc Pennington  <hp@redhat.com>
10781
10782         Fix some annoying DBusString API and fix all affected code.
10783
10784         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10785         max_length argument
10786         (_dbus_string_get_data): change to return string instead of using
10787         an out param
10788         (_dbus_string_get_const_data): ditto
10789         (_dbus_string_get_data_len): ditto
10790         (_dbus_string_get_const_data_len): ditto
10791
10792 2003-03-31  Havoc Pennington  <hp@redhat.com>
10793
10794         * bus/main.c (main): fix up the command line arguments to be nicer
10795
10796 2003-03-31  Havoc Pennington  <hp@redhat.com>
10797
10798         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10799         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10800         final location that lands in the config file
10801
10802         * bus/config-loader-expat.c (bus_config_load): fix type of
10803         XML_Parser variable
10804
10805         * doc/TODO: remove TODO item for dbus_bus_get()
10806
10807         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10808
10809 2003-03-31  Havoc Pennington  <hp@pobox.com>
10810
10811         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10812         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10813         argument since they are always client side
10814
10815         * dbus/dbus-server.c (dbus_server_get_address): new function
10816
10817         * bus/main.c (main): take the configuration file as an argument.
10818
10819         * test/data/valid-config-files/debug-allow-all.conf: new file to
10820         use with dispatch.c tests for example
10821
10822         * bus/test-main.c (main): require test data dir
10823
10824         * bus/bus.c (bus_context_new): change this to take a
10825         configuration file name as argument
10826
10827         * doc/config-file.txt (Elements): add <servicedir>
10828
10829         * bus/system.conf, bus/session.conf: new files
10830
10831         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10832         well-known socket if none set
10833
10834         * configure.in: create system.conf and session.conf
10835
10836 2003-03-30  Havoc Pennington  <hp@pobox.com>
10837
10838         * bus/config-parser.c: hacking
10839
10840         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10841         to shut down, since it could cause weirdness with the DBusList
10842         lock
10843
10844         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10845         link-oriented stack routines
10846         (alloc_link): free the mempool if the first alloc from it fails
10847
10848         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10849
10850         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10851         from GLib
10852         (_dbus_string_skip_white): new
10853
10854         * doc/config-file.txt (Elements): add <includedir>
10855
10856 2003-03-28  Havoc Pennington  <hp@pobox.com>
10857
10858         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10859         (_dbus_string_copy_data): new functions
10860
10861 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10862
10863         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10864         * dbus/dbus-bus.h:
10865         Add dbus_bus_get.
10866
10867         * dbus/dbus-memory.c:
10868         Fix a doc comment.
10869
10870 2003-03-28  Havoc Pennington  <hp@pobox.com>
10871
10872         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10873         I think it may have just been superstition. Not sure.
10874
10875         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10876         failures that were not being handled.
10877
10878         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10879
10880         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10881         row that will fail on out-of-memory.
10882
10883         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10884         function for testing out-of-memory handling.
10885
10886         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10887         allocation functions, they do map exactly to the expat ones.
10888
10889 2003-03-27  Havoc Pennington  <hp@redhat.com>
10890
10891         * bus/config-loader-libxml.c (bus_config_load): add another error
10892         check
10893
10894 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10895
10896         * doc/TODO:
10897         Add note about automatic service activation.
10898
10899         * doc/dbus-specification.sgml:
10900         Rename the specification and clarify a few things.
10901
10902 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10903
10904         * Doxyfile.in:
10905         * dbus/dbus-address.c:
10906         * dbus/dbus-dict.c:
10907         * dbus/dbus-marshal.c:
10908         * dbus/dbus-server-debug-pipe.c:
10909         * dbus/dbus-transport-unix.c:
10910         Fix documentation warnings.
10911
10912 2003-03-26  Havoc Pennington  <hp@pobox.com>
10913
10914         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10915         after every test so it's quick and easy to see which leaked, and
10916         so we test multiple dbus_shutdown() calls
10917
10918         * configure.in: change configure.in XML stuff to also support
10919         expat
10920
10921         * config-loader-libxml.c: some hacking
10922
10923         * config-loader-expat.c: some hacking
10924
10925         * config-parser.c: some hacking, plus tests
10926
10927 2003-03-25  Havoc Pennington  <hp@redhat.com>
10928
10929         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10930
10931         * configure.in: add --with-xml option to specify XML library,
10932         right now only libxml is supported.
10933
10934         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10935         nonworking code between home and work, still just stubs
10936
10937 2003-03-24  Havoc Pennington  <hp@redhat.com>
10938
10939         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10940         file
10941
10942         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10943         NULL argument for "message" if the error is a well-known one,
10944         fill in a generic message in this case.
10945
10946         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10947         favor of DBusError
10948
10949         * bus/test.c (bus_test_flush_bus): add
10950
10951         * bus/policy.c (bus_policy_test): test code stub
10952
10953 2003-03-24  Havoc Pennington  <hp@pobox.com>
10954
10955         * bus/connection.c (bus_connections_setup_connection): set up
10956         the "can this user connect" function, but it always returns
10957         TRUE until we have a config file parser so we can have a config
10958         file that allows connections.
10959
10960 2003-03-23  Havoc Pennington  <hp@pobox.com>
10961
10962         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10963         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10964         the mutex, so we can check for proper memory management
10965         and OOM handling.
10966
10967         * dbus/dbus-dataslot.c: remove the mutex from
10968         DBusDataSlotAllocator and lock it manually when using it,
10969         to simplify fitting it into the global slots framework.
10970
10971         * dbus/dbus-threads.c (init_static_locks): rework how we're
10972         handling global locks so they are easily shut down.
10973
10974         * bus/policy.c (bus_policy_append_rule): fix
10975
10976         * bus/test-main.c (main): check for memleaks
10977
10978         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10979         test suite check for memleaks
10980
10981         * dbus/dbus-memory.c: add support in test mode for tracking
10982         number of outstanding blocks
10983
10984 2003-03-23  Havoc Pennington  <hp@pobox.com>
10985
10986         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10987         policies code
10988
10989         * dbus/dbus-hash.h: add ULONG hash keys
10990
10991         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10992         (_dbus_get_group_id): new function
10993
10994 2003-03-20  Havoc Pennington  <hp@redhat.com>
10995
10996         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10997         new function
10998         (dbus_connection_get_unix_user): new function
10999
11000 2003-03-20  Havoc Pennington  <hp@pobox.com>
11001
11002         * bus/connection.c (bus_connection_send_oom_error): assert that
11003         message has a sender
11004         (connection_execute_transaction): ditto
11005         (bus_connection_preallocate_oom_error): fix to set the sender, and
11006         set recipient to the destination service, not the bus driver
11007
11008         * bus/policy.c: hacking
11009
11010         * dbus/dbus-message.c (dbus_message_service_is): new function
11011         (dbus_message_sender_is): new
11012
11013 2003-03-19  Havoc Pennington  <hp@redhat.com>
11014
11015         * bus/policy.c: start sketching code for policy restrictions on
11016         what connections can do.
11017
11018 2003-03-18  Havoc Pennington  <hp@redhat.com>
11019
11020         * doc/TODO: some notes on high-level todo items. Little nitpick
11021         stuff is all in @todo, so no need to add it here.
11022
11023         * doc/config-file.txt: some notes on how config file might look
11024
11025 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11026
11027         * configure.in: 0.6
11028
11029         * NEWS: Update.
11030
11031 2003-03-17  Havoc Pennington  <hp@redhat.com>
11032
11033         * dbus/dbus-internals.h: add gcc attributes so that
11034         our printf-style functions warn on bad arguments to
11035         format
11036
11037         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11038         format bug
11039
11040         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11041         printf format bug
11042
11043 2003-03-17  Havoc Pennington  <hp@redhat.com>
11044
11045         * bus/test-main.c (main): make it print something as it runs
11046         so make check doesn't look stuck
11047
11048         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11049         from CVS, now obsolete
11050
11051 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11052
11053         * bus/dispatch.c: (bus_dispatch):
11054         Refetch the service name since it may have been reallocated
11055         when dbus_message_set_sender was called.
11056
11057         * dbus/dbus-sysdeps.c: (_dbus_accept):
11058         Add address and address length variables and use them to stop
11059         valgrind from complaining.
11060
11061 2003-03-17  Havoc Pennington  <hp@pobox.com>
11062
11063         All tests pass, no memleaks, no valgrind complaints.
11064
11065         * bus/test.c: refcount handler_slot
11066
11067         * bus/connection.c (bus_connections_new): refcount
11068         connection_data_slot
11069
11070         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11071         bytes so that auth scripts pass.
11072
11073         * bus/dispatch.c: init message_handler_slot so it gets allocated
11074         properly
11075
11076         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11077
11078         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11079         dealloc server_pipe_hash when no longer used for benefit of
11080         leak checking
11081
11082         * dbus/dbus-auth.c (process_command): memleak fix
11083
11084         * bus/dispatch.c (check_hello_message): memleak fix
11085
11086 2003-03-16  Havoc Pennington  <hp@pobox.com>
11087
11088         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11089
11090 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11091
11092         * bus/activation.c (bus_activation_activate_service): Append
11093         the pending activation entry to the list of pending activations.
11094
11095 2003-03-16  Havoc Pennington  <hp@pobox.com>
11096
11097         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11098         connections
11099
11100         * dbus/dbus-address.c (create_entry): fix OOM handling when
11101         failing to alloc entry->method
11102
11103 2003-03-16  Havoc Pennington  <hp@pobox.com>
11104
11105         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11106         the watch
11107
11108         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11109         add some missing dbus_set_result
11110
11111         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11112         alloc the DBusMessageHandler
11113
11114         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11115         the transport here, since we call this from the finalizer; it
11116         resulted in a double-finalize.
11117
11118         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11119         where we tried to use transport->connection that was NULL,
11120         happened when transport was disconnected early on due to OOM
11121
11122         * bus/*.c: adapt to handle OOM for watches/timeouts
11123
11124         * dbus/dbus-transport-unix.c: port to handle OOM during
11125         watch handling
11126
11127         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11128         reference to unused bytes instead of a copy
11129
11130         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11131         out of memory
11132
11133         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11134         FALSE on OOM
11135
11136         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11137         of memory
11138
11139 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11140
11141         * doc/dbus-specification.sgml:
11142         Document reply message for ActivateService.
11143
11144 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11145
11146         * bus/activation.c: (bus_pending_activation_entry_free),
11147         (bus_pending_activation_free), (bus_activation_new),
11148         (bus_activation_unref), (bus_activation_service_created),
11149         (bus_activation_activate_service):
11150         * bus/activation.h:
11151         * bus/bus.c: (bus_context_new):
11152         * bus/desktop-file.c: (new_section):
11153         * bus/driver.c: (bus_driver_send_service_deleted),
11154         (bus_driver_handle_activate_service):
11155         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11156         * bus/services.h:
11157         * dbus/dbus-connection.c:
11158         (dbus_connection_send_with_reply_and_block):
11159         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11160         * dbus/dbus-protocol.h:
11161         Make activation work better. Now pending activations will be queued
11162         and the daemon won't try to activate services that are already registered.
11163
11164 2003-03-16  Havoc Pennington  <hp@pobox.com>
11165
11166         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11167         connection data
11168
11169         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11170         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11171
11172 2003-03-16  Havoc Pennington  <hp@pobox.com>
11173
11174         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11175         this. always run the test suite before commit...
11176
11177         * bus/*: adapt to DBusConnection API changes
11178
11179         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11180         requires renaming stuff to avoid dbus_connection_dispatch name
11181         conflict.
11182
11183         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11184         function
11185
11186         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11187         separate from _dbus_message_loader_return_buffer()
11188
11189         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11190         this, because it's now always broken to use; the number of
11191         messages in queue vs. the number still buffered by the message
11192         loader is undefined/meaningless. Should use
11193         dbus_connection_get_dispatch_state().
11194         (dbus_connection_dispatch): rename from
11195         dbus_connection_dispatch_message
11196
11197 2003-03-16  Havoc Pennington  <hp@pobox.com>
11198
11199         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11200         implementation
11201
11202 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11203
11204         * dbus/dbus-connection.c:
11205         (dbus_connection_send_with_reply_and_block):
11206         Decrease connection->n_incoming when removing an entry
11207         from the list.
11208         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11209         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11210         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11211         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11212         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11213         (dbus_dict_get_byte_array):
11214         Handle NULL arrays and strings. Also add support for byte arrays.
11215
11216         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11217         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11218         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11219         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11220         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11221         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11222         * dbus/dbus-marshal.h:
11223         Add support for marshalling and demarshalling empty arrays and strings.
11224
11225         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11226         (dbus_message_append_string_array),
11227         (dbus_message_iter_get_boolean),
11228         (dbus_message_iter_get_boolean_array),
11229         (dbus_message_iter_get_int32_array),
11230         (dbus_message_iter_get_uint32_array),
11231         (dbus_message_iter_get_double_array),
11232         (dbus_message_iter_get_byte_array),
11233         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11234         (check_message_handling):
11235         Add support for getting empty arrays and dicts.
11236
11237         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11238         Don't do any validation at all for now, that's better than just checking
11239         for ASCII.
11240
11241         * test/data/valid-messages/emptiness.message:
11242         New test message with lots of empty arrays.
11243
11244 2003-03-16  Havoc Pennington  <hp@pobox.com>
11245
11246         * dbus/dbus-connection.c
11247         (_dbus_connection_queue_received_message_link): new function that
11248         can't fail due to OOM
11249
11250         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11251         new function pops a message together with a list link
11252         containing it.
11253
11254         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11255         message queuing functions to avoid needing to alloc memory
11256
11257 2003-03-16  Havoc Pennington  <hp@pobox.com>
11258
11259         Oops - test code was only testing failure of around 30 of the
11260         mallocs in the test path, but it turns out there are 500+
11261         mallocs. I believe this was due to misguided linking setup such
11262         that there was one copy of dbus_malloc etc. in the daemon and one
11263         in the shared lib, and only daemon mallocs were tested. In any
11264         case, the test case now tests all 500+ mallocs, and doesn't pass
11265         yet, though there are lots of fixes in this patch.
11266
11267         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11268         this so that it doesn't need to allocate memory, since it
11269         has no way of indicating failure due to OOM (and would be
11270         annoying if it did).
11271
11272         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11273
11274         * bus/Makefile.am: rearrange to create two self-contained
11275         libraries, to avoid having libraries with overlapping symbols.
11276         that was resulting in weirdness, e.g. I'm pretty sure there
11277         were two copies of global static variables.
11278
11279         * dbus/dbus-internals.c: move the malloc debug stuff to
11280         dbus-memory.c
11281
11282         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11283         empty.
11284
11285         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11286
11287         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11288         on failure.
11289
11290         * bus/dispatch.c (bus_dispatch_add_connection): free
11291         message_handler_slot when no longer using it, so
11292         memory leak checkers are happy for the test suite.
11293
11294         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11295
11296         * bus/bus.c (new_connection_callback): disconnect in here if
11297         bus_connections_setup_connection fails.
11298
11299         * bus/connection.c (bus_connections_unref): fix to free the
11300         connections
11301         (bus_connections_setup_connection): if this fails, don't
11302         disconnect the connection, just be sure there are no side
11303         effects.
11304
11305         * dbus/dbus-string.c (undo_alignment): unbreak this
11306
11307         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11308         leaking
11309         (_dbus_auth_new): fix the order in which we free strings
11310         on OOM failure
11311
11312         * bus/connection.c (bus_connection_disconnected): fix to
11313         not send ServiceDeleted multiple times in case of memory
11314         allocation failure
11315
11316         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11317         get the base service name
11318         (dbus_bus_register_client): don't return base service name,
11319         instead store it on the DBusConnection and have an accessor
11320         function for it.
11321         (dbus_bus_register_client): rename dbus_bus_register()
11322
11323         * bus/dispatch.c (check_hello_message): verify that other
11324         connections on the bus also got the correct results, not
11325         just the one sending hello
11326
11327 2003-03-15  Havoc Pennington  <hp@pobox.com>
11328
11329         Make it pass the Hello handling test including all OOM codepaths.
11330         Now to do other messages...
11331
11332         * bus/services.c (bus_service_remove_owner): fix crash when
11333         removing owner from an empty list of owners
11334         (bus_registry_ensure): don't leave service in the list of
11335         a connection's owned services if we fail to put the service
11336         in the hash table.
11337
11338         * bus/connection.c (bus_connection_preallocate_oom_error): set
11339         error flag on the OOM error.
11340
11341         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11342         handle _dbus_transport_set_connection failure
11343
11344         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11345         to create watches up front and simply enable/disable them as
11346         needed.
11347         (unix_connection_set): this can now fail on OOM
11348
11349         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11350         of enabling/disabling a watch or timeout.
11351
11352         * bus/loop.c (bus_loop_iterate): don't touch disabled
11353         watches/timeouts
11354
11355         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11356
11357 2003-03-15  Havoc Pennington  <hp@pobox.com>
11358
11359         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11360         write useful test code, after all that futzing around ;-)
11361
11362         Test does not yet pass because we can't handle OOM in
11363         _dbus_transport_messages_pending (basically,
11364         dbus_connection_preallocate_send() does not prealloc the write
11365         watch). To fix this, I think we need to add new stuff to
11366         set_watch_functions, namely a SetEnabled function so we can alloc
11367         the watch earlier, then enable it later.
11368
11369         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11370         dbus-memory.c to the convenience lib
11371
11372         * bus/test.c: rename some static functions to keep them clearly
11373         distinct from stuff in connection.c. Handle client disconnection.
11374
11375 2003-03-14  Havoc Pennington  <hp@pobox.com>
11376
11377         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11378         transport, tests more of the real codepath. Set up clients
11379         with bus_setup_debug_client.
11380
11381         * bus/test.c (bus_setup_debug_client): function to set up debug
11382         "clients" on the main loop
11383
11384         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11385         support
11386
11387         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11388         server type
11389
11390         * dbus/dbus-server-debug.c: support a debug server based on pipes
11391
11392         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11393         (_dbus_close): new function
11394
11395         * configure.in: check for socketpair
11396
11397 2003-03-14  Havoc Pennington  <hp@redhat.com>
11398
11399         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11400         cheesy hack
11401
11402         * dbus/dbus-transport-debug.c: rework this a good bit to be
11403         less complicated. hopefully still works.
11404
11405         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11406         manually
11407
11408         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11409         after running it
11410
11411         * dbus/dbus-message.c (dbus_message_copy): rename from
11412         dbus_message_new_from_message, fix it up to copy
11413         all the message fields, add test case
11414
11415         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11416         not quite passing yet
11417
11418 2003-03-14  Havoc Pennington  <hp@pobox.com>
11419
11420         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11421         until no work remains" in test code. (the large diff here
11422         is just code movement, no actual changes)
11423
11424         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11425         1, no point waiting around for test code.
11426         (_dbus_server_debug_accept_transport): unref the timeout
11427         after adding it (right?)
11428
11429         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11430
11431 2003-03-13  Havoc Pennington  <hp@redhat.com>
11432
11433         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11434         out of memory
11435
11436         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11437         of memory
11438
11439         * dbus/dbus-connection.h: Make AddWatchFunction and
11440         AddTimeoutFunction return a bool so they can fail on out-of-memory
11441
11442         * bus/bus.c (bus_context_new): set up timeout handlers
11443
11444         * bus/connection.c (bus_connections_setup_connection): set up
11445         timeout handlers
11446
11447         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11448         can fail
11449
11450         * bus/bus.c (bus_context_new): adapt to changes
11451
11452         * bus/connection.c: adapt to changes
11453
11454         * test/watch.c: adapt to DBusWatch changes
11455
11456         * bus/dispatch.c (bus_dispatch_test): started adding this but
11457         didn't finish
11458
11459 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11460
11461         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11462
11463 2003-03-13  Havoc Pennington  <hp@pobox.com>
11464
11465         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11466         set up a test framework as for the library
11467
11468 2003-03-12  Havoc Pennington  <hp@pobox.com>
11469
11470         Throughout: purge global variables, introduce BusActivation,
11471         BusConnections, BusRegistry, etc. objects instead.
11472
11473         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11474         message bus object
11475
11476         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11477         going to redo this a bit differently I think
11478
11479 2003-03-12  Havoc Pennington  <hp@redhat.com>
11480
11481         Mega-patch that gets the message bus daemon initially handling
11482         out-of-memory. Work still needed. Also lots of random
11483         moving stuff to DBusError instead of ResultCode.
11484
11485         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11486
11487         * dbus/dbus-connection.c
11488         (dbus_connection_send_with_reply_and_block): use DBusError
11489
11490         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11491         DBusResultCode
11492
11493         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11494         code here, as the only failure possible is OOM.
11495
11496         * bus/connection.c (bus_connection_disconnect):
11497         rename bus_connection_disconnected as it's a notification only
11498
11499         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11500         "name" on get_args failure, should be done by get_args;
11501         don't disconnect client for bad args, just return an error.
11502         (bus_driver_handle_service_exists): ditto
11503
11504         * bus/services.c (bus_services_list): NULL-terminate returned array
11505
11506         * bus/driver.c (bus_driver_send_service_lost)
11507         (bus_driver_send_service_acquired): send messages from driver to a
11508         specific client to the client's unique name, not to the broadcast
11509         service.
11510
11511         * dbus/dbus-message.c (decode_header_data): reject messages that
11512         contain no name field
11513         (_dbus_message_get_client_serial): rename to
11514         dbus_message_get_serial and make public
11515         (_dbus_message_set_serial): rename from set_client_serial
11516         (_dbus_message_set_reply_serial): make public
11517         (_dbus_message_get_reply_serial): make public
11518
11519         * bus/connection.c (bus_connection_foreach): allow stopping
11520         iteration by returning FALSE from foreach function.
11521
11522         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11523         (dbus_connection_free_preallocated_send)
11524         (dbus_connection_preallocate_send): new API for sending a message
11525         without possibility of malloc failure.
11526         (dbus_connection_send_message): rename to just
11527         dbus_connection_send (and same for whole function family)
11528
11529         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11530
11531         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11532
11533         * bus/activation.c: handle/return errors
11534
11535         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11536
11537         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11538         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11539         (_dbus_result_from_errno): move to this file
11540
11541 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11542
11543         * dbus/dbus-marshal.c:
11544         (_dbus_marshal_set_string):
11545         Take a length argument so we can marshal the correct string
11546         length.
11547
11548         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11549         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11550         (_dbus_marshal_test):
11551         * dbus/dbus-marshal.h:
11552         Add support for marshalling and demarshalling dicts.
11553
11554         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11555         Add support for TYPE DICT.
11556
11557         * dbus/dbus-message.c: (set_string_field):
11558         Adjust header padding.
11559
11560         (dbus_message_append_args_valist), (dbus_message_append_dict),
11561         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11562         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11563         (check_message_handling), (check_have_valid_message):
11564         * dbus/dbus-message.h:
11565         Add functions for setting and getting dicts.
11566
11567         * dbus/dbus-protocol.h:
11568         Add DBUS_TYPE_DICT.
11569
11570         * dbus/dbus.h:
11571         Add dbus-dict.h
11572
11573         * doc/dbus-specification.sgml:
11574         Add information about how dicts are marshalled.
11575
11576         * test/data/invalid-messages/dict-with-nil-value.message:
11577         * test/data/invalid-messages/too-short-dict.message:
11578         * test/data/valid-messages/dict-simple.message:
11579         * test/data/valid-messages/dict.message:
11580         Add sample messages containing dicts.
11581
11582 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11583
11584         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11585
11586 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11587
11588         * dbus/Makefile.am:
11589         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11590         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11591         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11592         (dbus_dict_set_double), (dbus_dict_set_string),
11593         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11594         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11595         (dbus_dict_set_string_array), (_dbus_dict_test):
11596         * dbus/dbus-dict.h:
11597         Fix according to comments from Havoc.
11598
11599 2003-03-06  Michael Meeks  <michael@server.home>
11600
11601         * configure.in: if we don't have kde-config, disable have_qt.
11602
11603 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11604
11605         * dbus/Makefile.am:
11606         Add dbus-dict.[ch]
11607
11608         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11609         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11610         (dbus_dict_remove), (dbus_dict_get_value_type),
11611         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11612         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11613         (dbus_dict_put_double), (dbus_dict_put_string),
11614         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11615         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11616         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11617         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11618         (dbus_dict_get_double), (dbus_dict_get_string),
11619         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11620         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11621         (dbus_dict_get_string_array), (_dbus_dict_test):
11622         * dbus/dbus-dict.h:
11623         Add DBusDict implementation
11624
11625         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11626         * dbus/dbus-test.h:
11627         Add _dbus_dict_test
11628
11629 2003-03-04  Havoc Pennington  <hp@pobox.com>
11630
11631         * test/data/auth/*: adapt to changes
11632
11633         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11634         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11635         userid
11636
11637         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11638         more stuff from being in a context name, to make the protocol
11639         simpler to deal with
11640
11641         * dbus/dbus-errors.c (dbus_error_has_name): new function
11642         (dbus_error_is_set): new function
11643
11644         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11645         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11646
11647         * dbus/dbus-connection.c (dbus_connection_flush): also read
11648         messages during a flush operation
11649
11650         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11651
11652 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11653
11654         * configure.in: Check for gethostbyname on Solaris.
11655
11656         * dbus/dbus-transport.c: (_dbus_transport_open):
11657         Remove duplicate "tcp" entry.
11658
11659         * doc/dbus-specification.sgml:
11660         Clarify some things.
11661
11662 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11663
11664         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11665         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11666         (_dbus_keyring_test):
11667         * dbus/dbus-md5.c: (_dbus_md5_compute):
11668         * dbus/dbus-sha.c: (_dbus_sha_compute):
11669         Plug memory leaks.
11670
11671 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11672
11673         * README: Add some things.
11674
11675 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11676
11677         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11678         after case DBUS_TYPE_BOOELAN.
11679
11680 2003-03-02  Havoc Pennington  <hp@pobox.com>
11681
11682         * test/break-loader.c (randomly_set_extreme_ints): add test that
11683         sets really huge and small integers
11684
11685         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11686         that length of boolean array fits in the string, and that
11687         string has room for boolean value in single-bool case.
11688
11689         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11690         optional value to "ALIGN" command which is what to fill the
11691         alignment with.
11692
11693         * test/data/valid-messages/no-padding.message: add regression
11694         test for the message padding problem
11695
11696 2003-03-02  Havoc Pennington  <hp@pobox.com>
11697
11698         * dbus/dbus-message.c (decode_header_data): fix to always init
11699         message_padding, from Benjamin Dauvergne
11700
11701 2003-03-02  Havoc Pennington  <hp@pobox.com>
11702
11703         * configure.in: 0.5
11704
11705         * NEWS: Update.
11706
11707 2003-03-01  Joe Shaw  <joe@assbarn.com>
11708
11709         * configure.in: Check for "struct cmsgcred" and try to access its
11710         members for BSD-like unices.
11711
11712         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11713         _dbus_read_credentials_unix_socket().
11714         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11715         read() for reading the credential byte off the unix socket.  Use
11716         struct cmsgcred on systems that support it.
11717
11718 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11719
11720         * glib/Makefile.am:
11721         * configure.in:
11722         Make gthreads-2.0 dependency optional. Don't build thread test if
11723         its not found.
11724
11725 2003-02-27  Havoc Pennington  <hp@pobox.com>
11726
11727         * dbus/dbus-connection.c
11728         (dbus_connection_send_message_with_reply_and_block): fix doh!
11729         doh! doh! bug that resulted in never removing a reply from the
11730         queue, no wonder we called get_reply_serial so much ;-)
11731
11732         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11733         and client serial instead of demarshaling them every time
11734
11735 2003-02-27  Havoc Pennington  <hp@pobox.com>
11736
11737         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11738         more inlined, using dbus-string-private.h, speeds things up
11739         substantially
11740
11741         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11742         when freeing the string
11743         (_dbus_string_steal_data): fix for align offset
11744         (undo_alignment): new function
11745
11746 2003-02-26  Havoc Pennington  <hp@redhat.com>
11747
11748         All kinds of audit fixes from Owen, plus initial attempt to
11749         handle unaligned memory returned from malloc.
11750
11751         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11752         leave room for align_offset and nul byte
11753         (fixup_alignment): function to track an align_offset and
11754         ensure real->str is aligned
11755         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11756         to allow a nul byte plus align offset
11757         (_dbus_string_lock): fix overflow issue
11758         (_dbus_string_init_const_len): add assertions on sanity of len,
11759         assign allocated to be ALLOCATION_PADDING larger than len
11760         (set_length): fixup the overflow handling
11761         (_dbus_string_get_data_len): fix overflow in assertion
11762         (open_gap): detect overflow in size of gap to be opened
11763         (_dbus_string_lengthen): add overflow check
11764         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11765         (_dbus_string_append): add overflow check
11766         (_dbus_string_append_unichar): overflow
11767         (_dbus_string_delete): fix overflow in assertion
11768         (_dbus_string_copy_len): overflow in assertion
11769         (_dbus_string_replace_len): overflows in assertions
11770         (_dbus_string_find): change to implement in terms of
11771         _dbus_string_find_to
11772         (_dbus_string_find_to): assorted fixage
11773         (_dbus_string_equal_c_str): assert c_str != NULL,
11774         fix logic so the function works
11775         (_dbus_string_ends_with_c_str): fix overflow thingy
11776         (_dbus_string_base64_encode): overflow fix
11777         (_dbus_string_validate_ascii): overflow
11778         (_dbus_string_validate_nul): overflow
11779
11780 2003-02-26  Havoc Pennington  <hp@redhat.com>
11781
11782         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11783
11784 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11785
11786         * configure.in:
11787         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11788
11789         * dbus/dbus-connection.c:
11790         * dbus/dbus-connection.h:
11791         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11792         Add dbus_connection_set_wakeup_main_function and use it when queueing
11793         incoming and outgoing messages.
11794
11795
11796         * dbus/dbus-dataslot.c:
11797         Threadsafe usage of DBusDataSlotAllocator
11798
11799         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11800         dbus_new can fail.
11801
11802         * dbus/dbus-server-unix.c:
11803         Add todo comment
11804
11805         * glib/dbus-gmain.c:
11806         Implement the new wakeup functions for glib.
11807
11808         * glib/Makefile.am:
11809         * glib/test-thread-client.c:
11810         * glib/test-thread-server.c:
11811         * glib/test-thread.h:
11812         Initial cut at some thread test code. Not really done yet.
11813
11814 2003-02-26  Havoc Pennington  <hp@pobox.com>
11815
11816         * dbus/dbus-connection.c
11817         (dbus_connection_send_message_with_reply_and_block): fix crash
11818         where we ref'd the outgoing message instead of the returned reply
11819
11820         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11821         at the end of this function, so if we didn't need to read for
11822         authentication, we reinstall it for receiving messages
11823
11824         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11825         a NULL sender for peer-to-peer case
11826
11827         * dbus/dbus-transport-unix.c (check_read_watch): handle
11828         !authenticated case correctly
11829
11830         * glib/dbus-gmain.c: add support for DBusServer
11831
11832         * dbus/dbus-server.c: add data slot support
11833
11834         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11835         return values and handle errors
11836
11837         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11838         DBusConnection
11839
11840         * Doxyfile.in (INPUT): add glib subdir
11841
11842         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11843         setup_with_g_main instead of hookup_with_g_main; write docs
11844
11845 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11846
11847         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11848         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11849         * dbus/dbus-message.c: (dbus_message_append_boolean),
11850         (dbus_message_append_boolean_array),
11851         (dbus_message_get_args_valist), (_dbus_message_test):
11852         * dbus/dbus-message.h:
11853         * doc/dbus-specification.sgml:
11854         Various fixes as pointed out by Havoc.
11855
11856         * test/data/invalid-messages/bad-boolean-array.message:
11857         * test/data/invalid-messages/bad-boolean.message:
11858         Add invalid boolean value test cases.
11859
11860 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11861
11862         * dbus/dbus-internals.c: (_dbus_type_to_string):
11863         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11864         (_dbus_marshal_validate_arg):
11865         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11866         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11867         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11868         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11869         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11870         (dbus_message_iter_get_double),
11871         (dbus_message_iter_get_boolean_array), (message_iter_test):
11872         * dbus/dbus-message.h:
11873         * dbus/dbus-protocol.h:
11874         * doc/dbus-specification.sgml:
11875         * test/data/valid-messages/lots-of-arguments.message:
11876         Add support for boolean and boolean array types.
11877
11878 2003-02-23  Havoc Pennington  <hp@pobox.com>
11879
11880         * dbus/dbus-keyring.c: finish most of this implementation and
11881         simple unit test
11882
11883         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11884         these barf if the error isn't cleared to NULL
11885
11886         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11887         (_dbus_create_directory): new function
11888
11889         * dbus/dbus-errors.c (dbus_set_error): fix warning
11890
11891         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11892         (_dbus_string_hex_decode): new function
11893         (test_hex_roundtrip): test code
11894
11895         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11896
11897         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11898
11899         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11900         the save-to-temp/rename trick to atomically write the new file
11901         (_dbus_string_parse_uint): new function
11902
11903 2003-02-22  Havoc Pennington  <hp@pobox.com>
11904
11905         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11906
11907 2003-02-22  Havoc Pennington  <hp@pobox.com>
11908
11909         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11910         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11911
11912         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11913
11914         * dbus/test/data/sha-1: add US government test suite for SHA-1
11915
11916 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11917
11918         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11919         Make string arrays NULL-terminated.
11920
11921         * dbus/dbus-memory.c: (dbus_free_string_array):
11922         * dbus/dbus-memory.h:
11923         New function for freeing NULL-terminated string arrays.
11924
11925         * dbus/dbus-message-builder.c: (append_quoted_string),
11926         (_dbus_message_data_load):
11927         Add support for array types.
11928
11929         * dbus/dbus-message.c: (check_message_handling):
11930         Add more types as test cases.
11931
11932         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11933         (_dbus_string_parse_double):
11934         Add the start offset to the end offset.
11935
11936         * test/data/valid-messages/lots-of-arguments.message:
11937         New test message with lots of arguments.
11938
11939 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11940
11941         * dbus/dbus-message.c: (dbus_message_append_nil),
11942         (dbus_message_append_int32), (dbus_message_append_uint32),
11943         (dbus_message_append_double), (dbus_message_append_string),
11944         (dbus_message_append_int32_array),
11945         (dbus_message_append_uint32_array),
11946         (dbus_message_append_double_array),
11947         (dbus_message_append_byte_array),
11948         (dbus_message_append_string_array):
11949         Fix all out-of-memory handling in these functions.
11950
11951 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11952
11953         * dbus/dbus-message.c: (dbus_message_append_nil):
11954         Fix a silly.
11955
11956 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11957
11958         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11959         (dbus_message_append_nil), (dbus_message_append_int32_array),
11960         (dbus_message_append_uint32_array),
11961         (dbus_message_append_double_array),
11962         (dbus_message_append_byte_array),
11963         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11964         (dbus_message_iter_get_int32_array),
11965         (dbus_message_iter_get_uint32_array),
11966         (dbus_message_iter_get_double_array),
11967         (dbus_message_iter_get_byte_array),
11968         (dbus_message_iter_get_string_array):
11969
11970         * dbus/dbus-message.h:
11971         Add functions for appending and getting arrays.
11972
11973 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11974
11975         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11976         element size at least 8 bytes, fixes mempool tests on
11977         64-bit machines.
11978
11979 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11980
11981         * dbus/dbus-transport-unix.c (unix_do_iteration):
11982         Unlock the connection mutex during a blocking select call.
11983         Add todo about how we need a way to wake up the select.
11984
11985         * dbus/dbus-connection-internal.h:
11986         * dbus/dbus-connection.c:
11987         Add _dbus_connection_lock and _dbus_connection_unlock.
11988
11989 2003-02-19  Havoc Pennington  <hp@pobox.com>
11990
11991         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11992         Doxyfile.in, not Doxyfile
11993
11994         * dbus/dbus-keyring.c: do some hacking on this
11995
11996         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11997
11998         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11999         dbus_error_init
12000         (dbus_set_error): remove dbus_error_init, check for message ==
12001         NULL *before* we sprintf into it, and add @todo about including
12002         system headers in this file
12003
12004         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12005
12006         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12007
12008         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12009         get various bits of user information based on either username
12010         or user ID
12011         (_dbus_homedir_from_username): new function
12012
12013 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12014
12015         * configure.in:
12016         Add check for nonposix getpwnam_r
12017
12018         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12019         Align the pool element size to a sizeof (void *) boundary.
12020
12021         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12022         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12023         General Solaris fixes.
12024
12025         * test/data/valid-messages/simplest-manual.message:
12026         Explicitly state that we want little-endian packing.
12027
12028 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12029
12030         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12031
12032         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12033         Added to create a transport connecting using a tcp/ip socket.
12034
12035         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12036         to a tcp socket at given host and port.
12037         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12038         hostname and port.
12039
12040         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12041
12042         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12043         Added to create a server listening on a TCP/IP socket.
12044
12045 2003-02-19  Havoc Pennington  <hp@pobox.com>
12046
12047         Throughout: mop up all the Doxygen warnings and undocumented
12048         stuff.
12049
12050         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12051         to search any paths.
12052
12053         * dbus/dbus-threads.c: move global mutex initializers to
12054         dbus-internals.h, multiple prototypes was confusing doxygen
12055         besides being kind of ugly
12056
12057         * Doxyfile (PREDEFINED): have Doxygen define
12058         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12059         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12060         (do not abuse the feature! it's for stuff like the autogenerated
12061         macros in dbus-md5.c, not just for things you don't feel like
12062         documenting...)
12063
12064 2003-02-18  Havoc Pennington  <hp@pobox.com>
12065
12066         * dbus/dbus-string.c (_dbus_string_zero): new function
12067
12068         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12069         wrap it in some dbus-friendly API
12070
12071         * dbus/dbus-types.h: add 16-bit types
12072
12073 2003-02-18  Joe Shaw  <joe@assbarn.com>
12074
12075         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12076         credentials from our currently running process.
12077         (get_word): Fix a buglet where we were copying the entire length
12078         instead of relative to our position.
12079
12080         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12081         keys on the stack... it's 640k of data.
12082
12083         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12084         read the credentials byte off the socket, even if we don't have
12085         SO_PEERCRED.
12086         (_dbus_poll): Implement poll() using select() for systems which
12087         don't have it.
12088
12089         * glib/test-dbus-glib.c (main): Print out an error if no
12090         parameters are given.
12091
12092         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12093         can fallback to a secondary auth mechanism if the first fails.
12094
12095 2003-02-18  Havoc Pennington  <hp@pobox.com>
12096
12097         * AUTHORS: add Alex
12098
12099 2003-02-17  Havoc Pennington  <hp@pobox.com>
12100
12101         * doc/dbus-specification.sgml: lots of cosmetic
12102         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12103         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12104         s/server/bus/ (except in authentication section). Add a section
12105         "Message Bus Message Routing"
12106
12107 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12108
12109         Release 0.4
12110
12111         * NEWS: Update
12112
12113 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12114
12115         * doc/dbus-specification.sgml:
12116         Specification updates.
12117
12118 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * bus/activation.c: (bus_activation_init), (child_setup),
12121         (bus_activation_activate_service):
12122         * bus/activation.h:
12123         * bus/main.c: (main):
12124         Set DBUS_ADDRESS environment variable.
12125
12126         * dbus/dbus-errors.c: (dbus_set_error):
12127         Don't use va_copy since that's a C99 feature.
12128
12129         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12130         (_dbus_spawn_async):
12131         * dbus/dbus-sysdeps.h:
12132         Add child_setup_func to _dbus_spawn_async.
12133
12134         * doc/dbus-specification.sgml:
12135         Update specification.
12136
12137         * test/spawn-test.c: (setup_func), (main):
12138         Fix test.
12139
12140 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12141
12142         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12143         Added todo.
12144
12145 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12146
12147         * doc/.cvsignore:
12148         * doc/Makefile.am:
12149         * doc/dbus-test-plan.sgml:
12150         Add test plan document.
12151
12152         * test/Makefile.am:
12153         Fix distcheck.
12154
12155 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12156
12157         * dbus/dbus-message.c: (decode_header_data),
12158         (_dbus_message_loader_return_buffer):
12159         Set the header padding amount when loading a message.
12160
12161 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12162
12163         * bus/dispatch.c: (send_one_message):
12164         Only send broadcast messages to registered connections.
12165
12166         * dbus/dbus-message.c: (dbus_message_name_is):
12167         * dbus/dbus-message.h:
12168         New convenience function.
12169
12170         * dbus/dbus-transport-debug.c: (do_reading):
12171         Only dispatch one message per run.
12172
12173         * test/Makefile.am:
12174         * test/bus-test.c: (new_connection_callback), (die),
12175         (test_hello_client1_handler), (test_hello_client2_handler),
12176         (test_hello_replies), (main):
12177
12178         * test/bus-test-loop.[ch]:
12179         Add these.
12180
12181 2003-02-16  Havoc Pennington  <hp@pobox.com>
12182
12183         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12184         backward conditional
12185
12186 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12187
12188         * dbus/dbus-connection.c:
12189         Implement sent_message_with_reply. (with_reply_and block is still
12190         busted).
12191         Made dispatch_message not lose message if OOM.
12192
12193         * dbus/dbus-errors.h:
12194         Add NoReply error (for reply timeouts).
12195
12196 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12197
12198         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12199         Actually free keys and values when destroying hashtable.
12200
12201 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12202
12203         * dbus/dbus-auth.c: (client_try_next_mechanism):
12204         Plug a leak.
12205
12206         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12207         Return TRUE if there's no thread implementation around.
12208
12209         * glib/dbus-gmain.c: (free_source),
12210         (dbus_connection_hookup_with_g_main):
12211         Make sure to remove the GSource when the connection is finalized.
12212
12213 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12214
12215         * bus/dispatch.c: (bus_dispatch_message_handler):
12216         * dbus/dbus-errors.h:
12217         Return an error if someone tries to send a message to a service
12218         that doesn't exist.
12219
12220 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12221
12222         * bus/activation.c: (load_directory), (bus_activation_init),
12223         (bus_activation_activate_service):
12224         * bus/activation.h:
12225         * bus/driver.c:
12226         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12227         More work on the activation handling.
12228
12229         * dbus/dbus-errors.h:
12230         Add some error messages
12231
12232         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12233         * dbus/dbus-message.h:
12234         New function that creates an error message.
12235
12236         * dbus/dbus-protocol.h:
12237         Add ACTIVATE_SERVER message.
12238
12239         * dbus/dbus-server-unix.c: (unix_handle_watch),
12240         (_dbus_server_new_for_domain_socket):
12241         Call _dbus_fd_set_close_on_exec.
12242
12243         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12244         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12245         (_dbus_fd_set_close_on_exec):
12246         * dbus/dbus-sysdeps.h:
12247         Add _dbus_fd_set_close_on exec function. Also add function that checks
12248         that all open fds are set to close-on-exec and warns otherwise.
12249
12250         * dbus/dbus-transport-unix.c:
12251         (_dbus_transport_new_for_domain_socket):
12252         Call _dbus_fd_set_close_on_exec.
12253
12254 2003-02-16  Havoc Pennington  <hp@pobox.com>
12255
12256         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12257         allow people to avoid setting SIGPIPE to SIG_IGN
12258         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12259         we've been asked not to
12260
12261 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12262
12263         * dbus/dbus-list.c: (_dbus_list_append_link),
12264         (_dbus_list_prepend_link):
12265         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12266         (dbus_realloc):
12267         Warning fixes.
12268
12269 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12270
12271         * bus/Makefile.am:
12272         * bus/activation.c: (bus_activation_entry_free),
12273         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12274         * bus/activation.h:
12275         * bus/main.c: (main):
12276         Add simple activation support, doesn't work yet though.
12277
12278 2003-02-15   Zack Rusin  <zack@kde.org>
12279
12280         * qt/dbus-qthread.cpp:  small casting fix
12281
12282 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12283
12284         * dbus/dbus-errors.c: (dbus_set_error):
12285         * dbus/dbus-errors.h:
12286         Add a few errors and make dbus_set_error void.
12287
12288         * dbus/dbus-sysdeps.c:
12289         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12290         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12291         * dbus/dbus-sysdeps.h:
12292         Add _dbus_spawn_async.
12293
12294         * test/spawn-test.c: (main):
12295         Test for _dbus_spawn_async.
12296
12297 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12298
12299         * dbus/dbus-internals.h:
12300         Fix build without tests.
12301
12302         * dbus/dbus-list.c: (alloc_link):
12303         Fix a segfault when a malloc fails.
12304
12305         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12306         (dbus_malloc0), (dbus_realloc):
12307         Add support for malloc debugging.
12308
12309 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12310
12311         * dbus/dbus-threads.c:
12312         * dbus/dbus-threads.h:
12313         Add condvars. Remove static mutext from API.
12314         Implement static mutexes by initializing them from threads_init.
12315
12316         * glib/dbus-gthread.c:
12317         * qt/dbus-qthread.cpp:
12318         Update with the thread api changes.
12319
12320
12321         * dbus/dbus-list.c:
12322         * dbus/dbus-list.h:
12323         Turn StaticMutex into normal mutex + init function.
12324         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12325         _dbus_list_append_link, _dbus_list_prepend_link
12326
12327
12328         * dbus/dbus-sysdeps.c:
12329         * dbus/dbus-sysdeps.h:
12330         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12331         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12332
12333         * dbus/dbus-protocol.h:
12334         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12335
12336         * dbus/dbus-message.c:
12337         Make ref/unref atomic.
12338         Fix some docs.
12339
12340         * dbus/dbus-connection-internal.h:
12341         * dbus/dbus-connection.c:
12342         * dbus/dbus-connection.h:
12343         Make threadsafe.
12344         Change _peek to _borrow,_return & _steal_borrowed.
12345         Change disconnect callback to event.
12346         Make dbus_connection_dispatch_messages reentrant.
12347
12348         * dbus/dbus-transport.c:
12349         Don't ref the connection on calls to the transport
12350         implementation.
12351
12352         * dbus/dbus-message-handler.c:
12353         Make threadsafe.
12354
12355         * glib/dbus-gmain.c:
12356         Don't use peek_message anymore
12357
12358         * test/Makefile.am:
12359         * test/debug-thread.c:
12360         * test/debug-thread.h:
12361         Simple thread implementation that asserts() on deadlocks in
12362         single-threaded code.
12363
12364         * test/bus-test.c:
12365         (main) Call debug_threads_init.
12366
12367         * test/watch.c:
12368         Use disconnect message instead of disconnect callback.
12369
12370         * bus/connection.c:
12371         * bus/connection.h:
12372         Don't call dbus_connection_set_disconnect_function. Instead export
12373         bus_connection_disconnect.
12374
12375         * bus/dispatch.c:
12376         Call bus_connection_disconnect when we get a disconnected message.
12377
12378 2003-02-15  Havoc Pennington  <hp@pobox.com>
12379
12380         * dbus/dbus-message.c (dbus_message_new): fool around with the
12381         docs
12382
12383 2003-02-14  Havoc Pennington  <hp@pobox.com>
12384
12385         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12386
12387         * dbus/dbus-memory.c: fail if the debug functions indicate we
12388         should
12389
12390         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12391         (_dbus_decrement_fail_alloc_counter): debug functions to
12392         simulate memory allocation failures
12393
12394 2003-02-14  Havoc Pennington  <hp@pobox.com>
12395
12396         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12397         to DBusError
12398
12399 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12400
12401         * bus/driver.c: (bus_driver_handle_hello):
12402         * bus/driver.h:
12403         * bus/services.c: (bus_service_lookup):
12404         Reorder message sending so we get a more sane order.
12405
12406         * test/bus-test.c: (message_handler):
12407         Fix tyop.
12408
12409 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12410
12411         * bus/driver.c: (bus_driver_send_service_deleted),
12412         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12413         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12414         (bus_driver_send_welcome_message),
12415         (bus_driver_handle_list_services),
12416         (bus_driver_handle_acquire_service),
12417         (bus_driver_handle_service_exists):
12418         * dbus/dbus-bus.c: (dbus_bus_register_client),
12419         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12420         * dbus/dbus-errors.c: (dbus_result_to_string):
12421         * dbus/dbus-errors.h:
12422         * dbus/dbus-message.c: (dbus_message_append_args),
12423         (dbus_message_append_args_valist), (dbus_message_get_args),
12424         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12425         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12426         (dbus_message_iter_get_byte_array),
12427         (dbus_message_iter_get_string_array), (message_iter_test),
12428         (check_message_handling), (_dbus_message_test):
12429         * dbus/dbus-message.h:
12430         * test/bus-test.c: (main):
12431         Change fields to arguments in messages, so that they won't be
12432         confused with header fields.
12433
12434         * glib/test-dbus-glib.c: (main):
12435         Remove append_fields from hello message.
12436
12437 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12438
12439         * dbus/dbus-errors.c:
12440         * dbus/dbus-message.c:
12441         * dbus/dbus-string.c:
12442         Documentation fixes.
12443
12444 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12447         (remove_timeout):
12448         Implement support for timeouts in dbus-glib.
12449
12450 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12451
12452         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12453         * dbus/dbus-message.c: (process_test_subdir):
12454         * test/break-loader.c: (find_breaks_based_on):
12455         Plug some memory leaks.
12456
12457 2003-02-13  Richard Hult  <rhult@codefactory.se>
12458
12459         * bus/main.c: Fix build.
12460
12461         * dbus/dbus-errors.h:
12462         * dbus/dbus-errors.c: Fix copyright for Anders.
12463
12464 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12465
12466         * bus/Makefile.am:
12467         Add utils.[ch]
12468
12469         * bus/connection.c: (bus_connection_foreach):
12470         Fix a warning.
12471
12472         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12473         (unescape_string), (new_section), (parse_section_start),
12474         (parse_key_value), (report_error), (bus_desktop_file_load),
12475         (bus_desktop_file_get_string):
12476         * bus/desktop-file.h:
12477         Use DBusError for error reporting.
12478
12479         * bus/dispatch.c: (send_one_message),
12480         (bus_dispatch_message_handler):
12481         * bus/driver.c: (bus_driver_send_service_deleted),
12482         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12483         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12484         (bus_driver_send_welcome_message),
12485         (bus_driver_handle_list_services),
12486         (bus_driver_handle_acquire_service),
12487         (bus_driver_handle_service_exists):
12488         * bus/loop.c: (bus_loop_run):
12489         * bus/main.c:
12490         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12491
12492         * bus/utils.c: (bus_wait_for_memory):
12493         * bus/utils.h:
12494         New files with general utility functions.
12495
12496         * dbus/dbus-internals.h:
12497         Remove _DBUS_HANDLE_OOM.
12498
12499 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12500
12501         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12502         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12503         * dbus/dbus-errors.h:
12504         Add DBusError structure.
12505
12506 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12507
12508         * test/data/valid-messages/standard-acquire-service.message:
12509         * test/data/valid-messages/standard-hello.message:
12510         * test/data/valid-messages/standard-list-services.message:
12511         * test/data/valid-messages/standard-service-exists.message:
12512         Add some standard messages.
12513
12514 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12515
12516         * bus/driver.c: (bus_driver_send_welcome_message),
12517         (bus_driver_handle_list_services),
12518         (bus_driver_handle_acquire_service),
12519         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12520         Update for API changes in libdbus.
12521
12522         * dbus/dbus-message.c: (dbus_message_new_reply):
12523         * dbus/dbus-message.h:
12524         Remove the name argument. The spec states that replies shouldn't
12525         have a name.
12526
12527 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12528
12529         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12530         (report_error), (bus_desktop_file_load), (lookup_section),
12531         (lookup_line), (bus_desktop_file_get_raw),
12532         (bus_desktop_file_get_string):
12533         * bus/desktop-file.h:
12534         Some fixes, and new functions for getting a key value from a section.
12535
12536 2003-02-13  Havoc Pennington  <hp@pobox.com>
12537
12538         * test/data/auth/fail-after-n-attempts.auth-script: new test
12539
12540         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12541         reject the client.
12542
12543 2003-02-13  Havoc Pennington  <hp@pobox.com>
12544
12545         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12546         dbus_credentials_match were backward
12547
12548         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12549         NO_CREDENTIALS and ROOT_CREDENTIALS
12550
12551         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12552         into here. Never process more commands after we've reached an
12553         end state; store further data as unused bytes.
12554
12555         * test/data/auth/*: add more auth tests
12556
12557         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12558         command to match exact string and EXPECT_UNUSED to match unused
12559         bytes
12560
12561         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12562
12563 2003-02-12  Havoc Pennington  <hp@pobox.com>
12564
12565         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12566         \r off of popped lines
12567
12568         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12569         scripts
12570
12571         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12572         SEND, append \r\n
12573
12574 2003-02-12  Havoc Pennington  <hp@pobox.com>
12575
12576         * dbus/Makefile.am: remove break-loader from the build, since it
12577         moved.
12578
12579         * configure.in: add --enable-gcov to turn on coverage profiling
12580         flags and disable optimization
12581
12582 2003-02-10  Havoc Pennington  <hp@pobox.com>
12583
12584         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12585         initial cut at test framework for DBusAuth from laptop.
12586         Doesn't quite work yet but it compiles and I need to get
12587         it off the 266mhz laptop. ;-)
12588
12589         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12590         fix a memleak in error case
12591
12592 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12593
12594         * bus/Makefile.am:
12595         * bus/desktop-file.c:
12596         * bus/desktop-file.h:
12597         Add a desktop file parser.
12598
12599 2003-02-11  Zack Rusin  <zack@kde.org>
12600
12601         * qt/message.[h|cpp]: sample implementation
12602         of the KDE wrapper for DBusMessage
12603
12604 2003-02-09  Zack Rusin  <zack@kde.org>
12605
12606         * test/bus-test.c: make_it_compile
12607         * doc/dbus-specification.sgml: minimal semantic fix
12608
12609 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12610
12611         Release 0.3
12612
12613         * NEWS: Update
12614
12615 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12616
12617         * dbus/Makefile.am:
12618         * dbus/dbus-break-loader.c:
12619         * test/Makefile.am:
12620         * test/break-loader.c:
12621         Move dbus-break-loader to test/ and rename it to break-loader.
12622
12623 2003-02-02  Havoc Pennington  <hp@pobox.com>
12624
12625         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12626         for code to manage cookies in your home directory
12627
12628         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12629
12630         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12631         to authenticate, then disconnect the client.
12632
12633 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12634
12635         * dbus/dbus-message.c (dbus_message_append_fields):
12636         Correct docs.
12637
12638 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * doc/dbus-specification.sgml:
12641         Update address format section.
12642
12643 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * test/Makefile.am:
12646         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12647         (message_handler), (new_connection_callback), (loop_quit),
12648         (loop_run), (main):
12649         Add bus test.
12650
12651 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12652
12653         * bus/driver.c: (bus_driver_handle_service_exists):
12654         Simplify the code a bit.
12655
12656         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12657         Fix a silly.
12658
12659 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12660
12661         * bus/Makefile.am:
12662         Add libdbus-daemon.la and link to it.
12663
12664 2003-02-01  James Willcox  <jwillcox@gnome.org>
12665
12666         * bus/driver.c: (bus_driver_handle_own_service):
12667         Actually include the service reply code in the message.
12668
12669 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12670
12671         * bus/driver.c: (bus_driver_handle_service_exists):
12672         Don't unref the incoming message.
12673
12674 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12677
12678 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12679
12680         * dbus/dbus-server.c: (dbus_server_listen):
12681         * dbus/dbus-transport.c: (_dbus_transport_open):
12682         ifdef out the calls to the debug transport and server.
12683
12684 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12685
12686         * dbus/dbus-watch.c (dbus_watch_get_flags):
12687         Add note in the docs that ERROR or HANGUP won't be returned
12688         and are assumed always on.
12689
12690         * glib/dbus-gmain.c (add_watch):
12691         Always add IO_ERR | IO_HUP
12692
12693         * dbus/dbus-message.h:
12694         Add semicolon after dbus_message_iter_get_string_array().
12695         Makes qt code build again
12696
12697 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12698
12699         * bus/driver.c: (create_unique_client_name),
12700         (bus_driver_handle_hello):
12701         Don't take a name, just use a numeric id to identify
12702         each client.
12703
12704         * dbus/Makefile.am:
12705         * dbus/dbus-bus.c: (dbus_bus_register_client),
12706         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12707         * dbus/dbus-bus.h:
12708         Add new convenience functions for communicating with the bus.
12709
12710         * dbus/dbus-message.h:
12711
12712         * dbus/dbus-protocol.h:
12713         Fix a typo.
12714
12715 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12716
12717         * dbus/dbus-message.c (dbus_message_append_fields):
12718         Add some more doc comments.
12719
12720 2003-02-01  Havoc Pennington  <hp@pobox.com>
12721
12722         * dbus/dbus-break-loader.c (randomly_modify_length): change
12723         a 4-byte value in the message as if it were a length
12724
12725         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12726         execute bit on saved files
12727
12728 2003-02-01  Havoc Pennington  <hp@pobox.com>
12729
12730         * dbus/dbus-break-loader.c (main): new program to find messages
12731         that break the loader.
12732
12733         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12734         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12735
12736         * dbus/dbus-string.c (_dbus_string_set_byte): new
12737
12738 2003-01-31  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-message.c: refactor the test code to be more general,
12741         in preparation for writing a "randomly permute test cases to
12742         try to break the loader" program.
12743
12744 2003-01-31  Havoc Pennington  <hp@pobox.com>
12745
12746         * doc/dbus-specification.sgml: work on the specification
12747
12748         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12749         the protocol version of the message.
12750
12751         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12752         no longer specifies that.
12753         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12754         1/2/3/4)
12755
12756         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12757         "break" for DBUS_TYPE_NIL, remove @todo
12758
12759 2003-01-31  Havoc Pennington  <hp@pobox.com>
12760
12761         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12762         just set_is_error/get_is_error as this is a commonly-used
12763         function, and write docs.
12764
12765 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12766
12767         * dbus/dbus-address.c: (dbus_address_entry_free):
12768         Free key and value lists.
12769
12770         * dbus/dbus-internals.c: (_dbus_type_to_string):
12771         Add the types we didn't have.
12772
12773         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12774         (_dbus_marshal_validate_arg):
12775         Add NIL types.
12776
12777         * dbus/dbus-message.c: (dbus_message_set_sender):
12778         Remove todo about being able to set sender to NULL.
12779
12780         (dbus_message_set_is_error_reply),
12781         (dbus_message_get_is_error_reply):
12782         * dbus/dbus-message.h:
12783         New functions.
12784
12785         * dbus/dbus-protocol.h:
12786         Add error reply flag.
12787
12788         * test/data/valid-messages/opposite-endian.message:
12789         Add NIL type to test.
12790
12791 2003-01-31  Havoc Pennington  <hp@pobox.com>
12792
12793         * doc/dbus-specification.sgml: fully specify the header.  Add
12794         flags and major protocol version, and change header/body len to
12795         unsigned.
12796
12797         * dbus/dbus-message-builder.c (append_saved_length): append length
12798         as uint32
12799
12800         * dbus/dbus-message.c (dbus_message_create_header): change header
12801         length and body length to unsigned. Add the new fields from the
12802         spec
12803         (_dbus_message_loader_return_buffer): unsigned header/body len
12804
12805 2003-01-30  Havoc Pennington  <hp@pobox.com>
12806
12807         * dbus/dbus-auth.c: rework to use only REJECTED, no
12808         MECHANISMS
12809
12810         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12811         use REJECTED, suggested by Mark McLoughlin
12812
12813 2003-01-30  Havoc Pennington  <hp@pobox.com>
12814
12815         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12816         a better way to report errors here. e.g.  "unix address lacks
12817         path" or something. also "no such file" when the path doesn't
12818         exist, etc.
12819
12820         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12821         leaking list nodes
12822         (dbus_parse_address): add @todo about documenting address format,
12823         and allowing , and ; to be escaped
12824
12825 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12826
12827         * dbus/Makefile.am:
12828         Add dbus-address.[ch]
12829
12830         * dbus/dbus-address.c: (dbus_address_entry_free),
12831         (dbus_address_entries_free), (create_entry),
12832         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12833         (dbus_parse_address), (_dbus_address_test):
12834         * dbus/dbus-address.h:
12835         New files for dealing with address parsing.
12836
12837         * dbus/dbus-connection.c:
12838         Document timeout functions.
12839
12840         * dbus/dbus-message.c:
12841         Document dbus_message_new_from_message.
12842
12843         * dbus/dbus-server-debug.c:
12844         Document.
12845
12846         * dbus/dbus-server.c: (dbus_server_listen):
12847         Parse address and use correct server implementation.
12848
12849         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12850         * dbus/dbus-string.h:
12851         New function with test.
12852
12853         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12854         * dbus/dbus-test.h:
12855         Add address tests.
12856
12857         * dbus/dbus-transport-debug.c:
12858         Document.
12859
12860         * dbus/dbus-transport.c: (_dbus_transport_open):
12861         Parse address and use correct transport implementation.
12862
12863 2003-01-30  Havoc Pennington  <hp@pobox.com>
12864
12865         * dbus/dbus-message.c: use message->byte_order instead of
12866         DBUS_COMPILER_BYTE_ORDER throughout.
12867         (dbus_message_create_header): pad header to align the
12868         start of the body of the message to 8-byte boundary
12869
12870         * dbus/dbus-marshal.h: make all the demarshalers take const
12871         DBusString arguments.
12872
12873         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12874         validate message args here, so we don't have to do slow validation
12875         later, and so we catch bad messages as they are incoming. Also add
12876         better checks on header_len and body_len. Also fill in
12877         message->byte_order
12878
12879         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12880         implemented properly)
12881         (_dbus_string_validate_nul): new function to check all-nul
12882
12883         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12884         get_arg_end_pos and remove all validation
12885         (_dbus_marshal_validate_arg): actually do validation here.
12886
12887 2003-01-29  Havoc Pennington  <hp@pobox.com>
12888
12889         * dbus/dbus-message.c (check_message_handling): fix assertion
12890         failure on set_client_serial
12891
12892 2003-01-28  Havoc Pennington  <hp@pobox.com>
12893
12894         * dbus/dbus-server-debug.c: Add doc section comments
12895
12896         * dbus/dbus-transport-debug.c: add doc section comments
12897
12898 2003-01-28  Havoc Pennington  <hp@redhat.com>
12899
12900         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12901         the reverse order from how I had it
12902         (_dbus_string_base64_encode): reverse encoding order. I was
12903         basically byteswapping everything during encoding.
12904
12905 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12906
12907         * dbus/dbus-connection-internal.h:
12908         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12909         (_dbus_connection_remove_timeout):
12910         Add functions for adding and removing timeouts.
12911
12912         * dbus/dbus-message.c: (dbus_message_new_from_message):
12913         Add new function that takes a message and creates an exact
12914         copy of it, but with the refcount set to 1.
12915         (check_message_handling):
12916         Fix build error.
12917
12918         * dbus/dbus-server-protected.h:
12919         * dbus/dbus-server.c: (_dbus_server_init_base),
12920         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12921         (dbus_server_set_timeout_functions):
12922         (_dbus_server_remove_timeout):
12923         New functions so that a server can add and remove timeouts.
12924
12925         (dbus_server_listen):
12926         Add commented out call to dbus_server_debug_new.
12927
12928         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12929         Actually set the handler, doh.
12930
12931         * dbus/dbus-transport.c: (_dbus_transport_open):
12932         Add commented out call to dbus_transport_debug_client_new.
12933
12934         * dbus/Makefile.am:
12935         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12936
12937 2003-01-28  Havoc Pennington  <hp@pobox.com>
12938
12939         * dbus/dbus-message.c (check_message_handling): function to check
12940         on the loaded message, iterates over it etc.
12941
12942 2003-01-28  Havoc Pennington  <hp@pobox.com>
12943
12944         * test/Makefile.am (dist-hook): fix make distdir
12945
12946         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12947
12948 2003-01-27  Havoc Pennington  <hp@pobox.com>
12949
12950         * dbus/dbus-mempool.c (time_for_size): replace printf with
12951         _dbus_verbose
12952
12953         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12954         empty lines; fix the SAVE_LENGTH stuff to be
12955         START_LENGTH/END_LENGTH so it actually works; couple other
12956         bugfixes
12957
12958         * test/Makefile.am (dist-hook): add dist-hook for .message files
12959
12960         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12961         can be constant or locked.
12962         (_dbus_string_free): allow freeing a const string as
12963         documented/intended
12964
12965         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12966
12967         * dbus/dbus-test-main.c (main): take an argument which is the
12968         directory containing test data
12969
12970         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12971         argument to this and load all the messages in test/data/
12972         checking that they can be loaded or not loaded as appropriate.
12973
12974 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12975
12976         * bus/dispatch.c: (bus_dispatch_message_handler):
12977         Dispatch messages sent to services.
12978
12979         * bus/driver.c: (bus_driver_send_service_deleted),
12980         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12981         (bus_driver_send_service_acquired):
12982         Add helper functions for sending service related messages.
12983
12984         (bus_driver_send_welcome_message):
12985         Send HELLO_REPLY instead of WELCOME.
12986
12987         (bus_driver_handle_list_services):
12988         Send LIST_SERVICES_REPLY instead of SERVICES.
12989
12990         (bus_driver_handle_own_service),
12991         (bus_driver_handle_service_exists):
12992         New message handlers.
12993
12994         (bus_driver_handle_message):
12995         Invoke new message handlers.
12996
12997         (bus_driver_remove_connection):
12998         Don't remove any services here since that's done automatically
12999         by bus_service_remove_owner now.
13000
13001         * bus/driver.h:
13002         New function signatures.
13003
13004         * bus/services.c: (bus_service_add_owner):
13005         Send ServiceAcquired message if we're the only primary owner.
13006
13007         (bus_service_remove_owner):
13008         Send ServiceAcquired/ServiceLost messages.
13009
13010         (bus_service_set_prohibit_replacement),
13011         (bus_service_get_prohibit_replacement):
13012         Functions for setting prohibit replacement.
13013
13014         (bus_service_has_owner):
13015         New function that checks if a connection is in the owner queue of
13016         a certain service.
13017
13018         * bus/services.h:
13019         Add new function signatures.
13020
13021         * dbus/dbus-list.c: (_dbus_list_test):
13022         Add tests for _dbus_list_remove_last and traversing the list backwards.
13023
13024         * dbus/dbus-list.h:
13025         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13026         go any further, so return NULL then.
13027
13028         * dbus/dbus-protocol.h:
13029         Add new messages, service flags and service replies.
13030
13031 2003-01-26  Havoc Pennington  <hp@pobox.com>
13032
13033         * dbus/dbus-message-builder.c: implement, completely untested.
13034
13035         * test/data/*: add data to be used in testing.
13036         ".message" files are our simple loadable text format.
13037         ".message-raw" will be binary dumps of messages.
13038
13039         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13040
13041 2003-01-26  Havoc Pennington  <hp@pobox.com>
13042
13043         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13044
13045         * dbus/dbus-errors.c (dbus_result_to_string): add
13046         file errors
13047
13048         * dbus/dbus-message-builder.c: new file, will contain code to load
13049         up messages from files. Not implemented yet.
13050
13051 2003-01-26  Havoc Pennington  <hp@pobox.com>
13052
13053         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13054         the sender by setting to NULL
13055
13056 2003-01-26  Havoc Pennington  <hp@pobox.com>
13057
13058         The unit tests pass, but otherwise untested.  If it breaks, the
13059         tests should have been better. ;-)
13060
13061         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13062         the connection.
13063
13064         * dbus/dbus-message.c: redo everything so we maintain
13065         message->header as the only copy of the various fields.
13066         This avoids the possibility of out-of-memory in some cases,
13067         for example dbus_message_lock() can't run out of memory anymore,
13068         and avoids extra copying. Figured I may as well go ahead and do
13069         this since it was busted for dbus_message_lock to not return
13070         failure on OOM, and dbus_message_write_header was totally
13071         unchecked for OOM. Also fixed some random other bugs.
13072
13073         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13074         that strings are nul-terminated. Also, end_pos can be equal
13075         to string length just not greater than, I think.
13076         (_dbus_marshal_set_int32): new function
13077         (_dbus_marshal_set_uint32): new function
13078         (_dbus_marshal_set_string): new function
13079
13080         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13081         a warning, init timeout_list to NULL
13082         (dbus_connection_send_message): don't use uninitialized variable
13083         "serial"
13084
13085         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13086
13087 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * bus/driver.c: (bus_driver_handle_hello),
13090         (bus_driver_send_welcome_message):
13091         Plug leaks
13092
13093 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13094
13095         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13096         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13097         (dbus_connection_unref):
13098         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13099         * dbus/dbus-message.c: (dbus_message_unref),
13100         Plug memory leaks.
13101
13102         (dbus_message_get_fields):
13103         Remove debugging printout.
13104
13105         (_dbus_message_loader_return_buffer):
13106         Don't store the header string.
13107
13108         (_dbus_message_test):
13109         Plug leaks.
13110
13111 2003-01-26  Richard Hult  <rhult@codefactory.se>
13112
13113         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13114         the file descriptor list, since it can change under us.
13115
13116 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13117
13118         * glib/dbus-gmain.c: (dbus_connection_prepare),
13119         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13120         (remove_watch), (dbus_connection_hookup_with_g_main):
13121         Rewrite the glib handling to use its own GSource instead of a
13122         GIOChannel so we can catch messages put in the queue while waiting
13123         for a reply.
13124
13125 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * bus/Makefile.am:
13128         * bus/connection.c: (connection_disconnect_handler),
13129         (connection_watch_callback), (bus_connection_setup):
13130         * bus/dispatch.c: (send_one_message),
13131         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13132         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13133         * bus/dispatch.h:
13134         * bus/driver.c: (bus_driver_send_service_deleted),
13135         (bus_driver_send_service_created), (bus_driver_handle_hello),
13136         (bus_driver_send_welcome_message),
13137         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13138         (bus_driver_handle_message):
13139         * bus/driver.h:
13140         Refactor code, put the message dispatching in its own file. Use
13141         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13142         is disconnected.
13143
13144 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13145
13146         * dbus/dbus-internals.h:
13147         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13148
13149         * dbus/dbus-message.c: (dbus_message_get_sender):
13150         * dbus/dbus-message.h:
13151         Implement dbus_message_get_sender.
13152
13153         * dbus/dbus-protocol.h:
13154         Add message and service defines.
13155
13156 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13157
13158         * dbus/dbus-connection.c: (dbus_connection_send_message):
13159         * dbus/dbus-message-internal.h:
13160         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13161         (dbus_message_write_header):
13162         Remove _dbus_messag_unlock and don't set the client serial on a
13163         message if one already exists.
13164
13165 2003-01-24  Havoc Pennington  <hp@pobox.com>
13166
13167         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13168         list_pool
13169
13170         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13171         on OOM
13172
13173 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * dbus/dbus-list.c: (alloc_link), (free_link):
13176         Use a memory pool for the links.
13177
13178 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13179
13180         * bus/connection.c: (bus_connection_foreach):
13181         * bus/connection.h:
13182         Add new bus_connection_foreach function.
13183
13184         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13185         Add function that broadcasts a message to all clients.
13186
13187         (bus_driver_send_service_created), (bus_driver_handle_hello),
13188         (bus_driver_send_welcome_message),
13189         (bus_driver_handle_list_services), (bus_driver_message_handler):
13190         Implement functions that take care of listing services, and notifying
13191         clients when new services are created.
13192
13193         * bus/services.c: (bus_services_list):
13194         * bus/services.h:
13195         Add new function that returns an array of strings with the currently
13196         registered services.
13197
13198         * glib/dbus-glib.h:
13199         * glib/dbus-gmain.c:
13200         Update copyright year.
13201
13202 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13203
13204         * dbus/dbus-connection.c: (dbus_connection_send_message):
13205         Unlock the message in case it was sent earlier.
13206
13207         (dbus_connection_send_message_with_reply_and_block):
13208         Remove the reply message from the list.
13209
13210         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13211         Set array_len and new_pos correctly.
13212
13213         (_dbus_marshal_test):
13214         Remove debug output.
13215
13216         * dbus/dbus-message-internal.h:
13217         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13218         New function that returns the reply serial.
13219
13220         (_dbus_message_unlock):
13221         New function that unlocks a message and resets its header.
13222
13223         (dbus_message_append_string_array),
13224         (dbus_message_get_fields_valist),
13225         (dbus_message_iter_get_field_type),
13226         (dbus_message_iter_get_string_array),
13227         (dbus_message_get_fields),
13228         (dbus_message_append_fields_valist):
13229         Handle string arrays.
13230
13231         (dbus_message_set_sender):
13232         Make this function public since the bus daemon needs it.
13233
13234         (decode_header_data):
13235         Set the reply serial to -1 initially.
13236
13237         * dbus/dbus-message.h:
13238         Add dbus_message_set_sender.
13239
13240 2003-01-24  Havoc Pennington  <hp@pobox.com>
13241
13242         * doc/dbus-specification.sgml: add some stuff
13243
13244 2003-01-22  Havoc Pennington  <hp@pobox.com>
13245
13246         * doc/dbus-specification.sgml: Start to document the protocol.
13247
13248 2003-01-22  Havoc Pennington  <hp@pobox.com>
13249
13250         * dbus/dbus-connection.c
13251         (dbus_connection_send_message_with_reply_and_block): add some @todo
13252
13253         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13254
13255 2003-01-21  Havoc Pennington  <hp@pobox.com>
13256
13257         (patch untested because can't compile)
13258
13259         * bus/driver.c (create_unique_client_name): make this function
13260         never recycle client names. Also, caller should initialize
13261         the DBusString.
13262
13263         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13264
13265 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13266
13267         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13268         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13269         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13270         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13271         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13272         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13273         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13274         * dbus/dbus-marshal.h:
13275         * dbus/dbus-protocol.h:
13276         Add support for marshalling and demarshalling integer, double
13277         and string arrays.
13278
13279 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13280
13281         * bus/Makefile.am:
13282         Add driver.[ch]
13283
13284         * bus/connection.c: (connection_disconnect_handler):
13285         Remove the connection from the bus driver's list.
13286
13287         (connection_watch_callback): Dispatch messages.
13288
13289         (free_connection_data): Free connection name.
13290
13291         (bus_connection_setup): Add connection to the bus driver's list.
13292         (bus_connection_remove_owned_service):
13293         (bus_connection_set_name), (bus_connection_get_name):
13294         Add functions for setting and getting the connection's name.
13295
13296         * bus/connection.h:
13297         Add function headers.
13298
13299         * bus/driver.c: (create_unique_client_name),
13300         (bus_driver_handle_hello_message),
13301         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13302         (bus_driver_add_connection), (bus_driver_remove_connection):
13303         * bus/driver.h:
13304         * bus/main.c:
13305         * bus/services.c: (bus_service_free):
13306         * bus/services.h:
13307         New file that handles communication and registreation with the bus
13308         itself.
13309
13310 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13311
13312         * dbus/dbus-connection.c: (dbus_connection_send_message):
13313         Add a new client_serial parameter.
13314
13315         (dbus_connection_send_message_with_reply):
13316         Remove a @todo since we've implemented the blocking function.
13317
13318         (dbus_connection_send_message_with_reply_and_block):
13319         New function that sends a message and waits for a reply and
13320         then returns the reply.
13321
13322         * dbus/dbus-connection.h:
13323         Add new functions.
13324
13325         * dbus/dbus-errors.c: (dbus_result_to_string):
13326         * dbus/dbus-errors.h:
13327         Add new DBUS_RESULT.
13328
13329         * dbus/dbus-message-internal.h:
13330         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13331         (_dbus_message_set_sender), (dbus_message_write_header),
13332         (dbus_message_new_reply), (decode_header_data),
13333         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13334         * dbus/dbus-message.h:
13335         Add new functions that set the reply serial and sender.
13336         Also marshal and demarshal them correctly and add test.
13337
13338         * dbus/dbus-protocol.h:
13339         Add new DBUS_MESSAGE_TYPE_SENDER.
13340
13341         * glib/dbus-glib.h:
13342         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13343         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13344         (dbus_connection_hookup_with_g_main):
13345         * glib/test-dbus-glib.c: (main):
13346         Rewrite to use GIOChannel and remove the GSource crack.
13347
13348         * test/echo-client.c: (main):
13349         * test/watch.c: (check_messages):
13350         Update for changed APIs
13351
13352 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13353
13354         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13355
13356         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13357         Create a DBusTimeoutList.
13358         (dbus_connection_set_timeout_functions): Add new function to
13359         set timeout callbacks
13360
13361         * dbus/dbus-connection.h: Add public DBusTimeout API.
13362
13363         * dbus/dbus-message.c: (dbus_message_get_service):
13364         * dbus/dbus-message.h:  New function.
13365
13366         * dbus/dbus-server.c: Fix small doc typo.
13367
13368         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13369
13370 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13371
13372         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13373         of the string, just as long as specified.
13374
13375 2003-01-19  Havoc Pennington  <hp@pobox.com>
13376
13377         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13378         new function
13379
13380         * dbus/dbus-server.c (dbus_server_set_max_connections)
13381         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13382         keep track of current number of connections, and add API for
13383         setting a max (but haven't implemented enforcing the max yet)
13384
13385 2003-01-18  Havoc Pennington  <hp@pobox.com>
13386
13387         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13388         reading/writing if read_watch != NULL or write_watch != NULL.
13389
13390         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13391         the message loader code to actually load message->header and
13392         message->body into the newly-created message.
13393
13394         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13395         in OOM case
13396
13397         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13398         (dbus_connection_get_max_message_size)
13399         (dbus_connection_set_max_live_messages_size)
13400         (dbus_connection_get_max_live_messages_size): implement some
13401         resource limitation functions
13402
13403         * dbus/dbus-resources.c: new file implementing some of the
13404         resource limits stuff
13405
13406         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13407         missing docs, add @todo to handle OOM etc.
13408
13409         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13410         docs
13411
13412 2003-01-18  Havoc Pennington  <hp@pobox.com>
13413
13414         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13415         connection if it hasn't been already.
13416
13417         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13418         replace with DisconnectFunction.
13419
13420 2003-01-18  Havoc Pennington  <hp@pobox.com>
13421
13422         Building --disable-verbose-mode --disable-asserts --disable-tests
13423         cuts the library from 112K to 45K or so
13424
13425         * configure.in: check for varargs macro support,
13426         add --enable-verbose-mode, --enable-asserts.
13427
13428         * dbus/dbus-internals.h (_dbus_assert): support
13429         DBUS_DISABLE_ASSERT
13430         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13431
13432 2003-01-18  Havoc Pennington  <hp@pobox.com>
13433
13434         * dbus/dbus-test.c: include config.h so that tests actually run
13435
13436         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13437         so the failure mode when that assumption fails will be plenty
13438         obvious.
13439
13440 2003-01-18  Havoc Pennington  <hp@pobox.com>
13441
13442         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13443
13444         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13445         the distribution
13446
13447         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13448         since we don't want to use those in make check
13449
13450 2003-01-15  Havoc Pennington  <hp@redhat.com>
13451
13452         Release 0.2
13453
13454         * NEWS: update
13455
13456 2003-01-15  Havoc Pennington  <hp@redhat.com>
13457
13458         * test/Makefile.am: fix so that test source code ends up in the
13459         distribution on make distcheck
13460
13461 2003-01-15  Havoc Pennington  <hp@redhat.com>
13462
13463         Release 0.1.
13464
13465         * NEWS: update
13466
13467 2003-01-15  Havoc Pennington  <hp@redhat.com>
13468
13469         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13470         fix build when --disable-tests
13471
13472         * Makefile.am (EXTRA_DIST): put HACKING in here
13473
13474         * HACKING: document procedure for making a tarball release.
13475
13476 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13477
13478         * bus/connection.c: (connection_error_handler),
13479         (bus_connection_setup):
13480         * bus/main.c: (main):
13481         Make sure that the DBusConnectionData struct is NULLed
13482         out to prevent a segfault.
13483
13484         * dbus/dbus-errors.c: (dbus_result_to_string):
13485         * dbus/dbus-errors.h:
13486         * dbus/dbus-message.c: (dbus_message_get_fields),
13487         (dbus_message_get_fields_valist), (_dbus_message_test):
13488         * dbus/dbus-message.h:
13489         Make dbus_message_get_fields return a result code so we can
13490         track invalid fields as well as oom.
13491
13492 2003-01-11  Havoc Pennington  <hp@pobox.com>
13493
13494         * configure.in: change --enable-test/--enable-ansi action-if-given
13495         to enable_foo=$enableval instead of enable_foo=yes
13496
13497 2003-01-08  Havoc Pennington  <hp@pobox.com>
13498
13499         * dbus/dbus-string.c (_dbus_string_align_length): new function
13500
13501         * dbus/dbus-test-main.c: move main() for test app here
13502         * dbus/dbus-test.c
13503         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13504         symbol to run tests, because dbus-test isn't in the main
13505         library
13506
13507         Code review nitpicks.
13508
13509         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13510         for people with narrow emacs ;-). Assert client_serial was filled
13511         in. Assert message->name != NULL.
13512         (dbus_message_append_fields): have "first_field_type" arg separate
13513         from va list, needed for C++ binding that also uses varargs IIRC
13514         and helps with type safety
13515         (dbus_message_new): add @todo about using DBusString to store
13516         service/name internally
13517         (dbus_message_new): don't leak ->service and ->name on OOM later
13518         in the function
13519         (dbus_message_unref): free the service name
13520         (dbus_message_get_fields): same change to varargs
13521         i.e. first_field_type
13522         (_dbus_message_loader_return_buffer): assert that the message data
13523         is aligned (if not it's a bug in our code). Put in verbose griping
13524         about why we set corrupted = TRUE.
13525         (decode_header_data): add FIXME that char* is evil.  Was going to
13526         add FIXME about evil locale-specific string.h strncmp, but just
13527         switched to wacky string-as-uint32 optimization. Move check for
13528         "no room for field name" above get_const_data_len() to avoid
13529         assertion failure in get_const_data_len if we have trailing 2
13530         bytes or the like. Check for service and name fields being
13531         provided twice. Don't leak service/name on error. Require field
13532         names to be aligned to 4 bytes.
13533
13534         * dbus/dbus-marshal.c: move byte swap stuff to header
13535         (_dbus_pack_int32): uscore-prefix
13536         (_dbus_unpack_int32): uscore-prefix
13537         (_dbus_unpack_uint32): export
13538         (_dbus_demarshal_string): add @todo complaining about use of
13539         memcpy()
13540         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13541         handling allowing corrupt data to go unchecked
13542
13543 2003-01-08  Havoc Pennington  <hp@redhat.com>
13544
13545         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13546         to the select() as needed for authentication. (should be using
13547         _dbus_poll() not select, but for another day)
13548
13549         * dbus/dbus.h: include dbus/dbus-protocol.h
13550
13551 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13552
13553         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13554         dbus-connection.h
13555
13556 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13557
13558         * dbus/dbus-internals.c: (_dbus_type_to_string):
13559         New function that returns a string describing a type.
13560
13561         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13562         * dbus/dbus-marshal.h:
13563         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13564         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13565         (dbus_message_iter_get_byte_array):
13566         * dbus/dbus-message.h:
13567         Add new convenience functions for appending and getting message fields.
13568         Also add demarshalling routines for byte arrays.
13569
13570 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13571
13572         * dbus/dbus-connection-internal.h:
13573         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13574         (_dbus_connection_get_next_client_serial),
13575         (dbus_connection_send_message):
13576         * dbus/dbus-internals.h:
13577         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13578         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13579         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13580         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13581         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13582         (_dbus_verbose_bytes), (_dbus_marshal_test):
13583         * dbus/dbus-marshal.h:
13584         * dbus/dbus-message-internal.h:
13585         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13586         (dbus_message_write_header), (_dbus_message_lock),
13587         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13588         (dbus_message_get_name), (dbus_message_append_int32),
13589         (dbus_message_append_uint32), (dbus_message_append_double),
13590         (dbus_message_append_string), (dbus_message_append_byte_array),
13591         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13592         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13593         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13594         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13595         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13596         (decode_header_data), (_dbus_message_loader_return_buffer),
13597         (message_iter_test), (_dbus_message_test):
13598         * dbus/dbus-message.h:
13599         * dbus/dbus-protocol.h:
13600         * dbus/dbus-test.c: (main):
13601         * dbus/dbus-test.h:
13602         * glib/test-dbus-glib.c: (message_handler), (main):
13603         * test/echo-client.c: (main):
13604         * test/watch.c: (check_messages):
13605         Make messages sendable and receivable for real.
13606
13607 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13608
13609         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13610         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13611         * dbus/dbus-message.c: (dbus_message_append_int32),
13612         (dbus_message_append_uint32), (dbus_message_append_double),
13613         (dbus_message_append_string), (dbus_message_append_byte_array):
13614         Handle OOM restoration.
13615
13616 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13619         (_dbus_demarshal_string), (_dbus_marshal_test):
13620         * dbus/dbus-marshal.h:
13621         * dbus/dbus-message.c: (dbus_message_get_name),
13622         Document these functions.
13623
13624         (dbus_message_append_int32), (dbus_message_append_uint32),
13625         (dbus_message_append_double), (dbus_message_append_string),
13626         (dbus_message_append_byte_array):
13627         * dbus/dbus-message.h:
13628         Add functions for adding message fields of different types.
13629
13630         * dbus/dbus-protocol.h:
13631         Add the different types.
13632
13633 2003-01-05  Havoc Pennington  <hp@pobox.com>
13634
13635         * bus/connection.c: implement routines for handling connections,
13636         first thing is keeping a list of owned services on each connection
13637         and setting up watches etc.
13638
13639         * bus/services.c: implement a mapping from service names to lists
13640         of connections
13641
13642         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13643
13644         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13645         to use static mutexes for global data
13646
13647         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13648         collection of functions to set/get application-specific data
13649         on the DBusConnection.
13650
13651 2003-01-04  Havoc Pennington  <hp@pobox.com>
13652
13653         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13654         (_dbus_poll): new function
13655
13656         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13657         copied from GLib
13658
13659         * bus/loop.c: initial code for the daemon main loop
13660
13661 2003-01-04  Havoc Pennington  <hp@pobox.com>
13662
13663         * test/watch.c (error_handler): make it safe if the error handler
13664         is called multiple times (if we s/error handler/disconnect
13665         handler/ we should just guarantee it's called only once)
13666
13667         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13668         error handler on disconnect (it's quite possible we should
13669         just change the error handler to a "disconnect handler," I'm
13670         not sure we have any other meaningful errors)
13671
13672         * configure.in: check for getpwnam_r
13673
13674         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13675         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13676         mechanism as in SASL spec, using socket credentials
13677
13678         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13679         (_dbus_send_credentials_unix_socket): new function
13680
13681         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13682         dbus_accept()
13683         (_dbus_write): only check errno if <0 returned
13684         (_dbus_write_two): ditto
13685
13686 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13687
13688         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13689         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13690         (_dbus_marshal_test):
13691         * dbus/dbus-marshal.h:
13692         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13693         to _dbus_marshal_utf8_string. Also fix some tests.
13694
13695 2002-12-28  Harri Porten  <porten@kde.org>
13696
13697         * configure.in: added check for C++ compiler and a very cheesy
13698         check for the Qt integration
13699
13700         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13701
13702         * qt/Makefile.am: added
13703
13704         * qt/.cvsignore: added
13705
13706         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13707         latter, added #ifdef QT_THREAD_SUPPORT guard.
13708
13709         * dbus/Makefile.am: added missing headers for make dist
13710
13711 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13712
13713         * dbus/Makefile.am: fixup export-symbols-regex.
13714
13715 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13716
13717         * acinclude.m4: Add this file and put the
13718         PKG_CHECK_MODULE macro in it.
13719
13720 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13721
13722         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13723         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13724         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13725         (_dbus_marshal_test):
13726         Make the demarshalling routines align the pos argument.
13727         Add string marshalling tests and fix the obvious bugs
13728         discovered.
13729
13730 2002-12-26  Havoc Pennington  <hp@pobox.com>
13731
13732         * dbus/dbus-auth.c: fixes fixes fixes
13733
13734         * dbus/dbus-transport-unix.c: wire up support for
13735         encoding/decoding data on the wire
13736
13737         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13738         (_dbus_auth_decode_data): append to target string
13739         instead of nuking it.
13740
13741 2002-12-26  Havoc Pennington  <hp@pobox.com>
13742
13743         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13744         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13745         doh
13746
13747         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13748         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13749         now). Main point is because I wanted unpack_uint32 to implement
13750         _dbus_verbose_bytes
13751         (_dbus_verbose_bytes): new function
13752
13753         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13754
13755         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13756         mechanism to handle a corrupt message stream
13757         (_dbus_message_loader_new): fix preallocation to only prealloc,
13758         not prelengthen
13759
13760         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13761         (_dbus_string_test): enhance tests for copy/move and fix the
13762         functions
13763
13764         * dbus/dbus-transport-unix.c: Hold references in more places to
13765         avoid reentrancy problems
13766
13767         * dbus/dbus-transport.c: ditto
13768
13769         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13770         leak reference count in no-message case
13771
13772         * test/watch.c (do_mainloop): handle adding/removing watches
13773         during iteration over the watches. Also, ref the connection/server
13774         stored on a watch, so we don't try to mangle a destroyed one.
13775
13776         * dbus/dbus-transport-unix.c (do_authentication): perform
13777         authentication
13778
13779         * dbus/dbus-auth.c (get_state): add a state
13780         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13781         (_dbus_auth_get_unused_bytes): append the unused bytes
13782         to the passed in string, rather than prepend
13783
13784         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13785         the auth conversation DBusAuth
13786
13787         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13788         (_dbus_transport_new_for_domain_socket): when creating a
13789         transport, pass in whether it's a client-side or server-side
13790         transport so we know which DBusAuth to create
13791
13792 2002-12-03  Havoc Pennington  <hp@pobox.com>
13793
13794         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13795         _after_ finalizing the derived members
13796         (unix_connection_set): unref watch if we fail to add it
13797
13798         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13799         transport first, so that the connection owned by the
13800         transport will be valid as the transport finalizes.
13801
13802         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13803         if necessary, and remove watches from the connection.
13804
13805         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13806
13807 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13808
13809         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13810         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13811         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13812         (_dbus_marshal_test):
13813         * dbus/dbus-marshal.h:
13814         Add string marshal functions and have the demarshal functions
13815         return the new position.
13816
13817 2002-12-25  Havoc Pennington  <hp@pobox.com>
13818
13819         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13820         it is a simple protocol that just maps directly to SASL.
13821
13822         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13823         initial implementation, not actually used yet.
13824
13825         * dbus/dbus-string.c (_dbus_string_find): new function
13826         (_dbus_string_equal): new function
13827         (_dbus_string_base64_encode): new function
13828         (_dbus_string_base64_decode): new function
13829
13830 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13831
13832         * dbus/Makefile.am:
13833         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13834         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13835         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13836         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13837         * dbus/dbus-marshal.h:
13838         * dbus/dbus-protocol.h:
13839         * dbus/dbus-test.c: (main):
13840         * dbus/dbus-test.h:
13841         Add un-optimized marshalling/demarshalling routines.
13842
13843 2002-12-25  Harri Porten  <porten@kde.org>
13844
13845         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13846
13847 2002-12-24  Zack Rusin  <zack@kde.org>
13848
13849         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13850         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13851         main loop stuff
13852
13853 2002-12-24  Havoc Pennington  <hp@pobox.com>
13854
13855         * glib/dbus-gthread.c: fix include
13856
13857         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13858         I think glib API needs to change, though, as you don't
13859         want to use DBusMessageFunction, you want to use the
13860         DBusMessageHandler object. Probably
13861         dbus_connection_open_with_g_main_loop()
13862         and dbus_connection_setup_g_main_loop() or something like that
13863         (but think of better names...) that just create a connection
13864         that has watch/timeout functions etc. already set up.
13865
13866         * dbus/dbus-connection.c
13867         (dbus_connection_send_message_with_reply): new function just to
13868         show how the message handler helps us deal with replies.
13869
13870         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13871
13872         * dbus/dbus-string.c (_dbus_string_test): free a string that
13873         wasn't
13874
13875         * dbus/dbus-hash.c: use memory pools for the hash entries
13876         (rebuild_table): be more paranoid about overflow, and
13877         shrink table when we can
13878         (_dbus_hash_test): reduce number of sprintfs and write
13879         valid C89. Add tests for case where we grow and then
13880         shrink the hash table.
13881
13882         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13883
13884         * dbus/dbus-connection.c (dbus_connection_register_handler)
13885         (dbus_connection_unregister_handler): new functions
13886
13887         * dbus/dbus-message.c (dbus_message_get_name): new
13888
13889         * dbus/dbus-list.c: fix docs typo
13890
13891         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13892         an object representing a handler for messages.
13893
13894 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13895
13896         * glib/dbus-glib.h:
13897         * glib/dbus-gthread.c: (dbus_gthread_init):
13898         Don't use the gdbus prefix for public functions.
13899
13900 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13901
13902         * Makefile.am:
13903         * configure.in:
13904         Add GLib checks and fixup .pc files
13905
13906         * glib/Makefile.am:
13907         * glib/dbus-glib.h:
13908         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13909         (gdbus_connection_check), (gdbus_connection_dispatch),
13910         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13911         (dbus_connection_gsource_new):
13912         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13913         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13914         * glib/test-dbus-glib.c: (message_handler), (main):
13915         Add GLib support.
13916
13917 2002-12-15  Harri Porten  <porten@kde.org>
13918
13919         * autogen.sh: check for libtoolize before attempting to use it
13920
13921         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13922         struct.
13923
13924         * .cvsignore: ignore more stamp files
13925
13926         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13927
13928         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13929         without make install.
13930
13931 2002-12-15  Havoc Pennington  <hp@pobox.com>
13932
13933         * dbus/dbus-threads.c: add thread stubs that a higher library
13934         layer can fill in. e.g. the GLib wrapper might fill them in with
13935         GThread stuff. We still need to use this thread API to
13936         thread-safe-ize the library.
13937
13938 2002-12-12  Havoc Pennington  <hp@pobox.com>
13939
13940         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13941         below new interfaces and include fewer system headers.
13942
13943         * dbus/dbus-sysdeps.c (_dbus_read): new function
13944         (_dbus_write): new function
13945         (_dbus_write_two): new function
13946         (_dbus_connect_unix_socket): new function
13947         (_dbus_listen_unix_socket): new function
13948
13949         * dbus/dbus-message-internal.h: change interfaces to use
13950         DBusString
13951
13952 2002-12-11  Havoc Pennington  <hp@pobox.com>
13953
13954         * dbus/dbus-types.h: add dbus_unichar
13955
13956         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13957
13958         * dbus/dbus-connection.c (dbus_connection_send_message): return
13959         TRUE on success
13960
13961         * dbus/dbus-transport.c: include dbus-watch.h
13962
13963         * dbus/dbus-connection.c: include dbus-message-internal.h
13964
13965         * HACKING: add file with coding guidelines stuff.
13966
13967         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13968         handling here, for security purposes (as in vsftpd). Not actually
13969         using this class yet.
13970
13971         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13972         system/libc usage here, as in vsftpd, for ease of auditing (and
13973         should also simplify portability). Haven't actually moved all the
13974         system/libc usage into here yet.
13975
13976 2002-11-25  Havoc Pennington  <hp@pobox.com>
13977
13978         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13979         always print the first verbose message.
13980
13981 2002-11-24  Havoc Pennington  <hp@pobox.com>
13982
13983         * test/echo-client.c, test/echo-server.c: cheesy test
13984         clients.
13985
13986         * configure.in (AC_CHECK_FUNCS): check for writev
13987
13988         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13989         function
13990
13991         * dbus/dbus-list.c (_dbus_list_foreach): new function
13992
13993         * dbus/dbus-internals.c (_dbus_verbose): new function
13994
13995         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13996         representing a server that listens for connections.
13997
13998         * dbus/.cvsignore: create
13999
14000         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14001         public API for reporting errors
14002
14003         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14004         public object representing a connection that
14005         sends/receives messages. (Same object used for
14006         both client and server.)
14007
14008         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14009         Basic abstraction for different kinds of stream
14010         that we might read/write messages from.
14011
14012 2002-11-23  Havoc Pennington  <hp@pobox.com>
14013
14014         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14015         _DBUS_INT_MAX
14016
14017         * dbus/dbus-test.c (main): add list test, and include
14018         dbus-test.h as intended
14019
14020         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14021         (_dbus_hash_table_remove_int): return value indicates
14022         whether the entry existed to remove
14023
14024         * dbus/dbus-list.c: add linked list utility class,
14025         with docs and tests
14026
14027         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14028         array sometimes.
14029
14030 2002-11-23  Havoc Pennington  <hp@pobox.com>
14031
14032         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14033         DBUS_END_DECLS to nothing, that should fix this once and for all
14034
14035         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14036
14037         * dbus/dbus-message.c, dbus/dbus-hash.c:
14038         add some missing @brief
14039
14040 2002-11-23  Havoc Pennington  <hp@pobox.com>
14041
14042         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14043         to avoid confusing Doxygen
14044
14045         * dbus/dbus-hash.c: @} not }@
14046
14047         * dbus/dbus-message.c (struct DBusMessage): split out
14048         internals docs
14049
14050 2002-11-23  Havoc Pennington  <hp@pobox.com>
14051
14052         * configure.in: pile on more warning flags if using gcc
14053
14054         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14055         to document static functions
14056
14057         * configure.in: add summary to end of configure so it
14058         looks nice and attractive
14059
14060         * dbus/dbus-hash.c: finish implementation and write unit
14061         tests and docs
14062
14063         * configure.in: add --enable-tests to enable unit tests
14064
14065         * dbus/dbus-test.c: test program to run unit tests
14066         for all files in dbus/*, initially runs a test for
14067         dbus-hash.c
14068
14069         * dbus/dbus-internals.h: file to hold some internal utility stuff
14070
14071 2002-11-22  Havoc Pennington  <hp@redhat.com>
14072
14073         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14074         "ported" away from Tcl
14075
14076         * dbus/dbus-types.h: header for types such as dbus_bool_t
14077
14078 2002-11-22  Havoc Pennington  <hp@redhat.com>
14079
14080         * dbus/dbus.h: fixups for doc warnings
14081
14082         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14083         macros
14084         (QUIET): make it quiet so we can see warnings
14085
14086         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14087
14088 2002-11-22  Havoc Pennington  <hp@redhat.com>
14089
14090         * Makefile.am: include "Doxyfile" target in all-local
14091
14092         * configure.in: generate the Doxyfile
14093
14094         * Doxyfile.in: move Doxyfile here, so we can use
14095         configure to generate a Doxyfile with the right
14096         version number etc.
14097
14098 2002-11-22  Havoc Pennington  <hp@redhat.com>
14099
14100         * dbus/dbus-message.c: move inline docs into .c file
14101
14102         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14103         so all docs are under doc/
14104         (MAN_EXTENSION): generate man pages. Use extension
14105         ".3dbus" which matches ".3qt" on my system,
14106         I guess this is OK, I don't know really.
14107         (FILE_PATTERNS): look for .c files not .h, makes sense
14108         for plain C I think
14109
14110 2002-11-22  Havoc Pennington  <hp@pobox.com>
14111
14112         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14113         because any app can be a server, and any app can be a client,
14114         the bus is a special kind of server.
14115
14116 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14117
14118         * Doxyfile : adding. Still needs Makefile rules to be generated
14119         automatically (just run "doxygen" in the toplevel dir for now to
14120         generate docs)
14121
14122         * dbus/dbus-message.h : Adding sample docs (javadoc since
14123         resembles gtk-doc a little more)
14124
14125         * dbus/dbus.h : Adding sample docs
14126
14127 2002-11-21  Havoc Pennington  <hp@redhat.com>
14128
14129         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14130         so we can allow ourselves to include files directly,
14131         instead of having to use dbus.h
14132
14133         * dbus/dbus.h: fill in
14134
14135         * dbus/dbus-message.h: sketch out a sample header file.
14136         Include griping if you include it directly instead of
14137         via dbus.h
14138
14139         * dbus/dbus-macros.h: new file with macros for extern "C",
14140         TRUE/FALSE, NULL, etc.
14141
14142         * doc/file-boilerplate.c: put include guards in here
14143
14144 2002-11-21  Havoc Pennington  <hp@redhat.com>
14145
14146         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14147
14148         * COPYING: include the GPL as well, and license code
14149         under both AFL and GPL.
14150
14151 2002-11-21  Havoc Pennington  <hp@redhat.com>
14152
14153         * acconfig.h: get rid of this
14154
14155         * autogen.sh (run_configure): add --no-configure option
14156
14157         * configure.in: remove AC_ARG_PROGRAM to make
14158         autoconf complain less. add AC_PREREQ.
14159         add AC_DEFINE third arg.
14160
14161 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14162
14163         * doc/Makefile.am:
14164         Fix references so we can distcheck.
14165
14166 2002-11-21  Havoc Pennington  <hp@redhat.com>
14167
14168         * Initial module creation
14169