* dbus/dbus-pending-call.c: Add some checks so we don't crash on
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
4         NULL in the public API (Patch from Kimmo Hämäläinen 
5         <kimmo dot hamalainen at nokia dot com>)
6
7 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
8
9         * configure.in: Fix for OS-X compile time endian issues (patch from
10         Benjamin Reed <ranger at befunk dot com>)
11
12 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
13
14         * configure.in: Check for no-common compiler flag (OS-X fix from
15         Benjamin Reed <ranger at befunk dot com>)
16
17 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
18
19         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
20         <fcrozat at mandriva dot com>)
21
22 2006-08-29  Havoc Pennington  <hp@redhat.com>
23
24         * test/test-service.c (path_message_func): fix lack of return value
25
26         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
27         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
28         any more sense than on anything else in this file.
29         (_dbus_get_tmpdir): add const to return value, and keep the
30         results of the various getenv around in a static variable.
31
32 2006-08-29  Havoc Pennington  <hp@redhat.com>
33
34         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
35         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
36
37 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
38
39         * test/Makefile.am: change find to use syntax that works with non
40         gnu versions of find
41
42 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
43
44         * dbus/dbus-transport.c: fix invalid deref when checking if
45         a vtable method exists (Patch from Christian Ehrlicher 
46         <ch dot ehrlicher at gmx dot de>)
47
48 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
49
50         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
51         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
52         to build with builddir != srcdir (Taken from a patch by Bernard Leak
53         <bernard at brenda-arkle dot demon dot co dot uk>)
54
55 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
56
57         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
58         default case
59
60 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
61
62         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
63         it works on any system providing this interface, not only FreeBSD.
64         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
65
66 2006-08-20  Havoc Pennington  <hp@redhat.com>
67
68         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
69         the docs
70
71 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
72
73         * Released 0.92 
74
75 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
76
77         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
78         to reflect the init late change
79
80         * bus/bus.c (bus_context_new): Check user before we fork so we can
81         print out an error message a user will be able to see
82
83 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
84
85         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
86
87         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
88         Add two more global locks for use on windows platforms.  These are
89         unused on non-windows platforms but are not ifdefed out to avoid
90         potential bugs (i.e. the few bytes lost does not warrent the extra
91         maintanence and complexity that having seperate sets of locks would
92         cause)
93
94 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
95
96         * bus/services.c (bus_registry_acquire_service): Return an error
97         when an application tries to register the org.freedesktop.DBus Bus Name
98
99         * bus/services.c (bus_registry_release_service): Return an error
100         when an application tries to release the org.freedesktop.DBus Bus Name
101
102 2006-08-17  Alp Toker  <alp@atoker.com>
103
104         * doc/dbus-specification.xml: Fix some minor typos.
105
106 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
107
108         * configure.in: use $with_init_scripts instead of $operating_system
109         to determine where to store the pid since the init scripts manipulate 
110         the pid file (patch from Marcelo Ricardo Leitner 
111         <marcelo dot leitner at terra dot com dot br>.  
112
113 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
114
115         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
116         static DBusList *uninitialized_condvar_list to support new late 
117         initialization threading model.  In this model threads can be initialized
118         even after the D-Bus API has been used but still needs to be initialized 
119         before the second thread has been started.  Mutexes and condvar addresses
120         are stored in the two static lists and are replaced with actuall locks
121         when threads are initalized.
122         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
123         the location into the static list
124         (_dbus_mutex_free_at_location): New method for removing a mutex location 
125         from the static list and freeing the mutex
126         (_dbus_condvar_new_at_location): New method for creating a conditional 
127         variable and placing the location into the static list
128         (_dbus_condvar_free_at_location): New method for removing a conditional
129         variable location from the static list and freeing the conditional variable 
130         (init_uninitialized_locks): Atomic method which goes through the static 
131         lists of mutex and condvar location and updates them with actuall locks
132         (init_global_locks): changed to init_locks
133         
134         * dbus/dbus-connection.c:
135         (_dbus_connection_test_get_locks): New method for tests to check connections
136         (_dbus_connection_new_for_transport): Use the new at_location mutex and
137         condvar API
138         (dbus_connection_allocate_data_slot): Pass in the global lock address
139         to _dbus_data_slot_allocator_alloc
140
141         * dbus/dbus-dataslot.c:
142         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
143         instead of the mutex itself
144
145         * dbus/dbus-message.c:
146         (dbus_message_allocate_data_slot): Pass in the global lock address
147         to _dbus_data_slot_allocator_alloc
148
149         * dbus/dbus-pending-call.c:
150         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
151         to _dbus_data_slot_allocator_alloc
152
153         * dbus/dbus-server.c:
154         (_dbus_server_init_base): Use the new at_location mutex API
155         (dbus_server_allocate_data_slot): Pass in the global lock address
156         to _dbus_data_slot_allocator_alloc
157
158         * test/name-test/test-threads-init.c: New test case for late thread
159         initialization
160
161 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
162
163         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
164         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
165         causes compile problems when asserts are turned off
166         Keeping _dbus_warn for printing out the message so even if
167         asserts are turned off the user gets the messages that something is 
168         wrong 
169
170 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
171
172         Patches by Kjartan Maraas <kmaraas at gnome dot org>
173
174         * bus/services.c (bus_service_list_queued_owners):
175         Add a pointer cast to fix compiler warning
176
177         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
178         return a NULL instead of FALSE since the return type
179         is not expecting a boolean
180
181         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
182         Remove unused variable
183
184         * dbus/dbus-marshal-recursive-util.c (node_new):
185         return a NULL instead of FALSE since the return type
186         is not expecting a boolean
187
188         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
189         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
190         because we are expecting a pointer not a boolean
191
192         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
193         add void as the parameter so some compilers
194         don't complain
195
196         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
197           _dbus_transport_new_for_tcp_socket):
198         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
199         because we are expecting a pointer not a boolean
200
201         * test/shell-test.c (test_command_line):
202         cast the second argument to _dbus_list_append to avoid compiler
203         warnings
204
205         * test/test-names.c (main): remove unused variable
206
207         * test/test-service.c (check_hello_from_self_reply):
208         Initialize echo_message and echo_reply to NULL
209         
210         * test/test-shell-service.c (handle_echo):
211         Remove unused variable and cast the third parameter passed to
212         dbus_connection_get_object_path_data to avoid compiler warrnings
213
214         * test/name-test/test-names.c (clear_message_queue):
215         Remove unused function
216
217         * test/name-test/test-pending-call-dispatch.c:
218         Fix format string in printf
219
220
221 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
222
223         * dbus/dbus-bus.c:
224         * test/name-test/test-names.c:
225         Remove test method dbus_bus_connection_get_unique_name because 
226         we already have public method dbus_bus_get_unique_name that 
227         does the exact same thing
228
229 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
230
231         * dbus/dbus-signature.c:
232         fix typos in Julio's previous patch which cause make check to fail
233
234 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
235
236         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
237         In any case it was wrong since this is a test checking to see if
238         address parsing is correct.  There was no need to get the true
239         tmp directory.  
240
241 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
242
243         * dbus/dbus-macros.h: Revert the addition of stddef.h
244         as we should not be adding it to library headers 
245
246 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
247
248         * dbus/dbus-signature.c:
249         Fix the unit tests so that they work if assertions are not enabled.
250         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
251
252 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
253
254         * tools/run-with-tmp-session-bus.sh:
255         * test/name-test/run-test.sh:
256         Remove bashisms (patch from Julio M. Merino Vidal
257         <jmmv at NetBSD dot org>)
258
259 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
260
261         * configure.in: add a version (>= 2.6.0) check for libxml2
262
263 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
264
265         * configure.in: make sure the compiler supports -Wfloat-equal
266         
267         * bus/dir-watch-dnotify.c: move functional code after 
268         variable declerations (C99 fix)  (patches from Jens Granseuer
269         <jensgr at gmx dot net>
270
271 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
272
273         * dbus/dbus-macros.h:
274         add #include <stddef.h> so that Sun compilers don't complain about
275         the defining NULL
276
277 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
278
279         * dbus/dbus-sysdeps.c:
280         * dbus/dbus-address.c:
281         * bus/activation.c:
282         * test/shell-test.c:
283         don't hardcode tmp directory (patch from Dave Meikle 
284         <dmk at davemeikle dot co dot uk>)
285
286 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
287
288         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
289         Change an assert to a detailed warning and abort.  
290         When allocator->lock != mutex it indicates that the user has failed
291         to initalize threads before using the D-Bus library.  This warning
292         helps the user identify the issue and fix their app.
293
294 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
295
296         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
297         with cleanups of bugs found from Coverity reports:
298
299         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
300         close the file on error to avoid a leak
301
302         * bus/expirelist.c (bus_expire_list_test):
303         Check for NULL on dbus_new0
304
305         * bus/activation.c (update_directory):
306         remove dead code
307
308         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
309         Fix some leaks
310
311         * bus/bus.c (process_config_every_time):
312         Fixed a leak
313
314         * bus/desktop-file.c (parse_key_value):
315         Fixed leak
316
317         * bus/selinux.c (bus_selinux_id_table_insert):
318         Fixed leak
319
320 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
321
322         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
323         remove dead code
324
325 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
326
327         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
328         #!/bin/bash
329
330 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
331
332         * Doxyfile.in: fix the INPUT line so we can generate docs 
333         when sourcedir != builddir (patch from Cygwin Ports maintainer
334         <yselkowitz at users dot sourceforge dot net>
335
336 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
337
338         * dbus/dbus-sysdeps.h:
339         * dbus/dbus-sysdeps.c: 
340         * dbus/dbus-string.c: 
341         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
342         GLib's function which does the same thing
343
344         * configure.in:
345         * bus/Makefile.am:
346         * bus/dir-watch-default.c:
347         * bus/dir-watch-dnotify.c:
348         * bus/dir-watch-kqueue.c:
349         Add kqueue directory watching for freebsd and split the directory
350         watching code into seperate files per method/arch
351         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
352
353 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
354
355         * configure.in:
356         * tools/Makefile.am:
357         * tools/dbus-launch.c:
358         * bus/Makefile.am:
359         allow --with-dbus-daemondir switch to be used to make the
360         daemon install to a seperate bindir like /usr/libexec
361         (patch from Brian Cameron <brian dot cameron at sun dot com)
362
363 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
364
365         * bus/Makefile.am (install-data-hook): removed the slash after 
366         $(DESTDIR) so we don't get the double slash which does not work
367         in windows (patch from Andras Porjesz 
368         <andras dot porjesz at siemens dot com>)
369
370 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
371
372         * dbus/dbus-sysdeps.h:
373         * dbus/dbus-sysdeps.c: 
374           add _dbus_printf_length (patch from Peter Kümmel 
375           <syntheticpp at gmx dot net>)
376
377 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
378
379         * dbus/dbus-internals.c: unistd.h is not used 
380         (_dbus_verbose_real): only enable verbose printing 
381         if DBUS_VERBOSE environment var is set to '1'
382         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
383
384 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
385
386         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
387         so we still compile on older gcc (patch from Frederic Peters 
388         <fpeters at 0d dot be>
389
390 2006-08-04  Havoc Pennington  <hp@redhat.com>
391
392         * configure.in: add -Wdeclaration-after-statement
393
394         * dbus/dbus-connection.c: change all the pending call stuff to
395         reflect the fact that pending call operations use the connection
396         lock
397
398         * dbus/dbus-pending-call.c: add locking here
399
400         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
401         field const consistent with how message field is done
402
403 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
404
405         * s/D-BUS/D-Bus/g
406
407 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
408
409         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
410         <in7y118 at public.uni-hamburg dot de> - fix invalid
411         read/write reported by valgrind
412
413 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
414
415         * Released 0.91
416
417 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
418
419         * dbus/dbus-connection.c:
420         (_dbus_connection_attach_pending_call_unlocked):
421         (connection_timeout_and_complete_all_pending_calls_unlocked):
422         Make sure we set timeout_added on pending calls to FALSE when
423         we remove the timeout from the connection
424
425 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
426
427         * Removed some extra bindings stuff lingering around (thanks timo)
428         * dbus-pendingcall.c (_dbus_pending_call_new): 
429         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
430         when we tried to take a lock on an already locked connection
431
432 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
433
434         * Released 0.90
435
436 2006-07-17  Havoc Pennington  <hp@redhat.com>
437
438         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
439         ints, reported by Owen Taylor
440
441 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
442
443         * doc/TODO:
444         * dbus/dbus-bus.c:
445         * dbus-errors.c:
446         * dbus/dbus-marshal-validate.c:
447           Removed TODO items which were fixed or are no longer relevent
448
449 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
450
451         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
452         Remove stray files from the stripped bindings
453
454 2006-07-16  Havoc Pennington  <hp@redhat.com>
455
456         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
457         Improve the error message on reply timeout
458
459 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
460
461         * Remove all bindings
462
463 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
464
465         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
466         and set pending_reply out arg to NULL is connection is disconnected
467         (connection_timeout_and_complete_all_pending_calls_unlocked): New
468         static method for cleaning up pending calls on disconnect
469         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
470         calls queued timeouts on disconnect 
471
472          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
473         Remove 
474
475 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
476
477         * bus/activation.[ch] (bus_activation_list_services): new function to 
478         get the list of services that can be activated
479
480         * bus/dispatch.c: test coverage for the new bus method
481         ListActivatableNames
482
483         * bus/driver.c: new bus method ListActivatableNames to get the list of
484         services that can be activated
485
486         * doc/dbus-specification.xml: ListActivatableNames method documentation
487
488 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
489         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
490         source files
491
492 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
493         * dbus/dbus-message-factory.c:
494         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
495
496 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
497         * dbus/dbus-connection-internal.h:
498         * dbus/dbus-connection.c:
499         * file dbus/dbus-pending-call.c:
500         * dbus/dbus-pending-call.h:
501         Make DBusPendingCall an opaque type even to D-Bus internals
502
503 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
504
505         * dbus/dbus-connection.h: remove connection_disconnect and replace with
506         connection_close
507
508         * dbus/dbus-connection.c: include dbus-bus.h
509         (_dbus_connection_read_write_dispatch): make static
510
511 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
512
513         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
514         function
515         (dbus_connection_dispatch): On disconnect unref any shared connections
516
517         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
518         for cleaning up shared connections on disconnect
519         (internal_bus_get): get a hard refrence to shared connections when
520         they are created
521         
522         * doc/TODO: Remove items which are no longer relevent or have been fixed
523         Split 1.0 todo items with a 0.90 freeze todo list
524  
525 2006-06-14  Ross Burton  <ross@openedhand.com>
526
527         * glib/dbus-gobject.c:
528         Free a leaking GArray (surely not!) in dbus_g_method_return.
529
530 2006-06-14  Ross Burton  <ross@openedhand.com>
531
532         * tools/Makefile.am:
533         * tools/dbus-monitor.c:
534         Don't use the GLib bindings in dbus-monitor (patch from Ralf
535         Habacker).
536         
537 2006-06-14  Ross Burton  <ross@openedhand.com>
538
539         * tools/dbus-print-message.c:
540         Also print the object path when outputting signals or method calls.
541
542 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
543
544         * qt/src/Makefile.am: install the qdbus.h header.
545         This allows people to actually use the installed code.
546
547 2006-06-12  Ross Burton  <ross@openedhand.com>
548
549         * glib/dbus-gproxy.c:
550         Don't leak a GArray when firing signals (thank Rob Taylor for review).
551
552 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
553
554         * Released 0.62
555
556 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
557
558         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
559         break pedantic builds. Closes bug 6043 (patch approved by
560         Havoc back in February).
561
562 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
563
564         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
565         that took a QDBusMessage parameter.
566         * qt/src/qdbusbus.h: Add a default flag for RequestName.
567         * qt/tools/dbus.cpp: Don't use automatic call because we might
568         be calling an async method: request a reply.
569
570 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
571
572         * test/qt/*: Update the testcases, including testing the new
573         functionality of sending null QByteArray and QString over the
574         bus. Add new headertest test and restore the old
575         qdbusxmlparser test.
576
577 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
578
579         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
580         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
581
582         * qt/examples/Makefile.am:
583         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
584         form.
585
586         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
587         QByteArray() (nulls) over the bus.
588         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
589         the one that has the signature suffix stripped.
590         * qt/src/qdbusreply.h: Make some methods const.
591
592 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
593
594         Patch from Timo Hoenig <thoenig@suse.de>.
595
596         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
597         required during build to EXTRA_DIST.
598         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
599         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
600         * configure.in: Fix "make dist", take care that the Makefile for
601         qt/dbus is being generated.
602
603 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
604
605         * bus/bus.c: Fix eavesdropping on method calls
606
607 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
608
609         * configure.in:
610         * dbus/dbus-userdb-util.c:
611         Add Solaris console owner patch from Artem Kachitchkine
612
613 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
614
615         * qt/Makfile.am:
616         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
617         reorganisation. Thanks to Timo Hoenig for pointing this out.
618
619 2006-06-06  Robert McQueen  <robot101@debian.org>
620
621         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
622           call to dbus_g_type_get_struct.
623
624 2006-06-06  Robert McQueen  <robot101@debian.org>
625
626         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
627           pointers were put into a GPtrArray-based specialised collection, and
628           then freed along with the array. GValues which you add into
629           collections or maps which have the NOCOPY flag set are assumed to not
630           belong to the caller, so rather than the existing pointer-stealing
631           semantics, they are copied instead. Given that the main consumers of
632           this abstraction are the bindings themselves, I don't think this is
633           too bad, but others should watch their choice of take vs set_static.
634
635 2006-06-06  Robert McQueen  <robot101@debian.org>
636
637         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
638           of g_slist_prepend not being used. Fixed copying of slist-based
639           specialised collections, then wrote a test case and found that it was
640           all broken. Went on to fix iterating and appending too. Good thing
641           nobody uses this code yet.
642
643 2006-06-06  Robert McQueen  <robot101@debian.org>
644
645         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
646           the iterators use gvalue_take_ptrarray_value (the GValues themselves
647           are discarded without unsetting, so it makes no difference whether
648           we take or set_static). Remove cases for G_TYPE_POINTER because
649           there really is nothing useful we can do with them in our
650           specialised types - we *need* boxed copy/free functions at the very
651           least.
652
653 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
654
655         * qt/dbus: Add directory. I had forgotten to add this
656         yesterday after the move...
657
658         * qt/examples/Makefile.am:
659         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
660
661         * qt/tools/Makefile.am:
662         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
663         Added feature to get and set properties.
664         Added validation of service, object path and interface names.
665
666         * qt/tools/dbusidl2cpp.cpp: Two new features:
667         1) Allow specifying both the header and the source file names,
668         by separating them with a colon.
669         2) Don't write an interface output if the -p switch wasn't
670         given, but the -a was.
671
672         * qt/src/*: Fix usage of Iterators and ConstIterators.
673         Fix shadowing of variables by other variables (-Wshadow).
674         Fix keyword-cleanliness in headers.
675         Fix ASCII-cast (QLatin1String, QLatin1Char).
676         Fix validation of member names.
677         Add extra checking of introspection data during XML parsing.
678         Various bug fixes.
679
680 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
681
682         * dbus/Makefile.am:
683         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
684         qt/dbus/qdbus.h now.
685
686 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
687
688         * configure.in: Make --disable-qt actually do
689           something. Patch inspired by Zack Rusin.
690
691 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
692
693         * qt/: Update to Subversion r548032.
694         This includes a big reorganisation of the files inside the
695         subdir.
696
697 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
698
699         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
700         clear:  
701         "Failed to connect to socket <host>:<port> <error>" instead of
702         "Failed to connect to socket <host>: <error>:<port>"
703
704         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
705         for a tcp transport. 
706
707 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
708
709         * qt/*: Update the QtDBus bindings up to revision 546310 in
710         Subversion.
711         This adds the dbuscpp2xml tool, that parses a C++ header and
712         outputs a D-BUS Introspection XML.
713
714 2006-05-21  Havoc Pennington  <hp@redhat.com>
715
716         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
717         is not NULL when it shouldn't be. Also a couple of possible fixes
718         for #4637 though I don't understand why the bug happens, to be
719         honest... also the object constructor has an assert name != NULL
720         and the name is only currently NULL for peer-to-peer proxies that 
721         I don't think anyone uses? So it should be asserting.
722         Anyway, for now at least see if we get an earlier assertion failure.
723
724         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
725         apparently broken code to be sure the tests fail and someone 
726         will fix them...
727
728 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
729
730         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
731         and arrays when they had a single element: has_next returns
732         false, even before you read the element. So, instead, check
733         the array length.
734
735 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
736
737         * qt/qdbusmessage.cpp:
738         * qt/qdbustypehelper_p.h:
739         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
740         the list is a const-reference
741
742 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
743
744         * Adding old doc patch that never got applied
745         
746         * dbus/bus.c (dbus_bus_add_match): Add documentation
747
748         * doc/dbus-specification.xml: Add documentation for the match rules
749           and the AddMatch and RemoveMatch methods
750
751 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
752
753         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
754         call (r535506)
755
756         * qt/dbusidl2cpp.cpp:
757         * qt/qdbusabstractadaptor.cpp:
758         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
759         sibling of the QDBusAbstractAdaptor objects instead of the
760         parent. (r535848)
761
762         * qt/dbusidl2cpp.cpp:
763         * qt/qdbusabstractinterface.cpp:
764         * qt/qdbusabstractinterface.h:
765         * qt/qdbusabstractinterface_p.h:
766         * qt/qdbusinterface.cpp: Make properties in interfaces
767         actually work. The code that was generated would not compile,
768         due to moc calls to functions that did not exist. They now
769         shall. (r536571)
770
771 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
772
773         * Makefile.am:
774         * configure.in:
775         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
776         Thanks to Brad Hards for providing the patch
777
778 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
779
780         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
781         call. (r535506)
782
783 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
784
785         * qt/examples/dbus.cpp: Enhance error messages and use
786         QDBusInterfacePtr.
787
788 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
789
790         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
791         and disable the copy operators. (r533772, r534746)
792
793         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
794
795         * qt/qdbusabstractinterface.cpp:
796         * qt/qdbusabstractinterface.h: Change the default call mode to
797         not use the event loop. Add convenience call() methods that
798         take a CallMode parameter. (r534042)
799
800         * qt/qdbusconnection.h: Change the default call mode to not
801         use the event loop. (r534042)
802
803         * qt/qdbusinterface.cpp:
804         * qt/qdbusinterface.h: Add a method to tell us if the
805         interface is valid (since we don't return a null pointer
806         anymore) (r534099)
807
808         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
809         (r534101)
810
811         * qt/qdbusinternalfilters.cpp: Decouple the introspection
812         function in two so taht we get the chance to introspect
813         without having a QDBusMessage (r534102)
814
815         * qt/qdbusbus.h:
816         * qt/qdbusconnection.cpp:
817         * qt/qdbusconnection_p.h:
818         * qt/qdbusintegrator.cpp: Keep a list of our own names to
819         avoid a round-trip to the server when attempting to introspect
820         one of our own objects. Also make sure the filter functions
821         match the empty interface as well. (r534108)
822         Don't keep the connection names. Instead, trust the unique
823         connection name (r534111)
824         Remove event loop usage (r534112)
825
826 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
827
828         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
829         Brad Hards.
830
831 2006-04-28  Robert McQueen  <robot101@debian.org>
832
833         * glib/dbus-gproxy.c: Fix properties so that they can be given in
834         any order, making it easier for people who inherit from this
835         object.
836
837 2006-04-28  Robert McQueen  <robot101@debian.org>
838
839         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
840         of memory from within pointer arrays and lists. Fixes bug #6300.
841
842 2006-04-28  Robert McQueen  <robot101@debian.org>
843
844         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
845         generating struct signatures. Fixes bug #6083.
846
847 2006-04-28  Robert McQueen  <robot101@debian.org>
848
849         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
850         to qdbusconnection_p.moc.
851
852 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
853
854         * README, INSTALL: Doc fixes
855         Patch from Brad Hards <bradh at frogmouth.net>
856
857 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
858
859         * qt/examples/dbus.cpp: Use the new merged-interface mode for
860         the dynamic meta object. No need to guess which interface to
861         call.
862
863 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
864
865         * qt/qdbusconnection_p.h:
866         * qt/qdbusmetaobject.cpp:
867         * qt/qdbusmetaobject_p.h:
868         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
869         for the dynamic meta object. No need to guess which
870         interface to call.
871         * qt/qdbusabstractinterface_p.h:
872         * qt/qdbusconnection.cpp:
873         * qt/qdbusintegrator.cpp:
874         * qt/qdbusinterface.cpp:
875         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
876         Add a QDBusRef that looks and behaves like DCOPRef.
877
878 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
879
880         * dbus/dbus-connection.c: Interfaces are optional in method
881         calls, so don't give up if the interface parameter is NULL.
882         Patch reviewed by Havoc Pennington.
883
884 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
885
886         * qt/qdbusreply.h: Add default constructor and operator=
887           (r532625)
888         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
889           in public headers (r532952)
890         * qt/qdbusabstractinterface.cpp:
891         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
892           make it the default (r532951)
893
894 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
895
896         * dbus/dbus-connection.c: Fix asserts
897         Patch from Tim Moloney <t.moloney at verizon.net>
898
899 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
900
901         * mono/Connection.cs, mono/Message.cs: Check Target type
902         Patch from Aaron Bockover (abockover at novell.com)
903
904 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
905
906         * INSTALL: fine-tune the requirements for the Qt4 binding.
907
908 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
909
910         * tools/dbus-print-message.c: Added support for printing of all 
911           remaining data types. Fixed logic for indentation of compound
912           data types.
913         
914 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
915
916         * INSTALL: fill out content of file providing DBus specific
917           build installations, followed by generic Auto* INSTALL file
918           content
919         
920 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
921
922         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
923           Patch by Stefan Eilers. (r529537)
924
925 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
926
927         * qt/qdbusinternalfilters.cpp: Don't show the parent's
928           contents (r528208)
929
930 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
931
932         * qt/Makefile.am: fix the dependency for
933           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
934           not in qdbusconnection.cpp.
935           Thanks to Jakub Stachowski <stachowski@hypair.net> for
936           spotting this.
937
938 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
939
940         * qt/examples/listnames.cpp:
941         * qt/examples/Makefile.am: Three ways to list the names on the
942           bus.
943
944 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
945
946         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
947           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
948
949 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
950
951         Merge from Subversion:
952         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
953           something that exists (r526315)
954         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
955           slots/signals (r526316)
956         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
957           also return an unknown-method error if the parameters don't
958           match for org.freedesktop.DBus.Properties. (r526842)
959         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
960         * qt/qdbusintegrator.cpp: Restore the proper order of
961           delivery: don't make method returns be delivered on priority
962           (r528150)
963
964 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
965
966         * configure.in qt/Makefile.am: add qt/examples
967         * qt/examples: Add QtDBus example programs:
968           - hello: Hello, World
969           - ping: Simple method-calling program
970           - pong: Simple object-exporting program (not using adaptors)
971           - complexping: Interactive method-calling program 
972                 (also gets and sets properties).
973           - complexpong: Sample program exporting methods, signals and
974                 properties, using adaptors.
975           - dbus: Simple implementation of a generic method-calling
976                 program, similar to 'dbus-send', but with semantics
977                 similar to 'dcop'.
978           - chat: Simplistic chat program, implemented using signals
979                 and the system bus. Looks like IRC.
980
981 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
982
983         * configure.in: Detect QtGui (necessary for one of the
984           example programs). Note: this increases the minimum required
985           version of Qt to 4.1.3.
986
987 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
988
989         * test/qt/*: Sync with KDE Subversion revision 523647.
990         Update the testcases to the new API. Remove testcases for
991         classes that are no longer public or have been removed.
992
993 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
994
995         * qt/*: 
996         * dbus/qdbus.h: Sync with KDE Subversion revision
997         523647. Hopefully, this will be the last of the
998         source-incompatible changes. Documentation has been improved;
999         support for QList<basic-types> has been added; QDBusObject is
1000         gone; QDBus(Abstract)Interface is now a QObject with
1001         auto-generated meta-object; QDBusIntrospection is marked
1002         private, since QMetaObject can be used now; lots of bugfixes.
1003
1004 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1005
1006         Patch from Milosz Derezynski <internalerror at gmail.com>
1007         
1008         * configure.in:
1009         Output the service directory in the configure summary
1010
1011         * dbus-1.pc.in:
1012         Add session_bus_services_dir
1013
1014 2006-03-10  Ross Burton  <ross@openedhand.com>
1015
1016         * tools/dbus-print-message.c:
1017         Add support for object paths and signatures.
1018
1019 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1020
1021         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1022         config reload.
1023         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1024         information caches
1025         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1026         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1027         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1028         * dbus/dbus-userdb.h: Add function to flush all user/group information
1029         caches.
1030
1031 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1032
1033         * qt/dbusidl2cpp.cpp:
1034         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1035         for dcopidl2cpp, found in the KDE installations (or the more
1036         modern kalyptus): generate Qt4 C++ code for the input XML
1037         introspection. Currently no IDL parsing.
1038
1039 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1040
1041         * test/qt/*: Update the self-tests.
1042
1043 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1044
1045         * qt/*: 
1046         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1047         represents the first feature-complete version of the Qt4
1048         bindings since I took ove maintainership.
1049
1050 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1051
1052         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1053         dir. This is C++, so we can't use the DBus ones.
1054
1055 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1058         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1059
1060 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1061
1062         * dbus/dbus-connection.c: 
1063         (_dbus_connection_block_pending_call):
1064         Check to see if our data has already been read off the connection
1065         by another blocking pending call before we block in poll.
1066         (check_for_reply_and_update_dispatch_unlocked):
1067         Code taken from _dbus_connection_block_pending_call - checks for
1068         an already read reply and updates the dispatch if there is one.
1069
1070         * test/name-test/test-pending-call-dispatch.c:
1071         New test for making sure we don't get stuck polling a 
1072         dbus connection which has no data on the socket when
1073         blocking out of order on two or more pending calls.
1074
1075 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1076
1077         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1078         make/automake don't detect that we're talking about the same
1079         .lo file if I specify the full path to the source files.
1080
1081 2006-02-26  Havoc Pennington  <hp@redhat.com>
1082
1083         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1084
1085         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1086         session bus variable is unset, suggest "man dbus-launch" and "man
1087         dbus-daemon" to figure out how to fix the problem
1088
1089 2006-02-25  Havoc Pennington  <hp@redhat.com>
1090
1091         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1092         should make this thing use the new glib options parser
1093
1094 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1095
1096         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1097         .lo files taking moc sources.
1098
1099 2006-02-25  Havoc Pennington  <hp@redhat.com>
1100
1101         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1102         and install it as a public header
1103
1104 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1105
1106         * Released 0.61
1107
1108 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1109         
1110         * proxies.py: Fix the callchain
1111
1112 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1113         
1114         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1115
1116         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1117         dbus/dbus-sysdeps.c
1118
1119         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1120         call _dbus_group_info_free_allocated which causes infinite loop,
1121         correctly call _dbus_group_info_free
1122
1123 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1124
1125         * qt/qdbusinterface_p.h:
1126         * qt/qdbusinterface.cpp: Use the standard
1127         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1128         calls instead of creating one for us.
1129
1130         * qt/qdbusconnection_p.h:
1131         * qt/qdbusintegrator.cpp: Remove debugging code.
1132
1133         * qt/qdbusintegrator.cpp:
1134         * qt/qdbusmessage.cpp:
1135         * qt/qdbusmessage_p.h:
1136         * qt/qdbusmessage.h: Change the behaviour of automatic
1137         reply-sending: now a reply is always sent, unless the caller
1138         didn't request one or if the user slot has already sent one.
1139
1140 2006-02-16  Robert McQueen  <robot101@debian.org>
1141
1142         * configure.in: Patch from Debian packages by Sjoerd Simons
1143         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1144         arguments so it's possible to build both bindings in the
1145         same tree.
1146
1147         * qt/Makefile.am: Fix truncated value so that make dist works.
1148
1149 2006-02-16  Robert McQueen  <robot101@debian.org>
1150
1151         * acinclude.m4, configure.in: Patch from Brad Hards
1152         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1153         improving quoting, re-ordering a few checks, and a few other
1154         aesthetic tidy-ups.
1155
1156 2006-02-16  Robert McQueen  <robot101@debian.org>
1157
1158         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1159         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1160         assertion that the next element to read from the iter is fixed in
1161         size. This is not the case when you are at the end of the iter,
1162         because the next element type is INVALID.
1163
1164         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1165         a bogus assert which means that you may not initialise a 0-length
1166         string unless you provide a non-NULL pointer. This prevented
1167         you from marshalling messages containing zero-length arrays in
1168         some cases.
1169
1170         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1171         from Rob to correct bogus asserts when trying to demarshal an
1172         array and get_fixed_array got you 0 elements. Append nothing to
1173         the GArray in this case.
1174
1175         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1176         an empty array via the glib bindings. Without all of the above
1177         patches, this new test fails.
1178
1179 2006-02-16  Robert McQueen  <robot101@debian.org>
1180
1181         * glib/dbus-gmain.c: Make the previous commit compile.
1182
1183         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1184         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1185         specify sender_keyword="foo", path_keyword="bar" when adding
1186         a signal listener, so that you can bind to signals generically
1187         but still do something useful in your callback.
1188
1189         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1190         chars so that they're not cast to chars and made negative. Thanks
1191         to Jakub Stachowski for reporting this and testing the fix.
1192
1193 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1194
1195         * dbus/dbus-glib.h:
1196         * glib/dbus-gmain.h:
1197         (dbus_g_connection_open): new method for openning
1198         a connection to an arbitrary address in the glib bindings
1199
1200         * ChangeLog: checkin last entry which doesn't seem to be commited
1201
1202 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * tools/dbus-launch.c: Fixed sh syntax output
1205
1206 2006-02-13  Robert McQueen  <robot101@debian.org>
1207
1208         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1209         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1210         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1211         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1212         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1213         missing piece of the glib bindings jigsaw puzzle. This modifies
1214         the existing specialised types to have N type parameters (rather
1215         than the current 1 or 2 for arrays and dictionaries respectively).
1216         You can then use this to get a glib type to represent any arbitrary
1217         D-Bus struct type using dbus_g_type_get_struct. The only
1218         implementation of these types is with GValueArrays as before,
1219         but it's now possible to store these in arrays, emit them in
1220         signals, etc.
1221
1222 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1225         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1226         <thiago.macieira at trolltech.com>
1227
1228 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1231         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1232
1233 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * bus/connection.c (bus_connections_expect_reply): Make
1236         pending reply limit not common to all connections (Bug #5416)
1237         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1238
1239 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1240
1241         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1242
1243 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1246         patch from Doug Goldstein <cardoe at gentoo.org>
1247
1248 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1249
1250         * mono/Arguments.cs: Fix a magic number in the mono bindings
1251         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1252
1253 2006-01-27  Robert McQueen  <robot101@debian.org>
1254
1255         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1256         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1257         when generating the client-side methods, instead of overloading
1258         CSymbol which broke everything horribly. My apologies.
1259
1260 2006-01-27  Robert McQueen  <robot101@debian.org>
1261
1262         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1263         by me and Rob Taylor to add a simple_free function to D-Bus map
1264         and collection types, which allows those types which can be freed
1265         with a GDestroyNotify (such as GHashTables and GArrays, but not
1266         GPtrArrays) to be stored as the values in hashtables.
1267
1268         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1269         Patch by Rob Taylor to add nested dicts to the glib tests to check
1270         the above code works, and appears not to leak when called repeatedly.
1271
1272 2006-01-27  Robert McQueen  <robot101@debian.org>
1273
1274         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1275         to free a D-Bus allocated string with dbus_free () instead of
1276         g_free ().
1277
1278 2006-01-27  Iain Holmes  <iain@openedhand.com>
1279
1280         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1281         method from being called multiple times.
1282
1283 2006-01-19  Robert McQueen  <robot101@debian.org>
1284
1285         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1286         <rob.taylor@collabora.co.uk> to add support for generating bindings
1287         to arrays that are represented as GPtrArrays rather than GArrays (ie
1288         size-variable things, such as strings, objects, structs, etc).
1289
1290 2006-01-05  Robert McQueen  <robot101@debian.org>
1291
1292         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1293         <ricardo.kekki@movial.fi> to make it possible to inherit from
1294         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1295         a private part, and moving the setting of the DBusGProxyManager into a
1296         connection property, allowing proper GObject construction.
1297
1298 2006-01-05  Robert McQueen  <robot101@debian.org>
1299
1300         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1301         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1302         annotations when generating glib client bindings.
1303
1304 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1307
1308         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1309
1310 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1311
1312         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1313
1314 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1315
1316         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1317
1318 2005-12-19  Ross Burton  <ross@openedhand.com>
1319
1320         * doc/dbus-tutorial.xml:
1321         Document the Glib client-side bindings, and list all possible annotations.
1322
1323 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1324
1325         * dbus/bus.c (dbus_bus_release_name): Add documentation
1326
1327 2005-12-06  Robert McQueen  <robot101@debian.org>
1328
1329         * python/service.py: s/sucessful/successful/ so we're allocating to
1330         and reading from the same variable. Oops.
1331
1332 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * Released 0.60
1335
1336 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1337
1338         * test/qt/Makefile.am: build from srcdir
1339
1340         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1341         Note - this code is wrong and needs to be fixed by the Qt binding
1342         developers.  The flags should be treated as bitfields and not enums.
1343
1344         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1345
1346 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1349           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1350           in production code
1351
1352 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1353
1354         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1355         method for getting messages off the bus in the absence of a
1356         mainloop.  This method is much like 
1357         dbus_connection_read_write_dispatch except it does not dispatch
1358         the messages to a registered filter function.  Instead it
1359         allows a developer to process messages by directly popping
1360         them off the bus.
1361
1362 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1363
1364         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1365         the parser to continue instead of returning error
1366         (bus_desktop_file_load): Do not free parser data when
1367         parse_section_start or parse_key_value fails because it was 
1368         already freed by parser_free (patch from Carlos Garcia Campos  
1369         <carlosgc at gnome.org>)
1370
1371 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1374         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1375         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1376         test/test-segfault.c, test/test-utils.c,
1377         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1378         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1379         Various cleanup of dead code and compiler warnings (patch from
1380         Kjartan Maraas <kmaraas at gnome.org>) 
1381
1382 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1385         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1386
1387 2005-11-27  Robert McQueen  <robot101@debian.org>
1388
1389         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1390         part of the preceding one. Oops. Merge patch by Johan Hedberg
1391         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1392         on big-endian platforms.
1393
1394         * test/python/test-client.py: Add some 16-bit integers to the test
1395         values.
1396
1397 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1398
1399         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1400         method return message for property getters
1401
1402 2005-11-27  Robert McQueen  <robot101@debian.org>
1403
1404         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1405         with type v of an instance of dbus.Variant(foo, type='x') caused
1406         it to be boxed twice before sending over the bus.
1407
1408         * python/dbus_bindings.pyx, python/service.py,
1409         test/python/test-client.py: Update the constants for the new
1410         request_name flags, and update comments/test cases now that queueing
1411         is the default action.
1412
1413 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * configure.in:
1416         - Change version to 0.60 for impending release
1417         - upped the sonames because of ABI and API breakage
1418
1419 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * configure.in: Add test/name-test/Makefile to the generated
1422         Makefile list
1423
1424         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1425         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1426         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1427         not to queue an ower if it can't be the primary owner
1428
1429         * bus/bus.h: Add new internal BusOwner struct
1430
1431         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1432         to bus_registry_ensure and don't set the prohibit_replacement flag
1433         since they are now set per BusOwner and not per name.
1434         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1435         that returns the list of connections in a name's connection queue
1436         
1437         * bus/services.c (struct BusService): remove prohibit_replacement field
1438         (struct BusOwner): new struct for keeping track of queued connections
1439         and their associated flags for the queue
1440         (struct BusRegistry): add a BusOwner memory pool
1441         (bus_registry_new): initialize the BusOwner memory pool
1442         (bus_registry_unref): free the BusOwner memory pool
1443         (_bus_service_find_owner_link): new internal method for
1444         searching the queue for a specific connection
1445         (bus_owner_set_flags): new method for adding setting the flags on a
1446         bus owner
1447         (bus_owner_new): new method that creates a BusOwner object from the
1448         pool and sets its flags
1449         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1450         (bus_registry_ensure): Add the flags parameter
1451         (bus_registry_acquire_service): Switch from using raw connections to
1452         using the BusOwner struct
1453         Add new state machine for dealing with the new set of flags
1454         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1455         cancel_ownership, free_ownership_cancel_data, 
1456         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1457         restore_ownership, free_ownership_restore_data, 
1458         add_restore_ownership_to_transaction): Switch to using BusOwner 
1459         instead of raw connections
1460         (bus_service_add_owner): Add flags parameter
1461         Switch to using BusOwner instead of raw connections
1462         Add state machine for dealing with the new set of flags
1463         (bus_service_swap_owner): Swaps the first and second owners in the
1464         queue.  Used to make sure proper signals are sent when a service looses 
1465         or gains primary ownership.  We never insert an owner at the top of the
1466         queue.  Instead we insert it in the second position and then swap.
1467         (bus_service_remove_owner): Remove the owner from the queue sending
1468         out the NameLost and NameOwnerChanged signals if the we were the 
1469         primary owner
1470         (bus_service_get_primary_owners_connection): New method that extracts
1471         the connection from the primary owner
1472         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1473         connection
1474         (bus_service_get_allow_replacement): Changed from the old 
1475         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1476         primary owner and returns if it can be replaced or not
1477         (bus_service_set_prohibit_replacement): removed
1478         (bus_service_has_owner): returns TRUE if and owner with
1479         the specified connection exists in the queue
1480         
1481         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1482         method that only compiles if tests are enabled.  Allows us to get the 
1483         unique name of a connection so we can check it against the queue when
1484         doing regression tests
1485
1486         * bus/activation.c (bus_activation_send_pending_auto_activate),
1487         bus/dispatch.c (bus_dispatch),  
1488         bus/driver.c (bus_driver_handle_get_service_owner, 
1489         bus_driver_handle_get_connection_unix_user, 
1490         bus_driver_handle_get_connection_unix_process_id,
1491         bus_driver_handle_get_connection_selinux_security_context),
1492         bus/signals.c (connection_is_primary_owner): 
1493         use bus_service_get_primary_owners_connection instead of
1494         bus_service_get_primary_owner
1495
1496         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1497         _dbus_listen_unix_socket): Calculate the length of the socket
1498         path and use that instead of using a fixed length which was
1499         causing socket names to contain many trailing Nul bytes.
1500
1501         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1502         (dbus_g_method_get_sender): New method for extracting the sender 
1503         from a DBusGMethodInvocation
1504         (dbus_g_method_return_get_reply): changed name to 
1505         dbus_g_method_get_reply
1506         (dbus_g_method_return_send_reply): changed name to
1507         dbus_g_method_send reply
1508
1509         * doc/dbus-specification.xml: New docs that describe how the new
1510         queueing system works and talks about the changes to the how
1511         we specify socket names
1512
1513         * glib/examples/example-service.c, 
1514         glib/examples/example-signal-emitter.c,
1515         glib/examples/statemachine/statemachine-server.c:
1516         Changed the RequestName flags to the new system
1517
1518         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1519         regression test suite for testing various states of the new
1520         queueing system
1521         
1522 2005-11-15  Robert McQueen  <robot101@debian.org>
1523
1524         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1525         Taylor to add two methods, dbus_g_method_return_get_reply and
1526         dbus_g_method_return_send_reply, to allow you to get the reply
1527         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1528         and send it. The GLib bindings can't marshal a return value of
1529         something like a(s) if the array is empty - ultimately they should be
1530         made to heed the signature of the out arguments as the Python bindings
1531         now can, but this is a workable interim solution which might have
1532         other applications.
1533
1534 2005-11-15  Robert McQueen  <robot101@debian.org>
1535
1536         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1537         method to org.freedesktop.DBus to release a bus name or give up
1538         waiting in the queue for it.
1539
1540         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1541         dbus_bus_release_name method to send the ReleaseName method calls.
1542         Add constants for the return values to dbus/dbus-shared.h.
1543
1544         * doc/dbus-specification.xml: Document the new ReleaseName method
1545         in the specification.
1546
1547         * python/dbus_bindings.pyx: Add a low-level python binding for the
1548         release name method.
1549
1550         * python/exceptions.py, python/service.py: Make freeing BusName
1551         objects release the name. Add a NameExistsException, and fix a
1552         bug with creating UnknownMethodException.
1553
1554         * test/python/test-client.py: Add tests for freeing BusName
1555         objects causing names to be released.
1556
1557 2005-11-14  Robert McQueen  <robot101@debian.org>
1558
1559         * python/service.py: Include the traceback in the error reply when we
1560         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1561
1562 2005-11-14  David Zeuthen  <davidz@redhat.com>
1563
1564         Patch from Timo Hoenig <thoenig@suse.de>.
1565
1566         * bus/bus.c: I've recently investigated why the automatic reload
1567         of configuration files does not work as expected.
1568
1569         Currently, reloading configuration files does only work when
1570         running dbus-daemon with --nodaemon.  If we are running as daemon
1571         we're hitting a dnotify bug once we fork the process.
1572
1573         We're initializing the dnotify fds before calling fork().  Once
1574         the child process forked it does still have the fds (and they
1575         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1576         getting SIGIO as changes are made to the configuration files.
1577
1578         The attached patch moves the initialization of the dnotify fds to
1579         process_config_postinit().  This is safe for all current code
1580         paths and solves the dnotify disfunction.  If we're running
1581         dbus-daemon as daemon the fds for dnotify are now being
1582         initialized after fork() for the child process.
1583
1584         * configure.in: The current configure.in check for dnotify probes
1585         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1586         match for 'xlinux', too. Additionally I have adapted the configure
1587         option's style to match with the others.
1588
1589 2005-11-14  Robert McQueen  <robot101@debian.org>
1590
1591         * python/decorators.py, python/service.py: Add a new argument to the
1592         dbus.service.method decorator called sender_keyword, which if set,
1593         specifies the name of an argument which will be provided the bus
1594         name of the method caller.
1595
1596         * test/python/test-client.py, test/python/test-service.py: Add a
1597         method and test to check the sender_keyword functionality.
1598
1599 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1602         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1603         Simons <sjoerd at luon.net>)
1604
1605         * AUTHORS: Add Robert McQueen for his work on the Python
1606         Bindings and other parts of D-Bus
1607
1608 2005-11-07  Robert McQueen  <robot101@debian.org>
1609
1610         * python/decorators.py: Change emit_signal function to use the
1611         signature annotation of the signal when marhsalling the arguments from
1612         the service. Fix a bug where the code checking signature length
1613         against argument length referenced the wrong variable.
1614
1615         * python/introspect_parser.py: Avoid adding the type signature of
1616         signal arguments to any methods which occur after them in the
1617         introspection data (!) by making the parser a little more careful
1618         about its current state.
1619
1620         * python/service.py: Remove debug prints from last commit (again :D).
1621
1622         * test/python/test-client.py, test/python/test-service.py: Add test
1623         signals with signature decorators to test the strict marshalling code
1624         gives errors at the right time. Could do with checking the signals
1625         actually get emitted too, given that the test does nothing with
1626         signals at the moment...
1627
1628 2005-11-07  Robert McQueen  <robot101@debian.org>
1629
1630         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1631         instances to stop madness of creating new instances representing
1632         the same bus connection all the time, rendering any tracking of
1633         match rules and bus names quite meaningless. Caught a bug where
1634         the private argument to SessionBus() and friends was being passed
1635         in as use_default_mainloop by mistake. Still some problems with
1636         multiple dbus_binding.Connection instances representing the same
1637         low-level connection (eg when you use both SessionBus() and
1638         StarterBus() in same process), but it's a lot better now than it
1639         was.
1640
1641         * python/dbus_bindings.pyx: Add constants with the return values
1642         for bus_request_name().
1643
1644         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1645         and retrieve the same instances for the same name, so deletion can be
1646         done with refcounting. Also now throws some kind of error if you
1647         don't actually get the name you requested, unlike previously...
1648
1649         * test/python/test-client.py: Add tests for instance caching of buses
1650         and bus name objects.
1651
1652 2005-11-04  Robert McQueen  <robot101@debian.org>
1653
1654         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1655         marshalling of boolean values. Add some booleans to the values in
1656         the test client.
1657
1658         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1659         argument to the dbus.service.method decorator, which allows you to
1660         name arguments to take two callback functions for replying with
1661         return values or an exception.
1662
1663         * test/python/test-client.py, test/python/test-service.py: Add test
1664         case using asynchronous method reply functions, both return values and
1665         errors, and from within both the function itself and from a mainloop
1666         callback.
1667
1668         * python/decorators.py, python/service.py: Perform checking that the
1669         number of method/signal arguments matches the number of types in the
1670         signature at class loading time, not when you first introspect the
1671         class.
1672
1673         * python/service.py: Remove debug print left by the last commit.
1674
1675 2005-11-03  Robert McQueen  <robot101@debian.org>
1676
1677         * python/service.py: Heavy refactoring of method invocation, with
1678         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1679         in favour of a new _message_cb that uses seperate functions for
1680         looking up the method to call, marshalling the return values, and
1681         sending exceptions as errors, and is easier to follow as a
1682         consequence.  Fixes some corner cases about returning things that
1683         don't match your declared out_signature, allows exceptions to define
1684         _dbus_error_name and have it be sent over the bus as the error name,
1685         and paves the way for cool stuff like heeding the message no reply
1686         flag, asynchronous method implementations, informing the method of the
1687         sender, and including backtraces in the error messages.
1688
1689         * test/python/test-client.py: Catch and print exceptions thrown in the
1690         async callback tests, rather than passing them to the low-level
1691         bindings to be ignored in a noisy and frustrating manner.
1692
1693 2005-11-03  Robert McQueen  <robot101@debian.org>
1694
1695         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1696         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1697         tweak others to be consistent.
1698
1699         * test/python/test-client.py: Tweak output of testInheritance.
1700
1701 2005-10-29  Robert McQueen  <robot101@debian.org>
1702
1703         * python/service.py: Major changes to allow multiple inheritance
1704         from classes that define D-Bus interfaces:
1705         
1706          1. Create a new Interface class which is the parent class of
1707             Object, and make the ObjectType metaclass into InterfaceType.
1708         
1709          2. Patch written with Rob Taylor to replace use of method_vtable
1710             with code that walks the class's __MRO__ (method resolution order)
1711             to behave like Python does when invoking methods and allow
1712             overriding as you'd expect. Code is quite tricky because
1713             we have to find two methods, the one to invoke which has the
1714             right name and isn't decorated with the /wrong/ interface,
1715             and the one to pick up the signatures from which is decorated
1716             with the right interface.
1717         
1718             The same caveats apply as to normal multiple inheritance -
1719             this has undefined behaviour if you try and inherit from two
1720             classes that define a method with the same name but are
1721             decorated with different interfaces. You should decorate
1722             your overriding method with the interface you want.
1723         
1724          3. Replace grungy introspection XML generation code in the metaclass
1725             with dictionaries that cope correctly with multiple inheritance
1726             and the overriding of methods. This also uses the signature
1727             decorations to provide correct introspection data, including
1728             the debut appearance of the types of your return values. :D
1729
1730         * test/python/test-client.py, test/python/test-service.py: Add a test
1731         case to try invoking an method that overrides one inherited from a
1732         D-Bus interface class.
1733
1734 2005-10-29  Robert McQueen  <robot101@debian.org>
1735
1736         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1737         Add checking for the end of struct character when marshalling a
1738         struct in MessageIter.append_strict.
1739
1740         * python/examples/example-service.py,
1741         python/examples/gconf-proxy-service.py,
1742         python/examples/gconf-proxy-service2.py: Update to use gobject
1743         mainloop directly rather than appearing to depend on gtk.
1744
1745         * python/test/test-client.py, python/test/test-server.py: Remove
1746         obsolete and broken test scripts for old bindings. We have up to date
1747         and working tests in test/python/.
1748
1749 2005-10-29  Robert McQueen  <robot101@debian.org>
1750
1751         * python/decorators.py: Add optional arguments to the method and
1752         signal decorators to allow you to specify the signature of arguments
1753         and return values. Preserve the doc strings of signal functions in the
1754         decorated version, for pydoc and friends.
1755
1756         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1757         parse_signature_block function with an iterable dbus.Signature()
1758         type. Fix a bug in MessageIter.append_strict where you could append
1759         anything by claiming it was a string.
1760
1761         * python/service.py: Use the out_signature decoration on methods to
1762         marshal return values, meaning you no longer require dbus.Array()
1763         or dbus.Dictionary() to indicate the type when returning empty
1764         arrays or dictionaries. Fix a bug where exceptions which are defined
1765         in __main__ are not turned into error replies.
1766
1767         * test/python/test-client.py, test/python/test-service.py: Add test
1768         for correct marshalling of return values according to out_signature.
1769         Fix a bug in the async call test where the error_handler is missing a
1770         self argument.
1771
1772 2005-10-29  Robert McQueen  <robot101@debian.org>
1773
1774         * glib/Makefile.am, glib/examples/Makefile.am,
1775         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1776         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1777
1778         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1779
1780         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1781         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1782         the command line.
1783
1784 2005-10-27  Ross Burton  <ross@openedhand.com>
1785
1786         * dbus/dbus-marshal-header.c:
1787         Remove dead code.
1788
1789         * glib/dbus-gobject.c:
1790         Stop compiler warning.
1791
1792 2005-10-25  Ross Burton  <ross@openedhand.com>
1793
1794         * dbus/dbus-auth.c:
1795         * dbus/dbus-server-unix.c:
1796         * dbus/dbus-transport-unix.c:
1797         * glib/dbus-gmain.c:
1798         * glib/dbus-gobject.c:
1799         Add some const keywords.
1800
1801 2005-10-25  Ross Burton  <ross@openedhand.com>
1802
1803         * doc/dbus-specification.xml:
1804         Document the NoReply annotation.
1805
1806         * glib/dbus-binding-tool-glib.h:
1807         * glib/dbus-binding-tool-glib.c:
1808         Respect the NoReply annotation.
1809
1810 2005-10-24  Robert McQueen <robot101@debian.org>
1811
1812         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1813         derive from unicode instead of str, and encode/decode UTF-8 when
1814         marshalling/unmarshalling bus messages
1815
1816         * python/introspect_parser.py: encode introspection data as UTF-8
1817         before passing the buffer into libxml2
1818
1819         * test/python/test-client.py: add unicode test strings
1820
1821         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1822         ignore generated python test files
1823
1824 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1825
1826         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1827         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1828         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1829
1830         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1831         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1832         when constructing struct signatures
1833
1834         * python/_dbus.py (Bus): handle private connections using the
1835         private keyword in the constructor. defaults to private=False
1836         (Bus::close): new method to close a connection to the bus
1837
1838         * python/dbus_bindings.pyx (Connection::close): renamed method
1839         was previously called disconnect
1840         (bus_get): now supports getting a private connection
1841
1842         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1843         keyword is set to True.  if it is, execute the method without waiting
1844         for a reply
1845         (ProxyObject::_introspect_execute_queue): new method for executing
1846         all the pending methods that were waiting for the introspect to
1847         finish.  this is called when introspect either succeeds or fails
1848         (ProxyObject::_introspect_error_handler): call queued methods
1849
1850 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1851
1852         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1853         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1854
1855         * python/service.py (Object::_message_cb): handle exceptions correctly
1856         by sending them over the wire to the calling app.  This makes sure
1857         the client returns immediately instead of waiting the 15 seconds to
1858         timeout.
1859
1860         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1861         Add a test to benchmark how long it takes to introspect a service and 
1862         call a method which returns a large element (pretty fast)
1863
1864         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1865         method which pushes a lot of data
1866
1867 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1870         reclaim memory outside of the loop and use del istead of just setting
1871         the key to None
1872
1873 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1874
1875         * python/service.py (ObjectType::_reflect_on_signal): Always close
1876         signal tag even when there are no arguments
1877
1878 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1879
1880         * configure.in: Set mono, mono-docs and Qt3 to default
1881         to no instead of auto when building.  These bindings do not
1882         have full time maintainers and will not be supported for the
1883         1.0 release.
1884
1885 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1886
1887         patches from Michael Krivoruchko <misha at sun.com>: 
1888         
1889         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1890         _dbus_connection_message_sent, 
1891         _dbus_connection_send_preallocated_unlocked_no_update, 
1892         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1893         is NULL when calling _dbus_verbose
1894
1895         * configure.in: check for functions getpeerucred and getpeereid
1896
1897         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1898         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1899         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1900         Patch was only tested on Solaris 10 x86 so it might be issues
1901         with other platforms (i.e. BSDs and MacOSX)
1902         
1903
1904 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1905
1906         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1907         instead of marshal basic so we can handle recursive types in a variant
1908
1909         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1910         in variants
1911
1912         * test/glib/test-service-glib.c, test-service-glib.xml
1913         (my_object_echo_variant [EchoVariant], 
1914         my_object_process_variant_of_array_of_ints123
1915         [ProcessVariantOfArrayOfInts123]): 
1916         Add two test methods
1917
1918         * python/introspect_parser.py: New module for parsing introspect
1919         data.
1920
1921         * python/dbus_bindings.pyx:
1922         (various places): when throwing errors fix to use errormsg instead 
1923         of message local variable because Pyrex can get confused with other 
1924         message variables (initial patch by Robert McQueen 
1925         <robert.mcqueen at collabora.co.uk>)
1926         (MessageIter::parse_signature_block): new method for getting the next
1927         block in a signiture.
1928         (MessageIter::append_strict): new method for appending values strictly
1929         using the passed in signature instead of guessing at the type
1930         (MessageItter:: append_dict, append_struct, append_array): use 
1931         signatures to marshal children if the signature is available
1932         
1933         * python/exceptions.py (IntrospectionParserException): new exception
1934
1935         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1936         introspected signatures if available, else we fall back to the
1937         old way of doing things.
1938         (ProxyObject::_introspect_reply_handler ): parse introspection data
1939         
1940         * python/service.py (ObjectType::_reflect_on_method): Properly
1941         terminate <method> if there are no args in the reflection data
1942
1943         * test/python/test-client.py: add tests for talking with the GLib
1944         test server.  This gives us better coverage for introspection since
1945         python to python will always generate arguments as variants.  It also
1946         allows us to test the robustness of the GLib bindings and interlanguage
1947         communications.
1948
1949         
1950 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1951
1952         * bus/driver.c (bus_driver_handle_introspect): Add signals
1953         to the introspect data. (patch from Daniel P. Berrange 
1954         <dan at berrange.com>)
1955
1956         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1957         
1958         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1959         _dbus_connection_run_builtin_filters): Changed these to
1960         be unlock_no_update functions and call 
1961         _dbus_connection_send_unlocked_no_update instead of
1962         dbus_connection_send to avoid locking errors.
1963         
1964         * doc/TODO: Removed the make Ping test TODO
1965         
1966 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1967
1968         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1969         We now copy the message from a DBusError and then free 
1970         the error object befor throwing the error
1971
1972         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1973         DBusBindingOutputMode enum which was causing a warning.
1974         #include <time.h> so using time_t is explicitly defined
1975
1976 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1977
1978         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1979         - dbus/dbus-bus.c
1980         (internal_bus_get): new method that take over the heavy lifting
1981         of dbus_bus_get and adds the ability to get a private connection
1982         to the bus
1983         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1984         interface as in previous versions
1985         (dbus_bus_get_private): new method that is a wrapper to 
1986         internal_bus_get to get a private connection to the bus
1987
1988         - dbus/dbus-bus.h
1989         (dbus_bus_get_private): add as a public libdbus interface
1990
1991         - dbus-1.pc.in: output system_bus_default_address and 
1992         sysconfdir variables so apps can use them when compiling
1993
1994 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1995         * dbus/qt: New Qt bindings
1996
1997 2005-09-12  Waldo Bastian  <bastian@kde.org>
1998
1999         * dbus/dbus-marshal-validate.c,
2000         doc/dbus-specification.xml, test/Makefile.am,
2001         test/test-names.c: allow hyphens in bus names.
2002
2003 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2004
2005         * test/data/auth/fallback.auth-script: we don't
2006         retry the EXTERNAL method when we know its going
2007         to fail anymore.
2008
2009 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2010
2011         * dbus/dbus-connection-internal.h: rename
2012         (add|remove|toggle)_(watch|timeout) to unlocked()
2013         
2014         * dbus/dbus-connection.c: ditto.
2015         
2016         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2017         Update some callers for the renaming.
2018
2019 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2020
2021         * dbus/dbus-auth.c: (record_mechanisms): don't
2022         retry the first auth mechanism because we know
2023         we're just going to get rejected again.
2024         
2025         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2026         Fix thinko ... and what a nasty little bugger to
2027         track down you were ...
2028
2029         * dbus/dbus-connection.c:
2030         (_dbus_connection_add_watch),
2031         (_dbus_connection_remove_watch): add note about
2032         these needing the connection to be locked.
2033         (_dbus_connection_get_dispatch_status_unlocked):
2034         set status to DATA_REMAINS when we queue the
2035         disconnected message.
2036         
2037         * bus/dispatch.c:
2038         (bus_dispatch): fix warning.
2039         (check_existent_service_no_auto_start):
2040         Expect ChildSignaled error too.
2041         (check_existent_hello_from_self): fix another
2042         couple of warnings.
2043         
2044 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2045
2046         Patches from James Willcox <snorp@snorp.net>
2047
2048         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2049
2050         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2051         support array "out" parameters.
2052
2053         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2054         for 16-bit int support.
2055
2056 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * Released 0.50
2059
2060         * Patch from Steve Grubb:
2061         - bus/activation.c (bus_activation_service_reload_test): clean up
2062         some indentation
2063         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2064         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2065         buffer overflows in the test suite.  This is non critical because
2066         it can not be exploited and this code is only run when doing a 
2067         make check.
2068
2069         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2070         - configure.in: Don't check and link against kdecore, only qt headers
2071         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2072         - gcj/org/freedesktop/dbus/Makefile.am:
2073         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2074         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2075         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2076         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2077         - tools/Makefile.am: Add platform extentions to binaries 
2078         (i.e. .exe on windows)
2079
2080         * configure.in: 
2081         - Make it so if no suitable version of python is found we only 
2082         disable building python instead of exiting the configure script
2083         - Require version 2.4 of glib for glib bindings
2084         - Up version to 0.50
2085
2086         * python/__init__.py: Sync version with libdbus to (0,50,0)
2087         
2088 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2089
2090         * dbus/dbus-object-tree.c (find_subtree_recurse):
2091         a couple of optimizations (bug #710):
2092         - do a binary search in the tree
2093         - insert a new child at the right place directly, no need for
2094           qsort anymore
2095         - do the "double alloc" thing when allocating children
2096
2097 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2098
2099         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2100
2101         * python/dbus_bindings.pyx: Memory management foo
2102         (global): remove hacky _user_data_references global list
2103         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2104         tuples. Unref user_data
2105         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2106         (Connection::__del__): Remove and replace with __dealloc__ method
2107         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2108         to keep tuple from being deallocated instead of the global var hack
2109         (Connection::register_object_path): Stuff user_data into a tuple.
2110         Use Py_INCREF to keep tuple from being deallocated instead of the 
2111         global var hack
2112         (Connection::register_fallback): Stuff user_data into a tuple.
2113         Use Py_INCREF to keep tuple from being deallocated instead of the 
2114         global var hack
2115         (GIL_safe_pending_call_notification): Don't unref the message
2116         because it gets unreffed when going out of scope.  Py_XDECREF
2117         the user_data
2118         (PendingCall::__del__): Remove and replace with __dealloc__ method
2119         (PendingCall::set_notify): ref the pending call because we will
2120         need it to stick around for when the notify callback gets called
2121         (Message::__del__): Remove and replace with __dealloc__ method
2122
2123         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2124         gthreads_init to match up with the dbus call
2125
2126         * python/glib.py (init_threads): Changed to threads_init to match
2127         up with gobject.threads_init().  init_threads is kept for backwards
2128         compat but will most likely be deprecated in the future
2129
2130         * test/python/test-client.py: 
2131         - revamp to use Python's unittest functionality
2132         - add async call tests
2133         - setup threads in glib and dbus so we make sure locks are working
2134         
2135 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2136
2137         * python/dbus_bindings.pyx 
2138         (_pending_call_notification, cunregister_function_handler, 
2139         cmessage_function_handler): All callback functions have been rearranged 
2140         to workaround a bug in Pyrex when working with the GIL which is Python's 
2141         global lock when dealing with threads.  They have been split into
2142         a wrapper function (which assumes the name of the old function) and
2143         a _GIL_safe_<function name> function which contains the functionality
2144         of the old function.  This ensures that Pyrex does not write code
2145         the lock is released.
2146         
2147
2148 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2149
2150         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2151         GIL global lock when calling back into Python
2152
2153 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2154
2155         * Release 0.36.2
2156
2157         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2158
2159         * bus/policy.c (bus_policy_allow_user): change default "user is
2160         allowed" to be "user has same uid as the bus itself"; any
2161         allow/deny rules will override.
2162
2163         * bus/session.conf.in: don't allow all users, since now by default
2164         the user that ran the bus can connect.
2165
2166 2005-08-26  Colin Walters  <walters@verbum.org>
2167
2168         * tools/dbus-print-message.c (print_message): Flush stdout
2169         after printing a message, so that redirecting to a file, then
2170         hitting Ctrl-C works.
2171
2172 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2173
2174         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2175         (EmptyMessage): new class that subclasses Message.  This is a workaround
2176         to a Pyrex bug that fails to call __del__ when the Message object goes out
2177         of scope.  For some reason subclassing Message fixes this bug
2178         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2179         - s/Message(_create=0)/EmptyMessage everywhere else
2180         
2181         * test/python/test-{server|client}.py: add the python/.libs directory
2182         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2183         get picked up from the system
2184
2185 2005-08-25  Colin Walters  <walters@verbum.org>
2186
2187         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2188         to Ryan Lortie for the suggestion.
2189
2190 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2191
2192         * test/python: Add python regression test
2193
2194         * configure.in: Add test/python/Makefile
2195
2196         * test/Makefile.am: Add the python directory to SUBDIRS
2197
2198 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2199
2200         * Release 0.36.1
2201
2202         * python/_dbus.py: 
2203         (Interface::connect_to_signal): propigate keywords for match on args
2204         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2205
2206         * python/proxies.py (ProxyObject::connect_to_signal):
2207         propigate keywords for match on args
2208
2209         * Makefile.am: point everything to pyexecdir since python borks
2210         on multilib
2211
2212 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * Release 0.36
2215
2216 2005-08-23  Colin Walters  <walters@verbum.org>
2217
2218         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2219
2220 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2221
2222         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2223         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2224         of defining DBusConnection ourselves.
2225
2226 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2227
2228         * python/dbus.pth: New path file to fix up problems when installing
2229         c libraries to lib64 and python files to lib.
2230
2231         * python/Makefile.am: install dbus.pth in the correct spot
2232
2233 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2234         * ChangeLog: clean up my last entry a bit
2235
2236         * doc/introspect.xsl: New stylesheet for converting introspection data
2237         into browser renderable xhtml. Contributed by Lennart Poettering.
2238
2239         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2240         Poettering.
2241
2242         * doc/dbus-tutorial.xml: 
2243         - Add Colin Walter to the Authors section for authoring the GLib
2244         section
2245         - Add descriptions of the new signature and type functionality
2246         in the Python complex type mapping section
2247         - Add a sidenote on the new args matching functionality in 
2248         the Python bindings
2249         - Fixed up some of the examples to use the gobject.MainLoop
2250         instead of gtk.main
2251         
2252         * python/_dbus.py:
2253         (Bus::_create_args_dict): New. Converts a hash of arg matches
2254         to a more useable format
2255         (Bus::add_signal_receiver): add a **keywords parameter for catching
2256         arg match parameters
2257         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2258         arg match parameters
2259         
2260         * python/matchrules.py:
2261         (MatchTree::exec_matches): Check for arg matches
2262         (SignalMatchRule::add_args_match): New method
2263         (SignalMatchRule::execute): Added args_list parameter as an optimization
2264         so we don't have to marshal the args more than once
2265         (SignalMatchRule::match_args_from_list): New method that checks to see
2266         if the rule's arg matches match an argument list.  Only arguments
2267         set in the rule are checked.
2268         (SignalMatchRule::match_args_from_rule): New method that checks to see
2269         if the rule's arg matches match another rule's.  All args have to match
2270         in order for this method to return true.  If either rule has more args
2271         then it is not a match.
2272         (SignalMatchRule::is_match): Add args match
2273         (SignalMatchRule::repr): Add args to the final output if they exist
2274
2275 2005-08-17  Ross Burton  <ross@burtonini.com>
2276
2277         * glib/dbus-gproxy.c:
2278         (dbus_g_proxy_call_no_reply): unref the message once sent.
2279         (dbus_g_proxy_call): protect against NULL proxy.
2280
2281 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2282
2283         * python/__init__.py: Version updated (0, 43, 0)
2284         
2285         * python/dbus_bindings.pyx: 
2286         - Fixed type objects to have self passed into __init__
2287         - Added the Variant type
2288         - Add the ability to specify types or signatures for Array, Variant 
2289         and Dictionary
2290         (Connection::send_with_reply_handlers): return a PendingCall object
2291         (_pending_call_notification): handle the case when an error is returned 
2292         without an error message in the body
2293         (MessageIter::get_boolean): return True or False instead of an integer
2294         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2295         and add checks for objects with embeded signatures or types (Array, 
2296         Variant and Dictionary)
2297         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2298         (MessageIter::append_dict): handle embeded types or signatures
2299         (MessageIter::append_array): handle embeded types or signatures
2300         (MessageIter::append_variant): new method
2301         
2302         * python/proxies.py:
2303         (DeferedMethod): New. Dummy executable object used when queuing calls 
2304         blocking on introspection data
2305         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2306         or shorter timeouts for method calls
2307         (ProxyObject): Add first pass at an introspection state machine
2308         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2309         introspection. 
2310         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2311         the usual mechanisms for sending messages.  This is to avoid a deadlock
2312         where the Intospect call would be queued waiting for the Introspect 
2313         call to finish ;-)
2314         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2315         when introspection returns with no error
2316         (ProxyObject::_introspect_error_handler): New.  This method is called 
2317         when introspection encounters an error
2318         (ProxyObject::__getattr__): Code to handle different introspection 
2319         states.  Queue async calls or block blocking calls if we are 
2320         introspecting.  Pass through as normal if we are not or are done with 
2321         introspecting.
2322         
2323         * python/service.py: Import signal and method from decorators.py
2324
2325         * python/types.py: Add Variant type
2326
2327 2005-08-16  Colin Walters  <walters@verbum.org>
2328
2329         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2330         DBusError message is NULL.
2331
2332 2005-08-09  Havoc Pennington  <hp@redhat.com>
2333
2334         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2335         malloc'd copy of the name parameter
2336
2337 2005-08-09  Havoc Pennington  <hp@redhat.com>
2338
2339         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2340         warning if the reply serial is set to 0
2341
2342 2005-08-04  Colin Walters  <walters@verbum.org>
2343
2344         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2345         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2346         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2347         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2348         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2349         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2350         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2351         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2352         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2353         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2354         
2355         Prefix name with _ to ensure they're not exported.  All callers
2356         updated.
2357
2358         * glib/dbus-gvalue.c (typecode_to_gtype)
2359         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2360         (signature_iter_to_g_type_dict)
2361         (signature_iter_to_g_type_array)
2362         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2363         (dbus_gtypes_from_arg_signature):
2364         Move to dbus-gsignature.c.
2365
2366         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2367         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2368         (dbus_binding_tool_output_glib_client): Ditto.
2369
2370         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2371         and dbus-gsignature.h
2372
2373         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2374         unused variable.
2375
2376 2005-08-03  Colin Walters  <walters@verbum.org>
2377
2378         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2379         catch any incompatible changes accidentally made.
2380
2381 2005-08-03  Havoc Pennington  <hp@redhat.com>
2382
2383         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2384         typo, from Julien Puydt
2385
2386         * bus/connection.c (bus_connection_disconnected): we were always
2387         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2388
2389 2005-08-01  Colin Walters  <walters@verbum.org>
2390
2391         Patch from Joe Markus Clarke:   
2392         
2393         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2394         use-after-free.
2395
2396 2005-08-01  Colin Walters  <walters@verbum.org>
2397         
2398         Patch from Joe Markus Clarke:   
2399         
2400         * tools/dbus-send.c (main): 
2401         
2402         Don't use C99 style initializers (bug #3933).
2403         
2404 2005-08-01  Colin Walters  <walters@verbum.org>
2405
2406         Patch from Joe Markus Clarke:   
2407
2408         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2409         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2410         * glib/dbus-gobject.c (write_interface):
2411
2412         Don't use C99 style initializers (bug #3933).
2413
2414 2005-07-31  Havoc Pennington  <hp@redhat.com>
2415
2416         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2417         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2418
2419 2005-07-30  Havoc Pennington  <hp@redhat.com>
2420
2421         * fix a bunch of Doxygen warnings and mistakes
2422
2423 2005-07-30  Havoc Pennington  <hp@redhat.com>
2424
2425         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2426         DBUS_BUILD_TESTS since it's now used in production code
2427
2428 2005-07-29  Havoc Pennington  <hp@redhat.com>
2429
2430         * test/glib/test-profile.c (write_junk): initialize the junk
2431         buffer so valgrind doesn't have a breakdown
2432
2433 2005-07-29  Havoc Pennington  <hp@redhat.com>
2434
2435         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2436         (match_rule_matches): remove unused arg
2437         (test_matching): add tests for match_rule_matches()
2438
2439         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2440         do arg0='foo' arg5='bar' in the match rules
2441         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2442
2443         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2444
2445 2005-07-29  Ross Burton  <ross@openedhand.com>
2446
2447         * dbus/dbus-connection.c:
2448         Don't create a DBusCondVar which is never used.
2449
2450 2005-07-27  Ross Burton  <ross@openedhand.com>
2451
2452         * dbus/dbus-message.c:
2453         Reduce the size of the maximum cached message to 10K.
2454
2455 2005-07-25  Ross Burton  <ross@openedhand.com>
2456
2457         * glib/dbus-gproxy.c:
2458         Remove matches when all proxies are unregistered.
2459
2460 2005-07-24  Colin Walters  <walters@verbum.org>
2461
2462         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2463         typedata; recursive arrays won't have it.
2464
2465         * test/glib/test-dbus-glib.c:
2466         * test/glib/test-service-glib.c:
2467         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2468         
2469 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2470
2471         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2472         proxies.py, service.py: Cleanup of code after running it through the
2473         pyflakes code checker mostly dealing with undefined names.  
2474         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2475
2476 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2477
2478         * NEWS: Update to 0.35.2
2479
2480 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2481
2482         * python/_dbus.py: Remove import of the dbus.services
2483         module as it no longer exists (patch from Dimitur Kirov)
2484
2485         * python/service.py (Object::__init__): Fixed typo
2486         s/name/bus_name (patch from Dimitur Kirov)
2487
2488         * python/examples/example-signal-emitter.py: import dbus.glib
2489         to get the main loop and use glib mainloop instead of gtk so
2490         X doesn't have to be running.
2491
2492         * python/examples/example-signal-recipient.py: import dbus.glib
2493         to get the main loop and use glib mainloop instead of gtk so
2494         X doesn't have to be running. Import the decorators module
2495         directly.
2496
2497         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2498         didn't pick up on but are needed to build
2499
2500         * configure.in: upped version to 0.35.2
2501
2502         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2503         added Colin Walters' SELinux API rename patch from head 
2504         s/unix sercurity context/selinux security context/
2505
2506 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2507
2508         * python/Makefile.am: dbus_binding.pxd.in should be included 
2509         in EXTRA_DIST not dbus_binding.pxd
2510         fix up $(srcdir) hopefully for the last time
2511
2512         * NEWS: Update to 0.35.1
2513
2514 2005-07-16  Colin Walters  <walters@verbum.org>
2515
2516         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2517         from bus_driver_handle_get_connection_unix_security_context.  Update for
2518         error usage.
2519         (message_handlers): Update for renames.
2520
2521         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2522         _dbus_string_init failure correctly.
2523         (bus_selinux_append_context): Convert SID to context.  Append it
2524         as a byte array.
2525         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2526         hasn't been called.
2527
2528         * bus/selinux.h: Update prototype.
2529
2530         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2531         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2532
2533 2005-07-15  Colin Walters  <walters@verbum.org>
2534
2535         * doc/TODO: Add note about convenience wrappers.
2536
2537 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2538
2539         * NEWS: Update to 0.35
2540
2541 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2542
2543         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2544         so distcheck doesn't fail
2545
2546         * glib/examples/Makefile.am: Add example-service.xml and 
2547         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2548
2549         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2550         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2551
2552         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2553         compiler looks in the right places during distcheck
2554
2555 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2556
2557         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2558         to fail
2559
2560 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * python/examples/example-service.py,
2563         python/examples/example-signal-emitter.py: Fixed up examples
2564         for API changes
2565
2566 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2567
2568         * python/__init__.py: Upped to version (0,42,0) because of
2569         the API change
2570
2571 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2572
2573         * ChangeLog: fix date in last entry
2574
2575         * configure.in, bus/system.conf.in: add the ability to configure 
2576         the system bus user at compiletime with the --with-dbus-user flag
2577         (patch from Kristof Vansant)
2578
2579 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2580
2581         * bus/dispatch.c, test/test-service.c: Add testcase
2582         for sending messages to oneself (TODO item).
2583
2584         * python/service.py (class Object): Swap ordering of bus_name 
2585         and object_path parameters to better support inheritance.
2586
2587         * doc/dbus-tutorial.xml: change Python docs to reflect change
2588         in parameter ordering and fix the inheritance section.
2589
2590         * doc/TODO: remove sending message to oneself TODO item
2591
2592 2005-07-15  Ross Burton  <ross@openedhand.com>
2593
2594         * glib/dbus-gproxy.c:
2595         Fix a leak when calling methods via the proxy.
2596
2597 2005-07-15  Colin Walters  <walters@verbum.org>
2598
2599         * bus/selinux.c (bus_selinux_append_context): Wrap in
2600         HAVE_SELINUX.
2601
2602 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2603
2604         * python/_dbus.py (Bus::remove_signal_receiver):
2605         don't add a callback to the match if none has been passed in
2606         
2607         * python/matchrules.py (SignalMatchTree::remove): if the rule
2608         being matched does not have a callback treat it as a wildcard
2609         fix matching logic
2610
2611         * doc/dbus-tutorial.xml: Add Python tutorial
2612
2613 2005-07-14  Colin Walters  <walters@verbum.org>
2614
2615         * bus/driver.c
2616         (bus_driver_handle_get_connection_unix_security_context): New function.
2617         (message_handlers): Add.
2618
2619         * bus/selinux.c (bus_selinux_append_context): New function; appends
2620         security context to message.
2621
2622         * bus/selinux.h: Prototype.
2623
2624         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2625
2626 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2627
2628         * bus/activation.c: clean up all tabs to be 8 spaces 
2629         (bus_activation_activate_service): make sure we clean up
2630         if activation fails
2631
2632         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2633         (check_shell_fail_service_auto_start): New function
2634         tests to make sure we get fail properly when trying to auto start a service
2635         with a faulty command line
2636         (check_shell_service_success_auto_start): New function tests to make sure
2637         auto started services get the arguments on the command line
2638
2639         * test/test-shell-service.c: Added service for testing auto-starting with 
2640         command line arguments
2641
2642         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2643         test/data/valid-service-files/debug-shell-echo-success.service.in:
2644         Added service files for testing auto-starting with command line arguments
2645
2646         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2647
2648 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2649
2650         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2651         
2652         * dbus/Makefile.am: added new files to build.
2653
2654         * bus/activation.c (bus_activation_activate_service): support
2655         activation commands with parameters.
2656
2657         * test/shell-test.c: added test program for the shell parsing
2658         code.
2659
2660 2005-07-13  David Zeuthen  <davidz@redhat.com>
2661
2662         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2663         64 bit signed and unsigned parameters
2664
2665 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2666
2667         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2668
2669         * python/service.py (class Name): renamed BusName to make it clearer
2670         what the object is for (a name on the bus)
2671
2672         * python/examples/example-service.py,
2673         python/examples/example-signal-emitter.py: change the Name object to
2674         BusName
2675
2676 2005-07-12  Colin Walters  <walters@verbum.org>
2677
2678         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2679
2680         * tools/dbus-launch.c: Include sys/select.h.
2681
2682 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2683         * python/dbus_bindings.pyx.in: removed
2684
2685         * python/dbus_bindings.pyx: Added.
2686         - Fixed some memleaks (patch from 
2687         Sean Meiners <sean.meiners@linspireinc.com>)
2688         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2689         own pxd file (Pyrex definition)
2690         - Broke out glib dependancies into its own pyx module
2691         
2692         * python/dbus_bindings.pdx: Added.
2693         - Defines C class Connection for exporting to other modules
2694
2695         * python/dbus_glib_bindings.pyx: Added.
2696         - New module to handle lowlevel dbus-glib mainloop integration
2697
2698         * python/glib.py: Added.
2699         - Registers the glib mainloop when you import this module
2700
2701         * python/services.py: Removed (renamed to service.py)
2702         
2703         * python/service.py: Added.
2704         - (class Server): renamed Name
2705
2706         * python/__init__.py: Bump ro version (0,41,0)
2707         -don't import the decorators or service module
2708         by default.  These now reside in the dbus.service namespace
2709
2710         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2711         setup function on creation 
2712
2713         * python/examples/example-service.py,
2714         python/examples/example-signal-emitter.py: update examples
2715
2716         * python/examples/gconf-proxy-service.py,
2717         python/examples/gconf-proxy-service2.py: TODO fix these up
2718
2719         * doc/TODO: Addition
2720         - Added a Python Bindings 1.0 section
2721         - added "Add match on args or match on details to match rules"
2722
2723
2724 2005-07-12  Colin Walters  <walters@verbum.org>
2725
2726         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2727         (statemachine-glue.h): 
2728         * glib/examples/Makefile.am (example-service-glue.h) 
2729         (example-signal-emitter-glue.h): 
2730         * glib/Makefile.am (dbus-glib-error-switch.h): 
2731         Add libtool --mode=execute so we use the built library instead
2732         of any installed one.
2733
2734 2005-07-11  Colin Walters  <walters@verbum.org>
2735
2736         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2737         (dbus_g_value_types_init): Remove assertion.
2738         (dbus_g_value_get_g_type, dbus_g_value_open)
2739         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2740         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2741         functions related to DBusGValue.  Now we marshal/demarshal
2742         structures as GValueArray.
2743         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2744         structures.
2745         (signature_iter_to_g_type_array): Don't call
2746         signature_iter_to_g_type_struct.
2747         (signature_iter_to_g_type_struct): Delete.
2748         (dbus_gvalue_to_signature): Delete.
2749         (dbus_gvalue_to_signature): New function with same name as other
2750         one; we can convert structures to signatures.
2751         (demarshal_valuearray): New function.
2752         (get_type_demarshaller): Use it.
2753         (demarshal_recurse): Delete.
2754         (marshal_proxy): New function.
2755         (marshal_map): Warn if we can't determine signature from type.
2756         (marshal_collection_ptrarray): Ditto.
2757         (marshal_collection_array): Ditto.
2758         (get_type_marshaller): Use marshal_valuearray.
2759         (marshal_recurse): Delete.
2760         (_dbus_gvalue_test): Add some tests.
2761
2762         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2763         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2764         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2765         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2766         (dbus_g_value_free): Remove prototypes.
2767
2768         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2769         G_TYPE_VALUE_ARRAY.
2770
2771         * glib/examples/example-service.c:
2772         * glib/examples/example-client.c: Implement GetTuple.
2773
2774         * test/glib/test-dbus-glib.c:
2775         * test/glib/test-service-glib.c:
2776         * test/glib/test-service-glib.xml: Add structure tests.
2777
2778 2005-07-10  Colin Walters  <walters@verbum.org>
2779
2780         * doc/TODO: Knock off some GLib items with this patch.
2781
2782         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2783         (_dbus_gvalue_signals_error): New functions.
2784
2785         * glib/dbus-gvalue-utils.h: Prototype them.
2786
2787         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2788         and change to not output const/retval flags for input args.  All
2789         callers updated.
2790         (invoke_object_method): Refactor to handle return values.  Add
2791         some more comments in various places.  Remove debug g_print.
2792
2793         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2794
2795         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2796         Handle G_TYPE_NONE.
2797         (compute_gsignature): New function; refactored from code from
2798         compute_marshaller and compute_marshaller_name.  Enhance to
2799         handle return values and async ops more cleanly.  Update for
2800         async ops returning NONE instead of BOOLEAN.
2801         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2802         and output appropriate string.
2803         (generate_glue): Handle return value annotation.  Also don't dump
2804         constness flag for input arguments.
2805
2806         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2807         files shared between installed library and utilities.
2808         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2809         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2810         binding tool can access gtype utility functions.
2811
2812         * test/glib/test-service-glib.c: 
2813         * test/glib/test-service-glib.xml: 
2814         * test/glib/test-dbus-glib.c: Add some tests for return values.
2815
2816 2005-07-09  Colin Walters  <walters@verbum.org>
2817
2818         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2819         argument if available, not method.
2820
2821         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2822         (invoke_object_method): First, remove some redundant
2823         GValues (object_value, error_value) in favor of working on
2824         array directly.  Second, rework constness to be less buggy.
2825         Now we iterate directly over the argument metadata instead
2826         of parallel iterating over output signature and metadata.
2827
2828         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2829
2830         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2831         annotation on input args.
2832         
2833 2005-07-09  Colin Walters  <walters@verbum.org>
2834
2835         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2836         Define.
2837
2838         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2839         annotation.
2840
2841         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2842         (method_dir_signature_from_object_info): Handle arg_iterate change.
2843         (write_interface): Ditto.
2844         (lookup_object_info): Don't barf if format_version is > 0.
2845         (invoke_object_method): Handle arg constness.
2846
2847         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2848         (arg_info_new): Create.
2849         (arg_info_unref): Destroy.
2850         (arg_info_get_annotations, arg_info_get_annotation) 
2851         (arg_info_add_annotation): New functions.
2852
2853         * glib/dbus-gidl.h: Prototype them.
2854
2855         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2856         args, disallow them in properties.
2857         (parse_annotation): Handle arg annotations.
2858
2859         * test/glib/test-service-glib.xml: 
2860         * test/glib/test-service-glib.c: Update to make some methods
2861         const.
2862
2863 2005-07-08  Colin Walters  <walters@verbum.org>
2864
2865         * test/glib/test-service-glib.xml: 
2866         * test/glib/test-service-glib.c:
2867         * test/glib/test-dbus-glib.c: Test a{sv}.
2868
2869         * glib/examples/statemachine/statemachine.c:
2870         * glib/examples/statemachine/statemachine-server.c:
2871         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2872         add progress bar, etc.
2873
2874         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2875         needed anymore due to generic array/map marshalling.
2876         (dbus_g_value_types_init): Don't register basic arrays or the
2877         string/string hash.
2878         (dbus_gtype_from_signature_iter): Don't try to recurse into
2879         variants.
2880         (dbus_gtype_to_signature): Check collection/map before type
2881         metadata.
2882         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2883         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2884         generic map creation/append functions instead of hash table
2885         specifically.
2886         (get_type_demarshaller): Handle maps.
2887         (demarshal_collection): Dispatch on collection type to either
2888         demarshal_collection_ptrarray or demarshal_collection_array.
2889         (get_type_marshaller): Handle maps.
2890         (marshal_collection): Dispatch collection type to either
2891         marshal_collection_ptrarray or marshal_collection_array.
2892         (_dbus_gvalue_test): New test.
2893
2894         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2895         (hash_free_from_gtype): Use it to free GValues.
2896         (hashtable_append): New function.
2897         (ptrarray_append): Fix prototype.
2898         (slist_append): Ditto.
2899         (_dbus_gvalue_utils_test): Extend tests.
2900
2901         * glib/dbus-gtype-specialized.c
2902         (dbus_g_type_specialized_init_append): Renamed from
2903         dbus_g_type_specialized_collection_init_append.  Remove const from
2904         value, since we steal it.
2905         (dbus_g_type_specialized_map_append): New function.
2906
2907         * glib/dbus-gtype-specialized.h: Update prototypes.
2908         Add DBusGTypeSpecializedMapAppendFunc.
2909
2910         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2911         _dbus_gvalue_test.
2912         
2913         * glib/dbus-gtest.h: Prototype it.
2914
2915 2005-07-08  Ross Burton  <ross@openedhand.com>
2916
2917         * dbus/dbus-glib.h:
2918         Add DBysGAsyncData for the async bindings.
2919
2920         * glib/dbus-binding-tool-glib.c:
2921         Re-enable the async bindings.
2922
2923         * test/glib/test-dbus-glib.c:
2924         Add a test for the generated async bindings.
2925
2926 2005-07-08  Colin Walters  <walters@verbum.org>
2927
2928         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2929         connection concept.
2930         
2931 2005-07-08  Colin Walters  <walters@verbum.org>
2932         
2933         * tools/Makefile.am: Kill of print-introspect in favor of using
2934         dbus-send --print-reply=literal.
2935
2936         * test/glib/test-service-glib.xml: 
2937         * test/glib/test-service-glib.c (my_object_get_objs): New test
2938         for "ao".
2939
2940         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2941         (main): Test GetObjs.
2942
2943         * glib/examples/statemachine/Makefile.am:
2944         * glib/examples/statemachine/sm-marshal.list:
2945         * glib/examples/statemachine/statemachine-client.c:
2946         * glib/examples/statemachine/statemachine-server.c:
2947         * glib/examples/statemachine/statemachine-server.xml:
2948         * glib/examples/statemachine/statemachine.c:
2949         * glib/examples/statemachine/statemachine.h:
2950         * glib/examples/statemachine/statemachine.xml:
2951
2952         New example.
2953
2954         * glib/examples/example-service.c (main): Move invocation
2955         of dbus_g_object_type_install_info earlier, to emphasize it
2956         should only be done once.
2957
2958         * glib/examples/example-signal-emitter.c (main): Ditto.
2959
2960         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2961
2962         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2963         (dbus_gvalue_marshal): Update prototypes.
2964
2965         * glib/dbus-gvalue.c: Update all marshalling functions to take
2966         const GValue instead of GValue.
2967         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2968         types.
2969         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2970         change.
2971         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2972         Return a newly-allocated string.
2973         (demarshal_proxy, demarshal_object_path, demarshal_object)
2974         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2975         we get the wrong types from message.
2976         (get_type_demarshaller): New function, extracted from
2977         dbus_gvalue_demarshal.
2978         (demarshal_collection): New function, demarshals generic
2979         collection.
2980         (dbus_gvalue_demarshal): Just invoke result of
2981         get_type_demarshaller.  Throw error if we don't have one.
2982         (marshal_garray_basic): Abort on OOM.
2983         (get_type_marshaller): New function, extracted from
2984         dbus_gvalue_marshal.
2985         (collection_marshal_iterator, marshal_collection): New functions;
2986         implements generic marshalling for an iteratable specialized
2987         collection.
2988         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2989
2990         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2991         G_TYPE_STRING.
2992         (ptrarray_value_from_gvalue): Ditto.
2993         (ptrarray_append, ptrarray_free): New functions.
2994         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2995         (slist_append, slist_end_append, slist_free): New functions.
2996         (dbus_g_type_specialized_builtins_init): Add append fuctions
2997         for GPtrArray and GSList.  Register GSList.
2998         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2999
3000         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3001         New.
3002         (dbus_g_type_specialized_collection_init_append)
3003         (dbus_g_type_specialized_collection_append)
3004         (dbus_g_type_specialized_collection_end_append): Prototype.
3005         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3006         end_append_func.
3007
3008         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3009         (dbus_g_type_specialized_collection_append) 
3010         (dbus_g_type_specialized_collection_end_append): New functions.
3011         (dbus_g_type_map_value_iterate): Take const GValue.
3012         (dbus_g_type_collection_value_iterate): Ditto.
3013
3014         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3015         _dbus_gvalue_utils_test.
3016         
3017         * glib/dbus-gtest.h: Prototype it.
3018
3019         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3020         using uninitialized owner_list.
3021         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3022         public API.
3023         (dbus_g_proxy_end_call_internal): Update to use error set
3024         from dbus_gvalue_demarshal instead of setting it here.
3025         (dbus_g_proxy_begin_call): Move return_if_fail here.
3026
3027         * glib/dbus-gobject.c (write_interface): Update for
3028         dbus_gtype_to_signature returning new string.
3029
3030         * configure.in: Add glib/examples/statemachine.
3031
3032 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3033
3034         * configure.in: Add a configure option, --with-console-auth-dir
3035         
3036         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3037         new setting.  Patch from Kay Sievers.
3038
3039 2005-07-06  Colin Walters  <walters@verbum.org>
3040
3041         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3042         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3043         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3044         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3045         Delete in favor of dbus_g_proxy_begin_call and
3046         dbus_g_proxy_cancel_call.
3047         (DBusGProxyCall, DBusGProxyCallNotify): New.
3048         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3049         data, and destroy function.  This replaces
3050         dbus_g_pending_call_set_notify.
3051         (dbus_g_proxy_cancel_call): Prototype.
3052         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3053
3054         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3055         pending_calls map.
3056         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3057         internal proxy for calls to the bus. Remove
3058         pending_nameowner_calls, now the internal proxy keeps track.
3059         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3060         pending_nameowner_calls.
3061         (got_name_owner_cb): Update prototype, and use
3062         dbus_g_proxy_end_call.
3063         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3064         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3065         favor of using internal proxy.
3066         (dbus_g_proxy_manager_unregister): Update to use
3067         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3068         (dbus_g_proxy_init): Initialize pending calls map.
3069         (dbus_g_proxy_constructor): New.
3070         (dbus_g_proxy_class_init): Add get/set property functions,
3071         constructor, and add NAME, PATH, and INTERFACE properties.
3072         (cancel_pending_call): New function.
3073         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3074         cancel them.
3075         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3076         (GPendingNotifyClosure): New structure.
3077         (d_pending_call_notify, d_pending_call_free): Moved here from
3078         dbus-glib.c.
3079         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3080         ordering.
3081         (manager_begin_bus_call): New internal function for talking to
3082         internal bus proxy.
3083         (dbus_g_proxy_new): Construct object using GObjet properties.
3084         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3085         Create closure of same, and insert call into map of pending calls.
3086         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3087         call.  Look up pending call in current set.  Remove it when we've
3088         completed.
3089         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3090         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3091         and destroy function directly.
3092         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3093         (dbus_g_proxy_call): Invoke with NULL callback.
3094         (dbus_g_proxy_cancel_call): New function, replaces
3095         dbus_g_pending_call_cancel.
3096
3097         * glib/dbus-gparser.c (validate_signature): Fix call to
3098         dbus_set_g_error.
3099
3100         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3101         New quark for attaching metadata to GType.
3102         (info_hash): Delete.
3103         (lookup_object_info): Look up using quark.
3104         (dbus_g_object_type_install_info): Check that a type is classed,
3105         not that it's an object.  Also just install type data using quark
3106         instead of using global hash.
3107
3108         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3109         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3110         (GPendingNotifyClosure): Delete.
3111         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3112         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3113
3114         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3115         client method generation until we can fix it...
3116         
3117         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3118         (load_from_service_thread_func): Ditto.
3119
3120         * tools/dbus-names-model.c (struct NamesModel): Hold
3121         DBusGProxyCall.
3122         (have_names_notify): Update prototype, use
3123         dbus_g_proxy_cancel_call.
3124         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3125
3126         * tools/dbus-monitor.c (filter_func): Update for print_message
3127         API change.
3128
3129         * test/glib/test-dbus-glib.c: Add more tests for async
3130         invocations.  Update many begin_call/end_call pairs to just use
3131         dbus_g_proxy_call.
3132
3133         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3134         allows us to dump print-introspect.c.
3135
3136         * tools/dbus-print-message.h (print_message): Add literal argument
3137         to print_message which is intended to allow printing arguments without
3138         metadata like "string=".
3139
3140         * tools/dbus-print-message.c (print_iter): Add literal argument.
3141         (print_message): Allow printing string messages literally.
3142
3143 2005-07-05  Colin Walters  <walters@verbum.org>
3144
3145         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3146         Remove value refcount leak, original patch from Jorn Baayen
3147         <jorn@openedhand.com>.  Also remove useless extra value in favor
3148         of prepending to value array directly.
3149
3150 2005-07-02  Colin Walters  <walters@verbum.org>
3151
3152         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3153
3154 2005-07-01  Colin Walters  <walters@verbum.org>
3155
3156         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3157         
3158         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3159         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3160         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3161         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3162
3163 2005-06-30  Colin Walters  <walters@verbum.org>
3164
3165         * test/glib/test-dbus-glib.c:
3166         * test/glib/test-service-glib.c:
3167         * test/glib/test-service-glib.xml: Update tests for new error
3168         setting bits, also add async tests (patch from Ross Burton).
3169
3170         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3171         DBUS_GLIB_THREADS_LIBS.
3172
3173         * glib/dbus-gproxy.c (get_name_owner)
3174         (dbus_g_pending_call_end_valist): Ditto.
3175
3176         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3177         domain (GQuark) to DBusGErrorInfo.  
3178         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3179         quark in error_metadata.  Take message interface as default
3180         error message interface.
3181         (gerror_to_dbus_error_message): Pass message interface.
3182         (dbus_set_g_error): Resurrected.
3183         (dbus_g_error_info_free): New function.
3184         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3185         of _peek to actually create the object class if it hasn't been
3186         created yet.
3187         (dbus_g_error_domain_register): New function.
3188
3189         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3190
3191         * glib/dbus-gparser.c (validate_signature): Ditto.
3192
3193         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3194         (dbus_g_error_domain_register): Prototype.
3195
3196         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3197         Update tests.
3198
3199 2005-06-29  Colin Walters  <walters@verbum.org>
3200
3201         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3202         DBUS_TYPE_G_OBJECT_PATH.
3203
3204         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3205         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3206         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3207         (dbus_g_object_path_get_g_type): New function.
3208         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3209         to DBUS_TYPE_G_OBJECT_PATH by default.
3210         (demarshal_proxy): Remove unused name variable.
3211         (demarshal_object_path, marshal_object_path): New functions.
3212         (demarshal_proxy_array, marshal_proxy_array): Delete.
3213         
3214         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3215         DBUS_TYPE_G_OBJECT_PATH to char *.
3216         (dbus_g_type_get_lookup_function): Map builtin
3217         DBUS_TYPE_G_OBJECT_PATH.
3218
3219         * test/glib/test-dbus-glib.c
3220         * test/glib/test-service-glib.c (my_object_objpath): 
3221         Adapt tests to new object path marshalling.
3222
3223 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3224
3225         * configure.in: force check for Python >= 2.4
3226
3227 2005-06-29  Colin Walters  <walters@verbum.org>
3228         
3229         Patch from Ross Burton <ross@openedhand.com>
3230         
3231         * glib/dbus-gobject.c (invoke_object_method): Unset object
3232         value in all cases, not only in async case.
3233
3234 2005-06-29  Colin Walters  <walters@verbum.org>
3235
3236         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3237         name_call for keeping track of any outgoing GetNameOwner call.
3238         Also add for_owner and associated.
3239         (struct _DBusGProxyManager): Add owner_names, which is hash table
3240         that maps a base name to a list of names it owns (that we're
3241         interested in).  Add pending_nameowner_calls which is a list of
3242         all outstanding GetNameOwner; avoids us having to iterate over
3243         every proxy.  Add unassociated_proxies which keeps track of name
3244         proxies with no associated name owner.
3245         (dbus_g_proxy_manager_unref): Destroy owner_names.
3246         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3247         name refcounts.
3248         (find_name_in_info, name_owner_foreach)
3249         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3250         (dbus_g_proxy_manager_monitor_name_owner)
3251         (dbus_g_proxy_manager_unmonitor_name_owner)
3252         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3253         New functions; they manipulate the owner_names mapping.
3254         (got_name_owner_cb): New function.
3255         (get_name_owner): New function, extracted from
3256         dbus_g_proxy_new_for_name_owner.
3257         (dbus_g_proxy_manager_register): For now we need to keep track of
3258         all NameOwnerChanged.  Also if the proxy is for a name, if we
3259         don't already know the name owner, queue a new GetNameOwner
3260         request and add it to our list of unassociated proxies.  Otherwise
3261         inc the refcount.
3262         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3263         cancel any pending GetNameOwner call, etc.
3264         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3265         the owner_names mapping to look up the current names for the
3266         signal source, and dispatch to any proxies for that name.
3267         (dbus_g_proxy_new): Initialize new members.
3268         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3269         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3270         (dbus_g_pending_call_end_valist): New function, extracted from
3271         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3272         but want to use the GLib infrastructure.  Also note how many
3273         arguments in reply were over.
3274         (dbus_g_pending_call_end): New function, just call
3275         dbus_g_pending_call_end_valist.
3276         (dbus_g_proxy_end_call_internal): Just call
3277         dbus_g_pending_call_end_valist.
3278
3279         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3280         of builtin marshaller for STRING_STRING_STRING.
3281
3282         * test/glib/test-dbus-glib.c: 
3283         * test/glib/test-service-glib.c:
3284         * test/glib/test-service-glib.xml:
3285         Extend tests to cover name proxies, destruction of owner proxies,
3286         etc.
3287         
3288         * glib/examples/example-signal-recipient.c
3289         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3290         
3291         * tools/dbus-send.c (main): Print D-BUS error name in addition
3292         to message.
3293
3294 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3295
3296         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3297         cmessage_function_handler): Patch from 
3298         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3299         by using the Py_GILState_Ensure/Release to synchronize with the
3300         python runtime.
3301         
3302 2005-06-28  Ray Strode  <rstrode@redhat.com>
3303
3304         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3305         babysitter helper process on last unref, bug #2813.
3306
3307 2005-06-27  Colin Walters  <walters@verbum.org>
3308
3309         * test/glib/test-dbus-glib.c: 
3310         * test/glib/test-service-glib.c:
3311         * test/glib/test-service-glib.xml:
3312         Test hash table signal emitting.
3313
3314         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3315         types to their fundamental basis types, since this is what
3316         marshallers operate on.  Also add an entry for VOID__BOXED.
3317         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3318
3319 2005-06-26  Havoc Pennington  <hp@redhat.com>
3320
3321         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3322         from Don Park
3323
3324 2005-06-26  Colin Walters  <walters@verbum.org>
3325
3326         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3327         (dbus_g_error_set): New public function from its ashes; used by
3328         both service-side method implementation and GLib bindings
3329         internals.
3330         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3331         (_dbus_glib_test): Add some tests.
3332
3333         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3334
3335         * test/glib/test-service-glib.c (my_object_throw_error): Use
3336         dbus_g_error_set.
3337
3338         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3339         errors thrown by dbus_g_error_set.
3340
3341         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3342
3343         * glib/dbus-gparser.c (validate_signature): Ditto.
3344
3345         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3346         (dbus_g_proxy_end_call_internal): Ditto.
3347
3348         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3349         converts DBUS_ERROR_x to DBUS_GERROR_x.
3350         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3351
3352         * doc/TODO: Remove error TODO.
3353
3354         * doc/dbus-tutorial.xml: Update with documentation about error
3355         handling.
3356
3357         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3358         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3359         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3360
3361 2005-06-22  Colin Walters  <walters@verbum.org>
3362         
3363         Patch from Ross Burton <ross@openedhand.com>
3364
3365         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3366
3367 2005-06-20  Colin Walters  <walters@verbum.org>
3368
3369         * configure.in: Add glib/examples.
3370
3371         * glib/Makefile.am: Add examples/
3372
3373         * glib/examples/.cvsignore
3374         * glib/examples/Makefile.am
3375         * glib/examples/example-client.c
3376         * glib/examples/example-service.c
3377         * glib/examples/example-service.xml
3378         * glib/examples/example-signal-emitter.c
3379         * glib/examples/example-signal-emitter.xml
3380         * glib/examples/example-signal-recipient.c:
3381         New files; GLib binding examples, ported from
3382         python/examples.
3383
3384 2005-06-20  Colin Walters  <walters@verbum.org>
3385
3386         * dbus/dbus-glib.h: 
3387         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3388         dbus_g_proxy_call.
3389
3390         * glib/dbus-binding-tool-glib.c: 
3391         * doc/dbus-tutorial.xml: 
3392         * test/glib/test-dbus-glib.c: Update for rename.
3393         
3394 2005-06-20  Colin Walters  <walters@verbum.org>
3395
3396         Patch suggested by Ross Burton <ross@openedhand.com>
3397
3398         * glib/dbus-gobject.c (export_signals): Free signal name.
3399         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3400         memory leak.  Add a bit of documentation.
3401         (dbus_g_method_return_error): Free context, and note we do
3402         so.
3403
3404 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3405
3406         * dbus/dbus-glib.h:
3407         * glib/dbus-gobject.c:
3408         * glib/dbus-gproxy.c:
3409         * glib/dbus-gvalue.c: Predeclare structs as 
3410         typedef struct _Something Something instead of 
3411         typedef struct Something Something, so we can 
3412         redeclare the prototypes. Other GNOME libraries 
3413         do this already.
3414
3415 2005-06-17  Colin Walters  <walters@verbum.org>
3416
3417         * tools/dbus-names-model.c (have_names_notify): Fix call
3418         to dbus_g_proxy_end_call.
3419         
3420 2005-06-17  Colin Walters  <walters@verbum.org>
3421
3422         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3423         spew warnings if we get malformed remote signals.
3424
3425         * glib/dbus-gobject.c (propsig_iterate): New function.
3426         (lookup_object_info): New function, extracted from
3427         lookup_object_and_method.
3428         (introspect_properties, introspect_signals): Delete; these
3429         are merged into write_interface.
3430         (write_interface): Write out signals and properties here;
3431         dump the org.gtk.object stuff and use the interface given
3432         in the introspection data blob.  Also fix up property XML.
3433         (lookup_values): New function.
3434         (introspect_interfaces): Gather a mapping from interface to a
3435         list of its methods, signals, and properties, then write out
3436         each interface.
3437         (lookup_object_and_method): Use lookup_object_info.
3438         (struct DBusGSignalClosure): Add interface.
3439         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3440         we can just use the constant data.
3441         (dbus_g_signal_closure_finalize): Don't free signal name.
3442         (signal_emitter_marshaller): Use interface from signal closure.
3443         (export_signals): Only export signals mentioned in introspection
3444         blob.
3445         (dbus_g_connection_register_g_object): Warn if we have no
3446         introspection data for an object.
3447         (funcsig_equal): Remove unused variable.
3448         (dbus_g_object_register_marshaller): Take varargs instead of
3449         list.
3450         (dbus_g_object_register_marshaller_array): New function,
3451         extracted from old dbus_g_object_register_marshaller.
3452
3453         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3454         signals and property data.
3455         (write_quoted_string): New function, extracted from generate_glue.
3456         (generate_glue): Write signals and properties to introspection
3457         blob.
3458
3459         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3460         exported_signals and exported_properties.
3461         (dbus_g_object_register_marshaller): Update prototype.
3462         (dbus_g_object_register_marshaller_array): Prototype.
3463         
3464         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3465
3466         * test/glib/test-service-glib.c: Add new test signals and method
3467         to emit them.
3468
3469         * test/glib/test-service-glib.xml: Add some test signals.
3470
3471         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3472         and my-object-marshal.h
3473         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3474         my-object-marshal.c.
3475         (my-object-marshal.c, my-object-marshal.h): Implement.
3476
3477         * test/glib/.cvsignore: Update.
3478
3479         * doc/TODO: Remove two GLib TODO items fixed by this
3480         patch.
3481
3482 2005-06-16  Colin Walters  <walters@verbum.org>
3483
3484         * doc/TODO: Update for GLib bindings.
3485         
3486 2005-06-16  Colin Walters  <walters@verbum.org>
3487
3488         * glib/dbus-binding-tool-glib.c:
3489         * glib/dbus-gobject.c:
3490         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3491         from Ross Burton, for his GLib bindings work.
3492
3493 2005-06-16  Colin Walters  <walters@verbum.org>
3494
3495         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3496         to iterate instead of walking to G_TYPE_INVALID.
3497
3498         Patch based on a patch from Ryan Gammon.
3499
3500 2005-06-16  Colin Walters  <walters@verbum.org>
3501
3502         * bus/bus.c (bus_context_new): Set parser to NULL
3503         after we unref it (Patch from Chris Boscolo, #2174).
3504         
3505 2005-06-16  Colin Walters  <walters@verbum.org>
3506
3507         * python/dbus_bindings.pyx.in: Import size_t,
3508         __int64_t, __uint64_t, and __signed.
3509
3510         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3511         Define cmsg struct, output it.
3512         (_dbus_read_credentials_unix_socket):
3513         Use cmsg struct.
3514         
3515         Patch from Joe Markus Clarke for FreeBSD support.
3516         
3517 2005-06-16  Colin Walters  <walters@verbum.org>
3518
3519         * tools/dbus-send.c (append_array): Use strtok.
3520         (append_dict): New function.
3521         (type_from_name): New function, extracted from main.
3522         (main): Handle sending dicts.
3523
3524         * tools/dbus-print-message.c (print_iter): Print dict
3525         entries.
3526         
3527 2005-06-16  Colin Walters  <walters@verbum.org>
3528
3529         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3530         values as the empty string (#2948).
3531         
3532 2005-06-16  Colin Walters  <walters@verbum.org>
3533
3534         * dbus/Makefile.am:
3535         * mono/doc/Makefile.am:
3536         * test/glib/Makefile.am:
3537
3538         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3539
3540 2005-06-16  Colin Walters  <walters@verbum.org>
3541
3542         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3543         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3544
3545         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3546         Increment pointer after swapping fixed array.  Add assertion
3547         for array length.
3548                 
3549 2005-06-15  Colin Walters  <walters@verbum.org>
3550
3551         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3552         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3553         
3554 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * NEWS: Update to 0.34
3557
3558 2005-06-15  David Zeuthen  <davidz@redhat.com>
3559
3560         * configure.in (LT_CURRENT): Revert back to 1 as the library
3561         hasn't changed and we've certainly not committed to protocol
3562         stability yet.  All this does is to break ABI. See commit note
3563         from hp@redhat.com 2005-05-05 for details.
3564         
3565 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3566
3567         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3568         (_dbus_connection_run_builtin_filters): New method
3569         (dbus_connection_dispatch): Run the builtin filters which in turn
3570         runs the peer filter which handles Ping messages.
3571
3572         * doc/TODO: 
3573          - Ping isn't handled: This patch fixes it
3574          
3575          - Add a test case for the Ping message: added TODO item
3576
3577 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3578
3579         * dbus/dbus-message.c:
3580         (dbus_message_has_path): New method
3581         (dbus_message_has_interface): New method
3582         (dbus_message_has_member): New method
3583
3584         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3585         New method
3586
3587         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3588         the keyring directory is private to the user
3589
3590         * doc/TODO:
3591          - The convenience functions in dbus-bus.h should perhaps have
3592          the signatures that they would have if they were autogenerated
3593          stubs. e.g. the acquire service function. We should also evaluate
3594          which of these functions to include, in light of the fact that
3595          GLib/Qt native stubs will probably also exist.: Punted
3596
3597          - add dbus_message_has_path(), maybe has_member/interface:
3598          fixed in this patch
3599
3600          - in dbus-keyring.c, enforce that the keyring dir is not
3601          world readable/writable: Fixed in this patch
3602
3603 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3604
3605         * dbus/dbus-marshal-validate.h: Added a new validation
3606         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3607         out of memory errors when validating signitures
3608
3609         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3610         in places where we previously used DBUS_VALID and a FALSE return 
3611         value to indicate OOM
3612         
3613         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3614         Use a stack to track the number of elements inside containers.  The 
3615         stack values are then used to validate that dict entries have only two
3616         elements within them.
3617         (validate_body_helper): check the reason for failure when validating
3618         varients
3619         
3620         * dbus/dbus-message.c (load_message): use 
3621         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3622         DBUS_VALID and a FALSE return value to indicate OOM
3623
3624         * doc/TODO: remove "- validate dict entry number of fields" as this
3625         patch fixes it
3626
3627 2005-06-14  David Zeuthen  <davidz@redhat.com>
3628
3629         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3630         watches (if applicable) and add new watches
3631
3632         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3633         (main): Setup SIGIO signal handler if using D_NOTIFY
3634
3635         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3636
3637         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3638         (merge_included): Also merge conf_dirs list
3639         (bus_config_parser_unref): Clear conf_dirs list
3640         (include_dir): Add directory to conf_dirs list
3641         (bus_config_parser_get_conf_dirs): New function
3642
3643         * bus/dir-watch.[ch]: New files
3644
3645         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3646
3647         * configure.in: Add checks for D_NOTIFY on Linux
3648
3649 2005-06-14  Colin Walters  <walters@verbum.org>
3650
3651         * glib/dbus-binding-tool-glib.c:
3652         * glib/dbus-gobject.c:
3653         * glib/dbus-gvalue.c: Fix indentation and brace style.
3654         
3655 2005-06-14  Ross Burton <ross@openedhand.com>.
3656
3657         * glib/dbus-glib.h: Make DBusGMethodInvocation
3658         a private structure.  Rearrange prototypes a bit.
3659         
3660         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3661         documentation for first_arg_type.
3662         
3663         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3664         here, add documentation.  Move dbus_g_method_return
3665         and dbus_g_method_return_error into public API
3666         section.
3667
3668 2005-06-14  Colin Walters  <walters@verbum.org>
3669
3670         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3671         Add missing return statements, noticed by Ross Burton.
3672         
3673 2005-06-13  Ross Burton <ross@openedhand.com>.
3674
3675         * glib/dbus-gobject.c: Handle errors on message
3676         demarshalling by sending error message back.
3677         * glib/dbus-gvalue.c: Initialize return variables.
3678
3679 2005-06-13  Colin Walters  <walters@verbum.org>
3680
3681         * glib/Makefile.am: Fix thinko in last patch.
3682
3683 2005-06-13  Colin Walters  <walters@verbum.org>
3684
3685         * glib/Makefile.am: Move dbus-gtype-specialized.c
3686         and dbus-gtype-specialized.h into a _HEADERS variable,
3687         install them.
3688
3689 2005-06-12  Colin Walters  <walters@verbum.org>
3690
3691         Async signals and various bugfixes and testing by
3692         Ross Burton <ross@openedhand.com>.
3693
3694         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3695         (dbus_gvalue_genmarshal_name_from_type)
3696         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3697         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3698         (dbus_g_value_types_init, dbus_gtype_from_signature)
3699         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3700         (dbus_gtypes_from_arg_signature): New function prototypes.
3701         (dbus_gvalue_demarshal): Take context and error arguments.
3702         (dbus_gvalue_demarshal_variant): New function.
3703         (dbus_gvalue_demarshal_message): New function.
3704         (dbus_gvalue_store): Delete.
3705
3706         * glib/dbus-gvalue.c:
3707
3708         File has been almost entirely rewritten; now we special-case
3709         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3710         hash tables correctly, etc.  Full support for recursive values
3711         is not yet complete.
3712
3713         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3714         argument of signal to G_TYPE_POINTER since we now pass a
3715         structure.
3716         (lookup_g_marshaller): Delete in favor of
3717         _dbus_gobject_lookup_marshaller.
3718         (marshal_dbus_message_to_g_marshaller): Use
3719         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3720         to handle remote signal callbacks.
3721         (dbus_g_proxy_new_from_proxy): New function; creates a new
3722         DBusGProxy by copying an existing one.
3723         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3724         (dbus_g_proxy_get_path): New functions.
3725         (dbus_g_proxy_marshal_args_to_message): New function;
3726         factored out of existing code.
3727         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3728         from a varargs array.
3729         (dbus_g_proxy_begin_call_internal): New function.
3730         (dbus_g_proxy_end_call_internal): New function.
3731         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3732         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3733         after collecting args into value array.
3734         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3735         invoke dbus_g_proxy_end_call_internal.
3736         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3737         end_call_internal.
3738         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3739         types.
3740         (array_free_all): New function.
3741         (dbus_g_proxy_add_signal): Take GTypes.
3742
3743         * glib/dbus-gobject.h:
3744         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3745         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3746         Prototype.
3747
3748         * glib/dbus-gobject.c: Add a global marshal_table hash which
3749         stores mappings from type signatures to marshallers.  Change lots
3750         of invocations of dbus_gtype_to_dbus_type to
3751         dbus_gtype_to_signature.
3752         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3753         (introspect_signals): Fix test for query.return_type.
3754         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3755         (invoke_object_method): Many changes.  Handle asynchronous
3756         invocations.  Convert arguments with
3757         dbus_gvalue_demarshal_message.  Handle errors.  Use
3758         DBusSignatureIter instead of strlen on args. Handle all arguments
3759         generically.  Special-case variants.
3760         (dbus_g_method_return, dbus_g_method_return_error): New function.
3761         (DBusGSignalClosure): New structure, closes over signal
3762         information.
3763         (dbus_g_signal_closure_new): New function.
3764         (dbus_g_signal_closure_finalize): New function.
3765         (signal_emitter_marshaller): New function; is special marshaller
3766         which emits signals on bus.
3767         (export_signals): New function; introspects object signals and
3768         connects to them.
3769         (dbus_g_object_type_install_info): Take GType instead of
3770         GObjectClass.
3771         (dbus_g_connection_register_g_object): Invoke export_signals.
3772         (dbus_g_connection_lookup_g_object): New function.
3773         (DBusGFuncSignature) New structure; used for mapping type
3774         signatures to marshallers.
3775         (funcsig_hash): New function; hashes DBusGFuncSignature.
3776         (funcsig_equal): New function; compares DBusGFuncSignature.
3777         (_dbus_gobject_lookup_marshaller): New function.
3778         (dbus_g_object_register_marshaller): New function; used to
3779         register a marshaller at runtime for a particular signature.
3780
3781         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3782
3783         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3784         which notes a server method implementation should be
3785         asynchronous.
3786
3787         * glib/dbus-binding-tool-glib.c
3788         (dbus_binding_tool_output_glib_server): Call
3789         dbus_g_value_types_init.
3790         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3791         variants specially.
3792         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3793         of a lookup function.
3794         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3795         (write_untyped_out_args): New method; write output arguments.
3796         (write_formal_declarations_for_direction): Function for
3797         writing prototypes.
3798         (write_formal_parameters_for_direction): Function for
3799         writing implementations.
3800         (write_typed_args_for_direction): Function for writing
3801         arguments prefixed with GTypes.
3802         (write_async_method_client): Write out async version
3803         of method.
3804
3805         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3806         (dbus_g_type_get_marshal_name): Move mapping from GType
3807         to marshal name into here.
3808         (dbus_g_type_get_c_name): Move into here.
3809         (compute_marshaller): Convert signature to type with
3810         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3811         (compute_marshaller_name): Ditto.
3812         (compute_marshaller): Handle async signal annotations.
3813         (gather_marshallers): Return if we don't have a known
3814         prefix.
3815         (generate_glue): Collect introspection blob here, and
3816         write all of the blob at the end.  This allows an object
3817         with multiple interfaces to work.
3818         Mark async methods in introspection blob.
3819
3820         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3821         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3822         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3823
3824         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3825         avoids people accidentally using DBUS_TYPE_* which should
3826         not be necessary anymore.
3827         Do include dbus-gtype-specialized.h, which are utilities
3828         for GLib container types.
3829         Add various #defines for types such as
3830         DBUS_TYPE_G_BOOLEAN_ARRAY.
3831         (DBusGValueIterator, DBusGValue): Define, not fully used
3832         yet.
3833         (dbus_g_value_get_g_type): Type for recursive value.
3834         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3835         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3836         (dbus_g_value_free): Prototypes.
3837         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3838         (dbus_g_proxy_set_interface): Prototype.
3839         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3840         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3841         types.
3842         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3843         Accessors.
3844         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3845         doing async invocations.
3846         (dbus_g_method_return, dbus_g_method_return_error):
3847         Prototypes.
3848         * doc/dbus-tutorial.xml: Update GLib section.
3849         
3850         * tools/dbus-viewer.c (load_child_nodes): Update
3851         for new invocation type of dbus_g_proxy_end_call.
3852         (load_from_service_thread_func): Ditto.
3853
3854         * tools/print-introspect.c (main): Ditto.
3855
3856         * tools/dbus-names-model.c (have_names_notify)
3857         (names_model_reload, names_model_set_connection)
3858         Use GTypes.
3859
3860         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3861         needed since Python bindings use GLib bindings.
3862
3863         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3864         Add --prefix argument.
3865
3866         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3867         unneeded --ignore-unsupported arg.
3868         
3869         * test/glib/test-service-glib.c: 
3870         * test/glib/test-service-glib.xml:
3871         * test/glib/test-dbus-glib.c: Add many more tests.
3872
3873 2005-06-06  David Zeuthen  <davidz@redhat.com>
3874
3875         * doc/TODO: Add item about need to remove deprecated functions.
3876
3877         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3878
3879         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3880         to repair the ABI which was broken with the last commit.
3881
3882 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3883
3884         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3885         (dbus_connection_disconnect): renamed to dbus_connection_close 
3886         for API symmetry with dbus_connection_open
3887         (_dbus_connection_open_internal): 
3888         s/dbus_connection_disconnect/dbus_connection_close
3889
3890         * dbus/dbus-bus.c (dbus_bus_get):
3891         s/dbus_connection_disconnect/dbus_connection_close
3892
3893         * bus/connection.c (bus_connections_unref, 
3894         bus_connections_setup_connection, bus_connections_expire_incomplete):
3895         s/dbus_connection_disconnect/dbus_connection_close
3896
3897         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3898         kill_client_connection_unchecked, check_hello_connection):
3899         s/dbus_connection_disconnect/dbus_connection_close
3900
3901         * bus/bus.c (new_connection_callback):
3902         s/dbus_connection_disconnect/dbus_connection_close
3903
3904         * tools/dbus-send.c (main):
3905         s/dbus_connection_disconnect/dbus_connection_close
3906
3907         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3908         s/dbus_connection_disconnect/dbus_connection_close
3909         
3910         * test/test-service.c (path_message_func, filter_func):
3911         s/dbus_connection_disconnect/dbus_connection_close
3912         
3913         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3914         
3915 2005-05-25  Colin Walters  <walters@verbum.org>
3916
3917         * dbus/dbus-protocol.h: Move various bus service #defines such
3918           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3919           dbus/dbus-shared.h.
3920         * dbus/dbus-shared.h: Various defines moved here.
3921         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3922
3923 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3924
3925         * python/__init__.py: Python bindings deserve a minor version
3926         update.  Upped to (0, 40, 2)
3927
3928 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3929
3930         * python/decorators.py: add explicitly_pass_message decorator
3931         for passing in the dbus message as keyword for edge case signal
3932         handling
3933
3934         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3935         to conform with what dbus expects for match rules
3936         (SignalMatchRule.execute): add the dbus message as a keyword
3937         if the signal handler has requested it
3938
3939         * python/examples/example/signal-recipient.py: added some more
3940         examples on how to hook up to signals
3941
3942 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3943
3944         * python/decorators.py: import dbus_bindings
3945
3946         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3947         SignalMatchNode): new classes that implement wildcard signal
3948         callback matching using a tree lookup. Heavily modified from a
3949         patch sent by Celso Pinto (fd.o bug #3241)
3950
3951         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3952         use new match classes to handle signals.
3953
3954 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3955         
3956         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3957
3958 2005-05-18  Havoc Pennington  <hp@redhat.com>
3959
3960         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3961         gettext. Not really worth requiring yet perhaps, but any
3962         production quality 1.0 would require it so we should go ahead and
3963         get things set up. We do have a couple token calls to
3964         bindtextdomain in the code already.
3965
3966 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3967
3968         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3969         when using recursive g_main_loops
3970
3971         * python/_dbus.py (class Bus): add the ProxyObjectClass
3972         alias for ProxyObject to make it easier for the Twisted 
3973         networking framework to integrate dbus.
3974
3975         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3976         alias for ProxyMethod to make it easier for the Twisted 
3977         networking framework to integrate dbus. 
3978
3979 2005-05-11  Ross Burton  <ross@openedhand.com>
3980
3981         * glib/dbus-glib-tool.c: Add --prefix argument.
3982         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3983         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3984         Add prefix argument.
3985         (generate_glue): Pass prefix argument down.
3986         (dbus_binding_tool_output_glib_server): Pass prefix to
3987         glib-genmarshal.
3988         
3989 2005-05-11  Colin Walters  <walters@verbum.org>
3990
3991         * tools/dbus-send.c (append_array): New function.
3992         (append_arg): Broken out from main.
3993         (main): Add cheesy hack to send arrays and variants.
3994         (usage): Update.
3995         * tools/dbus-print-message.c (print_iter): Broken out
3996         from main.
3997
3998 2005-05-11  Colin Walters  <walters@verbum.org>
3999
4000         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4001         New function, returns signature string for signature iter.
4002         * dbus/dbus-signature.h: Prototype it.
4003         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4004         New function, returns signature string for message iter.
4005         (dbus_message_iter_get_array_len): New function, returns
4006         length of array.
4007         (dbus_message_iter_get_fixed_array): Fix assertion; this
4008         function should be used when the iter is pointing to the
4009         contents of an array
4010         * dbus/dbus-message.h: Prototypes.
4011         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4012         New function; returns length of an array.
4013         * dbus/dbus-marshal-recursive.h: Prototype it.
4014         
4015 2005-05-11  Colin Walters  <walters@verbum.org>
4016
4017         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4018         compilation error.
4019         
4020 2005-05-08  Havoc Pennington  <hp@redhat.com>
4021
4022         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4023         daemon's pid, not the parent's pid, to the file descriptor.
4024         Reported by Taj Morton.
4025
4026 2005-05-05  Havoc Pennington  <hp@redhat.com>
4027
4028         * configure.in (LT_*): add notes on how the libtool versioning
4029         works to save thinking. Increment soname to indicate protocol
4030         breakage (though really the library interface hasn't changed I
4031         guess)
4032
4033         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4034         verify the GUID received from server matches what we were
4035         expecting, if we had an expectation
4036
4037         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4038         (_dbus_auth_get_guid_from_server): new function
4039         (send_begin): parse the OK args
4040
4041         * doc/dbus-specification.xml: add GUID to the auth protocol
4042
4043 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4044
4045         * Fix my name in previous changelog ;)
4046
4047         * python/proxies.py (ProxyObject.__getattr__): add further patch
4048         from Anthony Baxter to throw an AttributeError when python 
4049         __special__ functions are called instead of marshling them over 
4050         the bus (Bug#1685 comment 3).
4051
4052 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4053
4054         * python/Makefile.am: changed to use pyexecdir for the binding
4055         shared libraries (Bug#2494)
4056
4057         * python/exceptions.py: bring exceptions over from the bindings
4058         so they can be used in applications (Bug#2036)
4059         Make all exceptions derive from DBusException
4060
4061         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4062         of classes so that print obj doesn't throw an exception (Bug #1685)
4063
4064 2005-05-03  Ross Burton  <ross@openedhand.com>
4065
4066         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4067         Return if we get an error during registration.  Set up a
4068         weak reference on object to unregister if object is destroyed.
4069         (unregister_gobject): New function.
4070         
4071 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4072
4073         * python/dbus_bindings.pyx.in: 
4074         - added new type classes for hinting to the marashaler what type 
4075         to send over the wire
4076         - added int16 and uint16 marshalers
4077         - Fixed a bug in the type constants that caused int32 to go out
4078         as uint16 over the wire
4079         * python/dbus.py: split up into different files and renamed _dbus.py
4080         * python/__init__.py, python/_util.py, python/decorators.py, 
4081         python/exceptions.py, python/proxies.py, python/services.py,
4082         python/types.py: new files split off from dbus.py
4083         * python/Makefile.am: Add new files, remove dbus.py and 
4084         install all python files to <python module dir>/dbus
4085         * python/examples/*: Added #!/usr/bin/env python to the top of
4086         every example.  Patch provided by Tatavarty Kalyan
4087
4088 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4089
4090         * NEWS: Update to 0.33
4091
4092 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4093
4094         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4095         method for doing async calls
4096         (_pending_call_notification): New C function for handling pendning call
4097         callbacks
4098         (set_notify): New method for setting pending call notification
4099         
4100         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4101         Async capabilities added to remote method calls
4102         (Sender): class removed
4103         (RemoteService): class removed
4104         (ObjectTree): class removed for now
4105         (RemoteObject): Renamed to ProxyObject
4106         (RemoteMethod): Renamed to ProxyMethod
4107         (method): Decorator added for decorating python methods as dbus methods
4108         (signal): Decorator added for decorating python methods as signal emitters
4109         (ObjectType): Metaclass added for generating introspection data and the
4110         method callback vtable
4111         (Interface): Wrapper class added to wrap objects in a dbus interface
4112         (Object): Uses ObjectType as its metaclass and exports Introspect
4113         of the org.freedesktop.DBus.Introspectable interface
4114         (ValidationException, UnknownMethodException): new exceptions
4115
4116         * python/examples/*: Modified to fit with the new bindings
4117
4118 2005-04-23  Havoc Pennington  <hp@redhat.com>
4119
4120         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4121         reported by Tony Houghton
4122
4123         * test/test-service.c (main): test
4124         dbus_connection_get_object_path_data()
4125
4126         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4127         the exact_match
4128         (_dbus_object_tree_get_user_data_unlocked): new function used by
4129         dbus_connection_get_object_path_data()
4130         (do_register): add assertion test for get_user_data_unlocked
4131         (object_tree_test_iteration): more tests
4132
4133         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4134         new function from Dan Reed to let you get the user data from 
4135         dbus_connection_register_object_path()
4136
4137 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4138
4139         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4140         in numerous places that did not account for the NULL terminator
4141         (signature_from_seed): changed the manual string copy loop to 
4142         just use strcpy instead
4143         make check should now pass
4144
4145 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4146
4147         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4148         so that it allows messages that are not signals to pass in 
4149         NULL as the interface.
4150
4151 2005-04-18  David Zeuthen  <davidz@redhat.com>
4152
4153         * glib/dbus-gmain.c (io_handler_destroy_source): 
4154         (timeout_handler_destroy_source, connection_setup_free): 
4155         Also unref the source to avoid memory leaks.
4156
4157 2005-04-13  David Zeuthen  <davidz@redhat.com>
4158
4159         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4160         more reasonable, yet still totally arbitrary, value :-). 
4161
4162 2005-04-13  David Zeuthen  <davidz@redhat.com>
4163
4164         * doc/TODO: Added an "important for 1.0" item about selinux
4165         allow/deny messages
4166
4167 2005-04-13  David Zeuthen  <davidz@redhat.com>
4168
4169         * bus/selinux.c: Add c-file-style to top of file
4170         (log_audit_callback): Don't free the data here anymore
4171         (bus_selinux_check): Don't take spid and tpid since appending
4172         that to auxdata may OOM.
4173         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4174         to the caller if we are OOM by taking an error object.
4175         (bus_selinux_allows_send): -do-
4176
4177         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4178         and bus_selinux_allows_send
4179
4180         * bus/bus.c (bus_context_check_security_policy): Pass error and
4181         pass on OOM thrown by bus_selinux_allows_send()
4182
4183         * bus/services.c (bus_registry_acquire_service): Pass error and
4184         pass on OOM thrown by bus_selinux_allows_acquire_service()
4185
4186 2005-04-13  Havoc Pennington  <hp@redhat.com>
4187
4188         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4189         message at a time to avoid monopolizing the main loop, bug 
4190         #2953 from Benjamin Otte
4191
4192 2005-04-09  Havoc Pennington  <hp@redhat.com>
4193
4194         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4195         possible overlap, fix from Daniel Reed
4196         (fixup_alignment): fix signedness warnings
4197         (_dbus_string_append_unichar): ditto
4198
4199 2005-04-09  Havoc Pennington  <hp@redhat.com>
4200
4201         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4202
4203         * glib/dbus-glib-tool.c (main): fix warning
4204
4205         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4206
4207         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4208         add a new function that can be used in simple applications that
4209         don't have a main loop and are willing to block
4210
4211 2005-04-05  David Zeuthen  <davidz@redhat.com>
4212
4213         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4214
4215         * glib/dbus-gmain.c:
4216         (io_handler_destroy_source): Remove from list of IO handlers
4217         of the ConnectionSetup object
4218         (timeout_handler_destroy_source): -do- for timeout handlers
4219         (io_handler_source_finalized): Don't remove from list since
4220         we now do that in io_handler_destroy_source(). Renamed from
4221         io_handler_source_destroyed
4222         (timeout_handler_source_destroyed): -do- for timeout handlers
4223         (connection_setup_free): It is now safe to iterate over all
4224         IO and timeout handlers as the _destroy_source removes them
4225         from the list synchronously
4226
4227 2005-03-30  Havoc Pennington  <hp@redhat.com>
4228
4229         * configure.in: change check to gtk 2.4
4230
4231         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4232         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4233         to 2.4
4234
4235 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4236
4237         * News: Update 0.32
4238
4239         * HACKING: Fixed realease instructions.  configure.in should be updated to
4240           the next release by the person who made the last release.
4241
4242 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4243
4244         * python/lvalue_cast_post_process.py - removed.  Patch has been
4245           submitted to Pyrex maintainers that fixes gcc4.0 errors
4246
4247         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4248
4249 2005-03-24  Daniel Reed  <n@ml.org>
4250
4251         * tools/Makefile.am: Make print-introspect and
4252         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4253
4254 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4255
4256         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4257
4258         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4259           had in Red Hat packages for a while but for some reason never 
4260           got merged upstream
4261           (_dbus_is_a_number): New checks if a string
4262           can be converted to a number and does the conversion if it can
4263           (_dbus_user_database_lookup): Add check to see if the given username
4264           is a udi.  This allows udi's to be used instead of usernames in the
4265           config file.
4266           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4267           is a gdi.  This allows gdi's to be used instead of groupnames in the
4268           config file.
4269
4270 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4271
4272         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4273           code so that it compiles with gcc4.0
4274
4275         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4276           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4277           results back to dbus_binding.c
4278
4279 2005-03-20  Colin Walters  <walters@verbum.org>
4280
4281         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4282
4283         * configure.in: Require GTK+ 2.6.
4284         
4285 2005-03-20  Colin Walters  <walters@verbum.org>
4286
4287         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4288
4289 2005-03-17  Tom Parker  <palfrey@tevp.net>
4290
4291         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4292         print DBUS_UID_UNSET; instead print passed username.  Also
4293         be sure to actually use gid looked up in cache.
4294         
4295         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4296         for DBUS_GID_UNSET and groupname.
4297
4298 2005-03-17  Colin Walters  <walters@verbum.org>
4299
4300         * bus/print-introspect.c: Move to tools/.
4301         * bus/run-with-tmp-session-bus.sh: Ditto.
4302         
4303         * glib/Makefile.am (dbus-glib-bindings.h): Move
4304         generation to tools/Makefile.am.
4305
4306         * test/glib/run-test.sh: Update to handle move
4307         of run-with-tmp-session-bus.sh.
4308
4309         * test/glib/test-service-glib.c: Update to handle
4310         move of dbus-glib-bindings.h.
4311
4312         * tools/print-introspect.c: Moved here
4313         from bus/, and ported to GLib bindings.
4314
4315         * tools/run-with-tmp-session-bus.sh: Moved here
4316         from bus/.
4317
4318         * tools/Makefile.am: Generate dbus-glib-bindings.h
4319         and dbus-bus-introspect.xml here.
4320
4321         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4322         Update.
4323
4324 2005-03-17  Colin Walters  <walters@verbum.org>
4325
4326         * bus/driver.c (write_args_for_direction): Use
4327         _dbus_string_get_const_data to retrieve string;
4328         _dbus_string_get_const_data_len doesn't actually return
4329         a NULL-terminated substring.
4330
4331         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4332         (main): Change to use org_freedesktop_DBus_request_name
4333         instead of using g_proxy_begin_call/end_call.
4334
4335 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4336
4337         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4338         generating the finalizer.  Fixes from Ben Maurer.
4339
4340 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4341
4342         * mono/BusDriver.cs: Update method names: ListServices
4343         becomes ListNames; GetOwner becomes GetNameOwner.
4344
4345         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4346         onto the eval stack when removing the delegate.
4347
4348 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4349
4350         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4351         LT_CURRENT.  Set it to the autoconf variable.
4352                                                                                 
4353         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4354         classes that disconnects the signal handler delegate from the
4355         service object.  Fixes a big leak of proxy objects on the
4356         client side of things.  Patch from Ben Maurer
4357         <bmaurer@ximian.com>
4358
4359 2005-03-12  Colin Walters  <walters@verbum.org>
4360
4361         * bus/driver.c (write_args_for_direction): New function,
4362         parses a type signature into arguments and outputs to
4363         XML.
4364         (bus_driver_handle_introspect): Use it instead of
4365         hardcoding XML for certain signatures.
4366         
4367         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4368         dependency on dbus-daemon.
4369
4370         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4371         argument, pass it to dbus_binding_tool_output_glib_client.
4372
4373         * glib/dbus-binding-tool-glib.c
4374         (generate_client_glue): Protect against multiple inclusion.
4375         (dbus_binding_tool_output_glib_client): Add
4376         G_BEGIN_DECLS/G_END_DECLS.
4377
4378         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4379         Change to just take iface prefix directly.
4380         (write_formal_parameters): Clarify error message.
4381         (check_supported_parameters): New function; checks to see type
4382         signatures of method parameters are supported.
4383         (generate_client_glue): Handle ignore_unsupported flag.
4384         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4385         parameter.
4386
4387         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4388         --ignore-unsupported by default until glib bindings
4389         support arrays.
4390
4391 2005-03-11  Colin Walters  <walters@verbum.org>
4392
4393         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4394         install it.
4395
4396         * bus/print-introspect.c: New file; prints introspection
4397         data for a given name and object path.
4398
4399         * bus/run-with-tmp-session-bus.sh: New file, refactored
4400         from test/glib/run-test.sh.  Creates a temporary session
4401         bus and runs another program.
4402
4403         * test/glib/run-test.sh: Refactor to invoke
4404         run-with-tmp-session-bus.sh.
4405
4406         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4407         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4408         macros instead of hardcoding.
4409
4410         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4411
4412 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4413
4414         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4415         this unref; it doesn't match up evenly in some codepaths.
4416         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4417         this evenly matches with the ref near the top of this function.
4418
4419 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4420
4421         * dbus/dbus-object-tree.c
4422         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4423         and we try to unregister a path that's not registered, still go
4424         through the process of unlocking and don't just return.
4425
4426 2005-03-09  Colin Walters  <walters@verbum.org>
4427
4428         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4429         to this are generated for client-side wrappers.  Invokes a
4430         D-BUS method and returns reply values.  
4431
4432         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4433         function; writes signature string for argument direction.
4434         (write_args_for_direction): Change to pass input values directly
4435         instead of via address, and fix indentation.
4436         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4437         make generated wrappers inlineable.
4438
4439         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4440         note about using dbus_type_is_fixed.
4441
4442         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4443         dbus/dbus-signature.c as dbus_type_is_fixed.
4444
4445         All callers updated.
4446
4447         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4448         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4449
4450         * dbus/dbus-signature.h: Prototype.
4451
4452         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4453         error printf code.
4454
4455         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4456         appropriate instead of just freeing it.
4457         (main): Free returned strings using g_free.
4458
4459         * test/glib/Makefile.am (test-service-glib-glue.h)
4460         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4461
4462         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4463         simply maps a simple D-BUS type to GType.
4464         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4465         GType.
4466         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4467         initialize the value with it.
4468         (dbus_gvalue_binding_type_from_type): Unused, delete.
4469         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4470         various types instead of unmarshalling to value data directly.
4471         Remove can_convert boolean.
4472         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4473         returning directly instead of using can_convert boolean.
4474         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4475         Stores a GValue in a pointer to a value of its corresponding C
4476         type.
4477
4478         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4479         add dbus_gvalue_store.
4480
4481 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4482
4483         Fix a bunch of lifecycle and memory management problems
4484         in the mono bindings.
4485
4486         * mono/Arguments.cs (Arguments): Implement IDisposable
4487
4488         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4489         strictly a static class.
4490
4491         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4492         delegates into this file.
4493         (Connection): Implement IDisposable.
4494         (Dispose): Disconnect the connection and set the raw connection
4495         pointer to IntPtr.Zero.
4496         (~Connection): Call Dispose().
4497         (RegisterObjectPath): Added.  Manages the registration of object
4498         paths so we can cleanly disconnect them at dispose/finalize time.
4499         (UnregisterObjectPath): Ditto.
4500         (set_RawConnection): Unregister all of the object paths when
4501         changing the underlying DBusConnection.  Add them back onto the
4502         new connection, if any.
4503
4504         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4505         more unmanaged resources anymore, so it's not necessary.  Move all
4506         the DBusObjectPathVTable stuff out of here.
4507         (Handler): Save references to our delegates so that they don't get
4508         finalized.  Call Connection.RegisterObjectPath() instead of
4509         dbus_connection_register_object_path() directly.
4510         (Message_Called): Dispose the message after we're finished with
4511         it.
4512
4513         * mono/Message.cs (Message): Implement IDisposable.
4514         (Dispose): Dispose the Arguments, and set the RawMessage to
4515         IntPtr.Zero.
4516         (SendWithReplyAndBlock): We own the ref to the reply that comes
4517         back from dbus_connection_send_with_reply_and_block() so add a
4518         comment about that and unref it after we've constructed a managed
4519         MethodReturn class around it.  Fixes a big, big leak.
4520
4521         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4522         method.
4523         (BuildSignalHandler): After we've sent the Signal message, dispose
4524         of it.
4525         (BuildMethod): Dispose of the method call and reply messages after
4526         we've sent the message and extracted the data we want from the
4527         reply.
4528
4529         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4530         anymore.
4531         (Service_FilterCalled): Dispose of the message after we're
4532         finished with it.
4533
4534 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4535
4536         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4537         After we attach our pending call to the connection, unref
4538         it.  Fixes a leak.
4539  
4540         * mono/Connection.cs (set_RawConnection): Disconnect our
4541         filter and match callbacks from the old connection and
4542         reconnect them to the new connection, if any.
4543
4544         * mono/DBusType/Array.cs: "Code" is a static member, so
4545         don't use "this" to refer to it.  Fix for stricter checking
4546         in Mono 1.1.4.
4547  
4548         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4549         object path that we pass into unmanaged code.
4550  
4551         * mono/DBusType/String.cs (Append): Don't leak the string
4552         that we pass into unmanged code.
4553
4554 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4555         * NEWS: Update for 0.31
4556
4557         * configure.in: Release 0.31
4558         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4559
4560         * qt/Makefile.am: fixed build
4561
4562         * dbus/Makefile.am: soname bump for libdbus
4563
4564         * glib/Makefile.am: soname bump for libdbus-glib
4565
4566 2005-03-05  Havoc Pennington  <hp@redhat.com>
4567
4568         * dbus/dbus-sysdeps.c:
4569         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4570         value
4571         (_dbus_generate_random_bytes_buffer): fix return value
4572
4573         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4574         checks actually work, from Tom Parker <fdo@tevp.net>
4575
4576 2005-03-01  Colin Walters  <walters@verbum.org>
4577
4578         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4579         functions copied from dbus-glib-tool.c.
4580         (main): Convert lots of error code to use them.
4581         Also add some testing for introspection bits.
4582
4583 2005-03-01  Colin Walters  <walters@verbum.org>
4584         
4585         * doc/TODO: Remove introspection signature TODO.
4586
4587 2005-02-27  Colin Walters  <walters@verbum.org>
4588
4589         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4590         Change return value to const char * instead of int so we can do
4591         full signatures.
4592         (struct PropertyInfo, struct ArgInfo): Store char *.
4593         (property_info_new, arg_info_new): Update parameters, strdup.
4594         (property_info_unref, arg_info_unref): Free.
4595
4596         * glib/dbus-gidl.h: Update prototypes.
4597
4598         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4599         (validate_signature): New function, just validates signature and
4600         sets GError.
4601         (parse_property, parse_arg): Invoke validate_signature.  Store
4602         signature instead of just type code.
4603
4604         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4605         function to return a primary type for a signature, dropping
4606         information about types in container types.
4607         (dbus_gvalue_genmarshal_name_from_type)
4608         (dbus_gvalue_binding_type_from_type)
4609         (dbus_gvalue_ctype_from_type): Update to take full signature
4610          instead of type code.
4611         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4612
4613         * glib/dbus-gvalue.h: Update prototypes for above.
4614
4615         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4616         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4617         (introspect_properties, introspect_signals, write_interface):
4618         Update to handle signatures, and remove usage of
4619         _dbus_gutils_type_to_string.
4620         (handle_introspect): Print out type codes instead of e.g. "string"
4621         in hardcoded introspection XML; also use x_AS_STRING constants
4622         instead of hardcoding in string.
4623
4624         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4625         to string.  Remove usage of _dbus_gutils_type_to_string.
4626
4627         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4628
4629         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4630         deletion.
4631         
4632         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4633         (compute_marshaller_name, generate_glue): Handle signature change
4634         to string.
4635         (write_formal_parameters, write_args_for_direction): Ditto, and
4636         remove FIXME.
4637
4638         * tools/dbus-tree-view.c (type_to_string): Delete.
4639         (info_set_func_text): Update to print full signatures.
4640
4641         * test/glib/test-service-glib.xml: Change types to new
4642         introspection format.
4643
4644 2005-02-26  Havoc Pennington  <hp@redhat.com>
4645
4646         * doc/TODO: remove the "guid" item
4647
4648         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4649         (with_bus_thread_func): use open_private
4650
4651         * dbus/dbus-connection.c (dbus_connection_open_private): new
4652         function that works like the old dbus_connection_open()
4653         (dbus_connection_open): now returns an existing connection if
4654         possible
4655
4656         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4657         through the GUID to the transport
4658
4659         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4660         GUID in hex-encoded form.
4661
4662         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4663         pass GUID argument in to the transport
4664
4665         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4666         guid argument
4667
4668         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4669
4670         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4671
4672 2005-02-25  Havoc Pennington  <hp@redhat.com>
4673
4674         * doc/dbus-specification.xml: document the GUID thing
4675
4676         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4677         globally unique ID for the server, and put a "guid=hexencoded"
4678         field in the address
4679
4680         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4681
4682         * dbus/dbus-message.c: ditto
4683
4684         * dbus/dbus-dataslot.c: ditto
4685
4686         * dbus/dbus-list.c: ditto
4687
4688         * dbus/dbus-internals.h: wait, just include
4689         dbus-threads-internal.h here
4690         
4691         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4692         use in main library
4693
4694         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4695
4696 2005-02-24  Colin Walters  <walters@verbum.org>
4697
4698         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4699
4700 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4701
4702         * glib/Makefile.am: added dbus-gobject.h to sources list
4703         so distcheck doesn't fail
4704         
4705 2005-02-24  Havoc Pennington  <hp@redhat.com>
4706
4707         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4708         you must disconnect before unref, since locking and other things
4709         are screwed up otherwise. Fix assorted other locking stuff.
4710
4711         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4712         fix compilation
4713
4714         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4715         into a private header and don't export from the library
4716
4717         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4718
4719 2005-02-24  Colin Walters  <walters@verbum.org>
4720         
4721         * dbus/dbus-signature.c: New file; implements various functions
4722         related to type signatures.  Includes an interator for parsing,
4723         validation functions.
4724         (dbus_type_is_basic): Moved here from
4725         dbus-marshal-basic.c:_dbus_type_is_basic.
4726         (dbus_type_is_container): Moved here from
4727         dbus-marshal-basic.c:_dbus_type_is_container.
4728
4729         All callers of _dbus_type_is_container and _dbus_type_is_basic
4730         updated, and include dbus-signature.h.
4731
4732         * dbus/dbus-signature.h: New file; prototypes for the above.
4733
4734         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4735         dbus-signature.h.
4736
4737         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4738         function factored out of _dbus_first_type_in_signature.
4739         (_dbus_first_type_in_signature_c_str): New function; returns first
4740         type code for a type signature character.
4741
4742         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4743         handle function moves.
4744
4745         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4746
4747         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4748         function; skips to next complete type in type signature.
4749         Implemented using previous skip_one_complete_type.  Now
4750         skip_one_complete_type just delegates to
4751         _dbus_type_signature_next.
4752
4753         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4754         to dbus-signature.c
4755         (_dbus_type_is_container): Ditto.
4756
4757         * doc/dbus-specification.xml: Update introspection sample to
4758         use real type signatures.
4759
4760         * dbus/dbus-test.h: Prototype signature test.
4761
4762         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4763         signature tests.
4764
4765         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4766
4767 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4768
4769         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4770         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4771
4772 2005-02-21  Colin Walters  <walters@verbum.org>
4773
4774         * dbus/dbus-test-main.c (main): Take optional specific test
4775         argument.
4776
4777         * dbus/dbus-test.c (run_test): New function, runs a test function
4778         with no data directory.
4779         (run_data_test): Like above, but takes data directory.
4780         (dbus_internal_do_not_use_run_tests): Take
4781         specific test argument.  Replace lots of cut n' paste code
4782         with run_test and run_data_test.
4783
4784         * dbus/dbus-test.h: Update prototype for
4785         dbus_internal_do_not_use_run_tests.
4786
4787 2005-02-20  Havoc Pennington  <hp@redhat.com>
4788
4789         Fix bugs reported by Daniel P. Berrange
4790         
4791         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4792         (protected_change_watch): new function
4793         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4794         (_dbus_server_add_watch): change to work like the
4795         dbus-connection.c equivalents; like those, probably kind of
4796         busted, but should at least mostly work for now
4797         (dbus_server_disconnect): drop the lock if we were already
4798         disconnected, patch from Daniel P. Berrange
4799
4800         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4801         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4802         same stuff
4803
4804         * doc/TODO: todo about unscrewing this mess
4805
4806 2005-02-19  Colin Walters  <walters@verbum.org>
4807
4808         * glib/dbus-binding-tool-glib.c
4809         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4810
4811         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4812         as errno.h and sys/stat.h.
4813         (lose): New function, prints error with
4814         newline and exits.
4815         (lose_gerror): Similar, but takes GError for message.
4816         (main): Add --output argument to specify output file to write to,
4817         instead of always printing to stdout.  In this mode, determine
4818         timestamps on source files to see whether any are newer than the
4819         target file.  If not, exit.  Also convert a number of error
4820         messages to use lose (since it's shorter), and switch to using
4821         g_io_channel_shutdown.
4822
4823 2005-02-19  Havoc Pennington  <hp@redhat.com>
4824
4825         * glib/dbus-gobject.c
4826         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4827
4828         * glib/dbus-glib.c: fix doxygen warnings
4829
4830         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4831         is found on an <arg>
4832
4833 2005-02-17  Colin Walters  <walters@verbum.org>
4834
4835         * glib/dbus-gobject.h: Don't export
4836         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4837         
4838         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4839         (invoke_object_method): Handle it.
4840
4841         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4842         Handle rename.
4843         
4844 2005-02-17  Colin Walters  <walters@verbum.org>
4845
4846         * bus/.cvsignore, doc/.cvsignore
4847         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4848         Update.
4849
4850 2005-02-17  Colin Walters  <walters@verbum.org>
4851         
4852         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4853         Rename to DBUS_SERVICE_DBUS.
4854         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4855         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4856         Change the value from "org.freedesktop.Local"
4857         to "org.freedesktop.DBus.Local".
4858         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4859         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4860         DBUS_INTERFACE_INTROSPECTABLE.
4861         Change the value from "org.freedesktop.Introspectable"
4862         to "org.freedesktop.DBus.Introspectable".
4863         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4864         DBUS_INTERFACE_PROPERTIES.
4865         Change the value from "org.freedesktop.Properties"
4866         to "org.freedesktop.DBus.Properties".
4867         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4868         DBUS_INTERFACE_PEER.
4869         Change the value from "org.freedesktop.Peer"
4870         to "org.freedesktop.DBus.Peer".
4871         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4872         DBUS_INTERFACE_LOCAL.
4873         Change the value from "org.freedesktop.Local"
4874         to "org.freedesktop.DBus.Local".
4875
4876         All other users of those constants have been changed.
4877
4878         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4879
4880         * glib/dbus-gobject.c (handle_introspect): Use constants.
4881
4882         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4883
4884 2005-02-17  Colin Walters  <walters@verbum.org>
4885
4886         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4887         (parse_node, parse_interface, parse_method, parse_signal)
4888         (parse_property, parse_annotation): Lose if we're currently in an
4889         annotation.
4890         (parse_annotation): New function.
4891         (parser_start_element, parser_end_element): Handle annotation.
4892         (parse_method, parse_interface): Remove support for c_name attribute,
4893         switch to annotations.
4894
4895         * glib/dbus-gidl.h (interface_info_get_binding_names)
4896         (method_info_get_binding_names)
4897         (interface_info_get_binding_name, method_info_get_binding_name)
4898         (interface_info_set_binding_name, method_info_set_binding_name):
4899         Remove.
4900         (interface_info_get_annotations, method_info_get_annotations)
4901         (interface_info_get_annotation, method_info_get_annotation)
4902         (interface_info_add_annotation, method_info_add_annotation):
4903         Prototype.
4904
4905         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4906         for "bindings".
4907         (struct MethodInfo): Ditto.
4908         Straightfoward conversion of binding methods into annotation methods
4909         as prototyped.
4910
4911         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4912
4913         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4914
4915         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4916         Use new annotation API.
4917
4918         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4919         annotation element.
4920         
4921         * doc/dbus-specification.xml: Discuss introspection annotations,
4922         include list of well-known annotations.
4923
4924         * test/glib/test-service-glib.xml: Make validate against new DTD.
4925
4926 2005-02-17  Colin Walters  <walters@verbum.org>
4927
4928         This patch is based on initial work from
4929         Paul Kuliniewicz <kuliniew@purdue.edu>.
4930
4931         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4932         initialization of GValue from dbus type to here.
4933         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4934         for the "glib-genmarshal" program from a DBus type.
4935         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4936         into the C name for it we use in the glib bindings.
4937         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4938         glib C type (not GValue).
4939         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4940
4941         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4942         from dbus-gobject.c.
4943
4944         * glib/dbus-gutils.h: Prototype it.
4945
4946         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4947         (marshal_dbus_message_to_g_marshaller): Use new shared function
4948         dbus_glib_marshal_dbus_message_to_gvalue_array.
4949
4950         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4951         Will be changed once we have annotations.
4952
4953         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4954         GStaticRWLock.  Callers updated.
4955         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4956         (string_table_next): New function for iterating over zero-terminated
4957         string value array.
4958         (string_table_lookup): New function; retrieves specific entry in
4959         array.
4960         (get_method_data): New function; look up method data in object data chunk.
4961         (object_error_domain_prefix_from_object_info)
4962         (object_error_code_from_object_info): New functions, but not implemented yet.
4963         (method_interface_from_object_info): New function; retrieve interface name.
4964         (method_name_from_object_info): New function; retrieve method name.
4965         (method_arg_info_from_object_info): New function; retrieve argument data.
4966         (arg_iterate): New function; iterates over serialized argument data.
4967         (method_dir_signature_from_object_info): New function; returns a
4968         GString holding type signature for arguments for just one
4969         direction (input or output).
4970         (method_input_signature_from_object_info)
4971         (method_output_signature_from_object_info): New functions.
4972         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4973         converts dbus message arguments into a GValue array.  Used for both
4974         signal handling and method invocation.
4975         (struct DBusGlibWriteIterfaceData): New utility structure.
4976         (write_interface): New function; generate introspection XML for
4977         an interface.
4978         (introspect_interfaces): New function; gathers all interface->methods,
4979         generates introspection XML for them.
4980         (handle_introspect): Invoke introspect_interfaces.
4981         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4982         (lookup_object_and_method): New function; examines an incoming message
4983         and attempts to match it up (via interface, method name, and argument
4984         signature) with a known object and method.
4985         (gerror_domaincode_to_dbus_error_name): New function; converts a
4986         GError domain and code into a DBus error name.  Needs GError data
4987         added to object introspection to work well.
4988         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4989         GError.
4990         (invoke_object_method): New function to invoke an object method
4991         looked up via lookup_object_and_method.  Parses the incoming
4992         message, turns it into a GValue array, then invokes the marshaller
4993         specified in the DBusGMethodInfo.  Creates a new message with
4994         either return values or error message as appropriate.
4995         (gobject_message_function): Invoke lookup_object_and_method and
4996         invoke_object_method.
4997
4998         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4999         (enum DBusBindingOutputMode): New enum for binding output modes.
5000         (pretty_print): Print binding names.
5001         (dbus_binding_tool_error_quark): GError bits.
5002         (version): Fix typo.
5003         (main): Create GIOChannel for output.  Parse new --mode argument,
5004         possible values are "pretty-print", "glib-server", "glib-client".
5005         Use mode to invoke appropriate function.
5006         
5007         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5008
5009         * glib/dbus-glib-tool.h: New header, just includes GError bits
5010         for now.
5011
5012         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5013         maps binding style to name.
5014         (struct MethodInfo): Ditto.
5015         (get_hash_keys, get_hash_key): Utility function, returns keys for
5016         a GHashTable.
5017         (interface_info_new, method_info_new): Initialize bindings.
5018         (interface_info_unref, method_info_unref): Destroy bindings.
5019         (method_info_get_binding_names, method_info_get_binding_name)
5020         (interface_info_get_binding_names, interface_info_get_binding_name):
5021         Functions for retrieving binding names.
5022         (method_info_set_binding_name, interface_info_set_binding_name):
5023         Functions for setting binding names.
5024
5025         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5026         for glib binding generation.
5027
5028         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5029         and client-side glib glue generation.
5030
5031         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5032         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5033         dbus-glib-tool.h.
5034
5035         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5036         of using GClosureMarshal directly.
5037         (struct DBusGObjectInfo): Add n_infos member.
5038
5039         * test/glib/test-service-glib.xml: New file; contains introspection data
5040         for MyTestObject used in test-service-glib.c.
5041
5042         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5043         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5044         (my_object_uppercase, my_object_many_args): New test methods.
5045         (main): Use dbus_g_object_class_install_info to include generated object
5046         info.
5047
5048         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5049         as well as client-side bindings.
5050
5051         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5052         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5053         using both the dbus_gproxy stuff directly as well as the generated bindings.
5054
5055 2005-02-15  Havoc Pennington  <hp@redhat.com>
5056
5057         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5058         complete a pending call, don't run filters first.
5059
5060         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5061         dbus_pending_call_steal_reply
5062
5063         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5064         _dbus_connection_block_pending_call
5065         (dbus_pending_call_get_reply): change to steal_reply and return a
5066         ref
5067
5068         * dbus/dbus-connection.c
5069         (dbus_connection_send_with_reply_and_block): port to work in terms
5070         of DBusPendingCall
5071         (_dbus_connection_block_pending_call): replace block_for_reply
5072         with this
5073
5074 2005-02-14  Havoc Pennington  <hp@redhat.com>
5075
5076         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5077         properly handle looking up group information by name; fix 
5078         from j@bootlab.org
5079
5080 2005-02-13  Havoc Pennington  <hp@redhat.com>
5081
5082         * dbus/dbus-connection.c (dbus_connection_return_message) 
5083         (dbus_connection_borrow_message): hold dispatch lock while message
5084         is outstanding
5085         (_dbus_connection_block_for_reply): hold dispatch lock while we
5086         block for the reply, so nobody steals our reply
5087         (dbus_connection_pop_message): hold the dispatch lock while we
5088         pluck the message
5089
5090 2005-02-13  Havoc Pennington  <hp@redhat.com>
5091
5092         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5093         (_dbus_connection_release_dispatch)
5094         (_dbus_connection_acquire_io_path)
5095         (_dbus_connection_release_io_path): make the mutex and condvar
5096         control access to the "acquired" flag. Drop the connection lock
5097         while waiting on the condvar. Hopefully these are baby steps in
5098         roughly the right direction.
5099
5100 2005-02-13  Havoc Pennington  <hp@redhat.com>
5101
5102         * dbus/dbus-connection.c: use separate mutexes for the condition
5103         variables; this is some kind of baseline for sanity, but the
5104         condition variables still aren't used correctly afaict
5105
5106 2005-02-13  Havoc Pennington  <hp@redhat.com>
5107
5108         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5109         fix a double-unlock
5110
5111         * dbus/dbus-connection.c
5112         (_dbus_connection_detach_pending_call_unlocked): add this
5113
5114         Initial semi-correct pass through to fix thread locking; there are
5115         still some issues with the condition variable paths I'm pretty
5116         sure
5117         
5118         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5119         lock/unlock calls
5120
5121         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5122         rename to add _unlocked
5123         (struct DBusConnection): move "dispatch_acquired" and
5124         "io_path_acquired" to use only one bit each.
5125         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5126         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5127         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5128         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5129         (_dbus_connection_remove_timeout) 
5130         (_dbus_connection_toggle_timeout): drop lock when calling out to
5131         user functions; done in a hacky/bad way.
5132         (_dbus_connection_send_and_unlock): add a missing unlock
5133         (_dbus_connection_block_for_reply): add a missing unlock
5134
5135         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5136         drop lock in a hacky probably unsafe way to call out to user
5137         function
5138
5139 2005-02-12  Havoc Pennington  <hp@redhat.com>
5140
5141         * tools/dbus-tree-view.c (info_set_func_text): display more
5142         details on args
5143
5144         * bus/driver.c (bus_driver_handle_list_services): list the bus
5145         driver
5146
5147         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5148
5149         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5150         (method_info_get_n_args): new function
5151
5152 2005-02-12  Havoc Pennington  <hp@redhat.com>
5153
5154         * bus/driver.c (bus_driver_handle_introspect): add introspection
5155         for bus driver
5156
5157 2005-02-12  Havoc Pennington  <hp@redhat.com>
5158
5159         * bus/driver.c: put the signature of each bus driver method in the
5160         table of handlers and check it on incoming calls; this isn't
5161         really useful, but going to add introspect support in a minute.
5162
5163 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5164
5165         * mono/Connection.cs: The unpredictability of finalizers in mono
5166         prevents us from deterministically disconnecting the filters from
5167         the Service class's finalizer, so move tracking of filters and
5168         matches here.  Add API for that.
5169
5170         * mono/Service.cs: Remove the code, add code which calls the
5171         methods now on the Connection class.
5172
5173 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5174
5175         * python/dbus.py (class Sender): added to support dbus signals better
5176         (Bus::add_signal_receiver): added expand_args parameter which defaults
5177         to True.  When expand args is True the signal handler will pass the 
5178         message arguments as parameters to the signal handler.  If False
5179         revert to previous behavior where the signal handler must get the
5180         argument list from the message.  This is to help port applications
5181         like HAL that have a tendancy to send variable length argument lists.
5182         self._match_rule_to_receivers is now a dict of dicts.
5183         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5184         removing it from a list
5185         (Bus::_signal_func): change signal handlers so that interface,
5186         signal_name, service, path and message are packed into a Sender
5187         object and that is passed to the handler.  If expand_args is True
5188         extract the args list from the message and append it to the parameter
5189         list
5190         
5191         * python/dbus_bindings.pyx.in (class Signature): added to support 
5192         signiature types
5193         (MessageIter::__init__): changed iteration limit to match D-BUS
5194         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5195         STRUCT and VARIENT type support
5196         (MessageIter::python_value_to_dbus_sig): made recursive to support
5197         recursive types
5198         (MessageIter::append*): added Signature, dict, tuple 
5199         support
5200
5201         * python/examples/example-client.py: added examples of getting tuples
5202         and dicts
5203
5204         * python/examples/example-service.py: added examples of sending tuples
5205         and dicts
5206
5207         * python/examples/example-signal-recipient.py: Fixed to handle new
5208         signal callback format
5209
5210 2005-02-10  Havoc Pennington  <hp@redhat.com>
5211
5212         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5213         (call dbus_g_proxy_add_signal)
5214
5215         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5216         escape the hostname
5217         (_dbus_server_new_for_domain_socket): escape the path
5218
5219         * dbus/dbus-address.c (dbus_address_escape_value): new
5220         (dbus_address_unescape_value): new
5221         (dbus_parse_address): unescape values
5222
5223         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5224
5225         * doc/dbus-specification.xml: explain how to escape values in
5226         addresses
5227
5228 2005-02-10  Havoc Pennington  <hp@redhat.com>
5229
5230         * dbus/dbus-message-factory.c (generate_special): modify test to
5231         avoid using a non-basic dict key
5232
5233         * dbus/dbus-marshal-validate-util.c: add test for the below
5234
5235         * doc/dbus-specification.xml: require that dict keys are a basic
5236         type
5237
5238         * dbus/dbus-marshal-validate.c
5239         (_dbus_validate_signature_with_reason): require that dict key is a
5240         basic type
5241
5242 2005-02-10  Havoc Pennington  <hp@redhat.com>
5243
5244         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5245         change to be _and_unlock instead of _unlocked
5246
5247         * dbus/dbus-connection.c
5248         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5249         have no_update so we can find this bug quickly in future
5250
5251 2005-02-10  Havoc Pennington  <hp@redhat.com>
5252
5253         * dbus/dbus-message-util.c (verify_test_message): tests for string
5254         array
5255
5256         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5257         support for arrays of string/signature/path
5258
5259 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5260
5261         * dbus/dbus-connection.c
5262         (_dbus_connection_queue_received_message_link,
5263         _dbus_connection_message_sent): Add the path to
5264         the verbose output.
5265         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5266         _dbus_connection_send_preallocated_unlocked(), updated the
5267         dispatch status, and unlocks.  Fixes a bug where certain
5268         situations (like a broken pipe) could cause a Disconnect message
5269         to not be sent, tricking the bus into thinking a service was still
5270         there when the process had quit.
5271         (_dbus_connection_send_preallocated): Call
5272         _dbus_connection_send_preallocated_and_unlock().
5273         (_dbus_connection_send_and_unlock): Added.  Calls
5274         _dbus_connection_send_preallocated_and_unlock().
5275         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5276         (dbus_connection_send_with_reply): Update the dispatch status and
5277         unlock.
5278
5279         * mono/Service.cs (~Service): Added.  Removes the filter so that
5280         we don't get unmanaged code calling back into a GCed delegate.
5281         (RemoveFilter); Added.
5282
5283 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5284
5285         * dbus/dbus-message.c (dbus_message_iter_open_container):
5286         - Removed check for iterator type being an array because
5287         get_arg_type does not work with writer iterators
5288         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5289
5290 2005-02-07  Havoc Pennington  <hp@redhat.com>
5291
5292         * doc/dbus-specification.xml: some more language cleanups; add
5293         stuff about how to deal with invalid protocol and extension
5294         points; add _ to allowed chars in auth commands; add EXTENSION_
5295         auth command prefix
5296
5297 2005-02-06  Havoc Pennington  <hp@redhat.com>
5298
5299         * s/expected/required/ in a couple places for clarity
5300
5301 2005-02-07  Colin Walters  <walters@verbum.org>
5302
5303         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5304         sender or proposed_recipient.
5305
5306 2005-02-06  Havoc Pennington  <hp@redhat.com>
5307
5308         * dbus/dbus-message-factory.c (generate_special): more tests
5309
5310         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5311         array length that exceeds the maximum
5312
5313 2005-02-05  Havoc Pennington  <hp@redhat.com>
5314
5315         * dbus/dbus-message-factory.c (generate_special): more test cases,
5316         increasing coverage
5317
5318         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5319         reason why a signature was invalid
5320
5321         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5322         skip the length of the string before we look at it in validation
5323
5324         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5325         equal_substring
5326
5327         * dbus/dbus-message.c (_dbus_message_loader_new): default
5328         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5329
5330 2005-02-05  Havoc Pennington  <hp@redhat.com>
5331
5332         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5333         if the signature of a variant was empty
5334         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5335         struct with no element type)
5336
5337         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5338         mangled messages to break things
5339
5340 2005-02-04  Havoc Pennington  <hp@redhat.com>
5341
5342         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5343         g_quark_try_string() so it actually can return 0
5344         (dbus_g_proxy_connect_signal): ditto
5345
5346 2005-02-04  Havoc Pennington  <hp@redhat.com>
5347
5348         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5349         bogus warning
5350         (tristring_from_message): assert cleanly on null path/interface
5351         (should not be possible though I decided later)
5352         (dbus_g_proxy_dispose): move proxy manager unregistration here
5353         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5354         g_return_if_fail() checks
5355
5356 2005-02-04  Havoc Pennington  <hp@redhat.com>
5357
5358         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5359
5360         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5361         (with some minor changes)
5362
5363         * doc/dbus-specification.xml: add deprecated attribute to
5364         introspection format
5365
5366 2005-01-31  Havoc Pennington  <hp@redhat.com>
5367
5368         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5369         think it's sort of right
5370
5371 2005-01-30  Havoc Pennington  <hp@redhat.com>
5372
5373         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5374
5375 2005-01-30  Havoc Pennington  <hp@redhat.com>
5376
5377         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5378
5379         * autogen.sh: change to autotools 1.9
5380
5381         * glib/dbus-gproxy.c: completely change how signals work
5382         (dbus_g_proxy_add_signal): new function to specify signature of a
5383         signal
5384         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5385         and g_warning if the incoming message has the wrong signature.
5386
5387 2005-01-30  Havoc Pennington  <hp@redhat.com>
5388
5389         * tools/dbus-names-model.c (have_names_notify): fix this
5390
5391         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5392         up the string array handling a bit 
5393
5394 2005-01-30  Havoc Pennington  <hp@redhat.com>
5395
5396         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5397         (dbus_g_pending_call_cancel): new function
5398
5399         * dbus/dbus-glib.h: move GType decls for connection/message here;
5400         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5401         here, just kind of rationalizing how we handle all that
5402
5403         * tools/dbus-names-model.c: new file for a tree model listing the
5404         services on a bus
5405
5406         * tools/dbus-tree-view.c (model_new): use proper typing on the
5407         model rows
5408
5409 2005-01-30  Havoc Pennington  <hp@redhat.com>
5410
5411         * glib/dbus-gmain.c: add a custom GSource back that just checks
5412         whether the message queue has anything in it; otherwise, there are 
5413         cases where we won't see messages in the queue since there was no 
5414         IO visible to the glib main loop
5415
5416         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5417         increase default message timeout to 25 seconds
5418
5419 2005-01-30  Havoc Pennington  <hp@redhat.com>
5420
5421         * test/glib/test-profile.c (no_bus_stop_server): remove the
5422         warning about the g_warning that I just fixed
5423
5424         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5425         custom source, seems to be a lot easier to understand and work
5426         better.
5427
5428 2005-01-30  Havoc Pennington  <hp@redhat.com>
5429
5430         I think this main loop thing is conceptually broken, but here are 
5431         some band aids. I'll maybe rewrite it in a minute.
5432         
5433         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5434         custom GSource, so don't pass it in; confusing
5435         (gsource_server_finalize, gsource_connection_finalize): add
5436         finalize handlers that remove all the watches.  
5437
5438 2005-01-30  Havoc Pennington  <hp@redhat.com>
5439
5440         * glib/dbus-gobject.c (introspect_properties): fix the XML
5441         generated
5442
5443         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5444         which effectively detects the use of freed messages
5445
5446         * glib/dbus-gobject.c (handle_introspect): modify and return the
5447         reply message instead of the incoming message
5448
5449         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5450         gee, maybe it should SEND THE XML instead of just making a string
5451         and freeing it again ;-)
5452
5453         * tools/dbus-print-message.c (print_message): improve printing of
5454         messages
5455
5456         * configure.in: add debug-glib.service to the output
5457
5458 2005-01-30  Havoc Pennington  <hp@redhat.com>
5459
5460         dbus-viewer introspected and displayed the bus driver
5461         
5462         * dbus/dbus-object-tree.c 
5463         (object_tree_test_iteration): add tests for a handler registered on "/"
5464
5465         * dbus/dbus-object-tree.c
5466         (_dbus_decompose_path): fix to handle path "/" properly
5467         (run_decompose_tests): add tests for path decomposition
5468         
5469         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5470         properly
5471
5472         * glib/dbus-gobject.c (handle_introspect): fix quotes
5473
5474         * test/glib/run-test.sh: support launching the bus, then running
5475         dbus-viewer
5476
5477         * test/glib/test-service-glib.c (main): put in a trivial gobject
5478         subclass and register it on the connection
5479
5480         * bus/driver.c (bus_driver_handle_introspect): implement
5481         introspection of the bus driver service
5482
5483         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5484         identifiers, doctype decl
5485
5486         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5487         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5488         returning the service unchanged.
5489         (bus_driver_handle_message): remove old check for reply_serial in
5490         method calls, now the message type deals with that
5491         (bus_driver_handle_message): handle NULL interface
5492
5493         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5494
5495         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5496         -1 for len
5497
5498         * tools/dbus-viewer.c: add support for introspecting a service on
5499         a bus
5500
5501         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5502         (dbus_g_pending_call_unref): add
5503
5504 2005-01-29  Havoc Pennington  <hp@redhat.com>
5505
5506         * tools/dbus-tree-view.c: add support for displaying properties.
5507         (run dbus-viewer with an introspect xml file as arg, then resize
5508         the window so the tree elements show up, not sure what that is)
5509
5510         * glib/dbus-gobject.c (handle_introspect): return
5511         org.freedesktop.Properties and org.freedesktop.Introspectable
5512         interfaces when we are introspected.
5513
5514         * doc/dbus-specification.xml: allow empty interface name when 
5515         Get/Set a property
5516
5517 2005-01-29  Havoc Pennington  <hp@redhat.com>
5518
5519         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5520         though it uses glib, it could be extended for any binding in
5521         principle
5522
5523         * glib/dbus-gobject.c (gobject_message_function): change to the
5524         new way properties work
5525
5526         * dbus/dbus-protocol.h: add the new interfaces
5527
5528         * doc/dbus-specification.xml: document the introspection format,
5529         Introspectable interface, and add an org.freedesktop.Properties
5530         interface.
5531
5532         * glib/dbus-gparser.c: add support for a <property> element
5533
5534         * glib/dbus-gidl.c: add PropertyInfo
5535
5536         * glib/dbus-gobject.c (handle_introspect): put the outermost
5537         <node> outside the signal and property descriptions.
5538         (introspect_properties): export properties as <property> rather
5539         than as method calls
5540
5541 2005-01-28  Havoc Pennington  <hp@redhat.com>
5542
5543         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5544         related to authentication protocol
5545
5546 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5547
5548         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5549                 - BUS_ACTIVATION -> BUS_STARTER
5550                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5551                 - class MessageIter (__init__): Added recursion checking 
5552                 so we throw a nice error instead of just disconnecting from the
5553                 bus.
5554                 (get): Added arg_type parameter for recursion.
5555                 Removed the nil type
5556                 Added signiture type placeholder (not implemented)
5557                 Added struct type placeholder (not implemented)
5558                 Added varient type placeholder (not implemented)
5559                 Commented out dict type for now     
5560                 (get_element_type): renamed from get_array_type
5561                 (get_*): changed to use the dbus_message_iter_get_basic API
5562                 (get_*_array): removed in favor of recursive get_array method
5563                 (get_array): new recursive method which calls get to marshal
5564                 the elements of the array
5565                 (value_to_dbus_sig): New method returns the corrasponding
5566                 dbus signiture to a python value
5567                 (append): Comment out dict handling for now
5568                 Handle lists with the new recursive API
5569                 Comment out None handling for now
5570                 (append_nil): removed
5571                 (append_*): changed to use dbus_message_iter_append_basic API
5572                 (append_*_array): removed in favor of recursive append_array 
5573                 method
5574                 (__str__): Make it easier to print out recursive iterators
5575                 for debugging
5576                 - class Message (__str__): moved type inspection to the
5577                 MessageIter class' __str__ method
5578                 (get_iter): Added an append parameter wich defaults to False
5579                 If True use the new API's to create an append iterator
5580
5581         * python/dbus.py: Update to use new bindings API
5582                 - TYPE_ACTIVATION -> TYPE_STARTER
5583                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5584                 - class ActivationBus -> class StarterBus
5585                 - class RemoteObject (__call__): get an append iterator
5586                 - (_dispatch_dbus_method_call): get an append iterator
5587                 - class Object (emit_signal): get an append iterator
5588
5589         * python/examples/: Fixed up the examples to work with the new API
5590                 
5591 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5592
5593         * configure.in: Bump version up to 0.30.
5594
5595         * HACKING: Add a release item to bump the version number up after 
5596         a release.
5597
5598 2005-01-28  Havoc Pennington  <hp@redhat.com>
5599
5600         * doc/dbus-specification.xml: update to describe 16-bit types and
5601         dict entries
5602
5603         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5604         assertion
5605
5606         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5607         type
5608
5609         * dbus/dbus-marshal-recursive.c: implement
5610
5611 2005-01-27  Havoc Pennington  <hp@redhat.com>
5612
5613         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5614
5615         * configure.in: find the right type for 16 and 32 bit ints as well
5616         as 64
5617
5618         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5619         the 16-bit types so people don't have to stuff them in 32-bit or
5620         byte arrays.
5621
5622 2005-01-27  Havoc Pennington  <hp@redhat.com>
5623
5624         * dbus/dbus-message.c: byteswap the message if you init an
5625         iterator to read/write from it
5626         
5627         * dbus/dbus-marshal-byteswap.c: new file implementing 
5628         _dbus_marshal_byteswap()
5629
5630         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5631
5632 2005-01-26  Havoc Pennington  <hp@redhat.com>
5633         
5634         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5635         build, apparently - nobody noticed?)
5636         
5637 2005-01-26  Havoc Pennington  <hp@redhat.com>
5638
5639         * dbus/dbus-marshal-recursive.h: remove todo comment
5640
5641 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5642
5643         * Land the mono binding changes to conform to the new APIs.
5644
5645         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5646         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5647
5648         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5649         type code as a string.
5650         (InitAppending): Rename dbus_message_append_iter_init() to
5651         dbus_message_iter_init_append().
5652
5653         * mono/BusDriver.cs: Rename ServiceEventHandler to
5654         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5655         Rename ServiceOwnerChanged to NameOwnerChanged.
5656
5657         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5658         underlying C call.
5659
5660         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5661
5662         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5663         dbus_bus_acquire_service() to dbus_bus_request_name().
5664
5665         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5666         of Type.UnderlyingSystemType to get the correct element type for
5667         the array.
5668         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5669         dbus_message_get_{element|arg}_type() instead of
5670         dbus_message_iter_init_array_iterator().
5671         (Append): Replace dbus_message_iter_append_array() with
5672         dbus_message_iter_open_container() and
5673         dbus_message_iter_close_container().
5674
5675         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5676         types have been removed.
5677         
5678         * mono/DBusType/*.cs: Replace calls of
5679         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5680         but specify the type in the DllImport extern declaration.  Ditto
5681         for dbus_message_iter_append_[type]() ->
5682         dbus_message_iter_append_basic().
5683
5684         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5685         NameOwnerChangedHandler.
5686
5687 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5688
5689         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5690                 - get_base_service -> get_unique_name
5691                 - bus_get_base_service -> bus_get_unique_name
5692                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5693                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5694                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5695                 - bus_activate_service -> bus_start_service_by_name
5696                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5697                 - bus_acquire_service -> bus_request_name
5698                 - dbus_bus_acquire_service -> dbus_bus_request_name
5699                 - bus_service_exists -> bus_name_has_owner
5700                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5701
5702         * python/dbus.py: Rename of methods
5703                 - activate_service -> start_service_by_name
5704                 - bus_acquire_service -> bus_request_name
5705                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5706                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5707
5708         
5709 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5710
5711         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5712         signature for the method that can't be found.
5713
5714         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5715         the message has any arguments, we need to call
5716         _dbus_type_reader_get_current_type(), not
5717         _dbus_type_reader_has_next().
5718
5719 2005-01-24  Havoc Pennington  <hp@redhat.com>
5720
5721         * dbus/dbus-message-factory.c: more testing of message validation
5722
5723         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5724         header
5725
5726 2005-01-23  Havoc Pennington  <hp@redhat.com>
5727
5728         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5729         get this all working, not many tests in the framework yet though
5730
5731 2005-01-22  Havoc Pennington  <hp@redhat.com>
5732
5733         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5734         tutorial, based on work from David Wheeler.
5735
5736 2005-01-21  Havoc Pennington  <hp@redhat.com>
5737
5738         * dbus/dbus-bus.c: add more return_if_fail checks
5739
5740         * dbus/dbus-message.c (load_message): have the "no validation"
5741         mode (have to edit the code to toggle the mode for now though)
5742
5743         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5744         skips all validation; I want to use this at least for benchmark
5745         baseline, I'm not sure if it should be a publicly-available switch.
5746
5747 2005-01-21  Havoc Pennington  <hp@redhat.com>
5748
5749         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5750         toplevel doxygen group as the low-level API stuff
5751
5752         * dbus/dbus.h: note that libdbus is the low-level API
5753
5754 2005-01-20  Havoc Pennington  <hp@redhat.com>
5755
5756         * update-dbus-docs.sh: script to update docs on the web site, only
5757         works for me though. neener.
5758
5759 2005-01-20  Havoc Pennington  <hp@redhat.com>
5760
5761         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5762         code can reveal bugs in it
5763
5764 2005-01-20  Havoc Pennington  <hp@redhat.com>
5765
5766         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5767         select() version, patches from Tor Lillqvist
5768
5769 2005-01-20  Havoc Pennington  <hp@redhat.com>
5770
5771         * doc/dbus-tutorial.xml: replace > with &gt;
5772
5773         * bus/services.c (bus_registry_acquire_service): validate the name
5774         and return a better error if it's no good.
5775
5776         * doc/dbus-specification.xml: note NO_AUTO_START change
5777
5778         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5779         from AUTO_START, we're toggling the default
5780
5781         * bus/dispatch.c: adapt the tests to change of auto-start default
5782
5783 2005-01-18  Havoc Pennington  <hp@redhat.com>
5784
5785         * rename dbus-daemon-1 to dbus-daemon throughout
5786
5787 2005-01-18  Havoc Pennington  <hp@redhat.com>
5788
5789         * Throughout, grand renaming to strip out the use of "service",
5790         just say "name" instead (or "bus name" when ambiguous).  Did not
5791         change the internal code of the message bus itself, only the
5792         programmer-facing API and messages.
5793         
5794         * doc/dbus-specification.xml: further update the message bus section
5795         
5796         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5797         in error case
5798
5799 2005-01-17  Havoc Pennington  <hp@redhat.com>
5800
5801         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5802         ever
5803
5804         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5805         "invalid name character" not only non-ASCII
5806
5807         * doc/dbus-specification.xml: further update spec, message bus 
5808         parts are still out-of-date but the marshaling etc. stuff is now
5809         accurate-ish
5810
5811 2005-01-17  Havoc Pennington  <hp@redhat.com>
5812
5813         * doc/dbus-specification.xml: partially update spec
5814
5815 2005-01-17  Havoc Pennington  <hp@redhat.com>
5816
5817         * Throughout, align variant bodies according to the contained
5818         type, rather than always to 8. Should save a fair bit of space in
5819         message headers.
5820         
5821         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5822         fix handling of case where p == end
5823
5824         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5825
5826 2005-01-17  Havoc Pennington  <hp@redhat.com>
5827
5828         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5829
5830         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5831         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5832         are marshaling/unmarshaling a boolean.
5833
5834 2005-01-16  Havoc Pennington  <hp@redhat.com>
5835
5836         This is about it on what can be disabled/deleted from libdbus
5837         easily, back below 150K anyhow. Deeper cuts are more work than 
5838         just turning the code off as I've done here.
5839         
5840         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5841         signed int convenience funcs
5842
5843         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5844         verbose mode
5845
5846         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5847         things out of libdbus
5848
5849         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5850         
5851         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5852         tests-enabled-only, though it should probably be deleted)
5853
5854         * dbus/dbus-message-util.c: same stuff
5855
5856         * dbus/dbus-auth-util.c: same stuff
5857
5858 2005-01-16  Havoc Pennington  <hp@redhat.com>
5859
5860         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5861
5862         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5863         way for stripping down dbus-userdb.c stuff included in libdbus.
5864         Rename _dbus_parse_uid for consistency.
5865
5866 2005-01-16  Havoc Pennington  <hp@redhat.com>
5867
5868         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5869         name the assertion failed in
5870
5871         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5872         (_dbus_return_val_if_fail): assert that the name of the function
5873         containing the check doesn't start with '_', since we only want to 
5874         use checks on public functions
5875         
5876         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5877         checks to assertions
5878
5879         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5880         change checks to asserts for private function
5881
5882         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5883         to asserts for private function
5884
5885         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5886         broken assertion that was breaking make check
5887         (_dbus_type_reader_array_is_empty): remove this rather than fix
5888         it, was only used in assertions
5889
5890 2005-01-16  Havoc Pennington  <hp@redhat.com>
5891
5892         * test/unused-code-gc.py: hacky script to find code that's used
5893         only by the bus (not libdbus) or used only by tests or not used at
5894         all. It has some false alarms, but looks like we can clean up a
5895         lot of size from libdbus.
5896
5897         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5898         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5899         
5900 2005-01-16  Havoc Pennington  <hp@redhat.com>
5901
5902         * Add and fix docs according to Doxygen warnings throughout
5903         source.
5904         
5905         * dbus/dbus-marshal-recursive.c
5906         (_dbus_type_reader_array_is_empty): change this to just call
5907         array_reader_get_array_len() and make it static
5908
5909         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5910         from get_array_type
5911         (dbus_message_iter_init_append): rename from append_iter_init
5912
5913         * dbus/dbus-marshal-recursive.c
5914         (_dbus_type_reader_get_element_type): rename from
5915         _dbus_type_reader_get_array_type
5916
5917 2005-01-15  Havoc Pennington  <hp@redhat.com>
5918
5919         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5920
5921         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5922         when DBUS_DISABLE_ASSERT
5923         (_dbus_marshal_set_basic): be sure we align for the string length
5924
5925         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5926         this look faster
5927
5928         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5929         inline macro version
5930         (_dbus_string_set_byte): provide inline macro version
5931
5932 2005-01-15  Havoc Pennington  <hp@redhat.com>
5933
5934         * Land the new message args API and type system.
5935
5936         This patch is huge, but the public API change is not 
5937         really large. The set of D-BUS types has changed somewhat, 
5938         and the arg "getters" are more geared toward language bindings;
5939         they don't make a copy, etc.
5940
5941         There are also some known issues. See these emails for details
5942         on this huge patch:
5943         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5944         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5945         
5946         * dbus/dbus-marshal-*: all the new stuff
5947
5948         * dbus/dbus-message.c: basically rewritten
5949
5950         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5951         freed blocks to be all non-nul bytes so using freed memory is less
5952         likely to work right
5953
5954         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5955         DBUS_FAIL_MALLOC=N environment variable, so you can do
5956         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5957         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5958         thorough.
5959
5960         * qt/message.cpp: port to the new message args API
5961         (operator<<): use str.utf8() rather than str.unicode()
5962         (pretty sure this is right from the Qt docs?)
5963
5964         * glib/dbus-gvalue.c: port to the new message args API
5965
5966         * bus/dispatch.c, bus/driver.c: port to the new message args API
5967
5968         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5969         "locked" flag to TRUE and align_offset to 0; I guess we never
5970         looked at these anyhow, but seems cleaner.
5971
5972         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5973         move allocation padding macro to this header; use it to implement
5974         (_DBUS_STRING_STATIC): ability to declare a static string.
5975
5976         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5977         change to return TRUE if the interface is not set.
5978
5979         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5980         to dbus-marshal-validate.[hc]
5981
5982         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5983         dbus-internals.c
5984
5985         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5986         to dbus-marshal-*.[hc]
5987
5988         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5989         function here from dbus-marshal.c
5990
5991 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5992
5993         * NEWS: Update for 0.23.
5994
5995         * configure.in: Release 0.23.
5996
5997 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5998
5999         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6000         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6001         behind.
6002
6003         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6004         uninstall"
6005
6006         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6007         is an enum, get the enum's underlying type.  Another mono
6008         1.1.3 fix.
6009
6010 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6011
6012         Patch from Sjoerd Simons <sjoerd@luon.net>
6013
6014         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6015         DESTDIR.  It breaks stuff.
6016
6017 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6018
6019         Patch from Tambet Ingo <tambet@ximian.com>
6020
6021         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6022         calling type.GetElementType().  The code previously depended on
6023         broken Mono behavior, which was fixed in Mono 1.1.3.
6024
6025         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6026         Activator.CreateInstance() so that the class's constructor is
6027         called with the right parameters.
6028
6029 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6030
6031         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6032
6033         * dbus/dbus-connection.c
6034         (_dbus_connection_queue_received_message_link): Call
6035         _dbus_connection_remove_timeout() instead of the _locked()
6036         variant, since it's always called from
6037         _dbus_connection_handle_watch(), which handles the locking.
6038         Removed the _locked() variant since it's no longer used.
6039
6040 2005-01-03  Havoc Pennington  <hp@redhat.com>
6041
6042         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6043         return
6044         
6045 2004-12-26  Havoc Pennington  <hp@redhat.com>
6046
6047         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6048
6049 2005-01-03  Havoc Pennington  <hp@redhat.com>
6050
6051         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6052         floating point
6053
6054         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6055
6056 2005-01-02  Havoc Pennington  <hp@redhat.com>
6057
6058         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6059
6060 2005-01-01  Havoc Pennington  <hp@redhat.com>
6061
6062         * configure.in: add -Wfloat-equal
6063
6064 2005-01-01  Havoc Pennington  <hp@redhat.com>
6065
6066         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6067         for a variety of reasons '==' doesn't do this.
6068
6069 2004-12-31  Havoc Pennington  <hp@redhat.com>
6070
6071         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6072         I keep wishing I had
6073
6074 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6075
6076         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6077
6078 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6079
6080         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6081         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6082         dbus-protocol.h.  Because they are defines and not enums they are not
6083         autogenerated.
6084
6085 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6086
6087         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6088         dbus_bus_activate_service
6089
6090         * python/dbus.py (Bus.activate_service): activate a service on the
6091         bus.
6092
6093 2004-12-24  Havoc Pennington  <hp@redhat.com>
6094
6095         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6096         file format has also changed and I haven't adapted to that yet
6097         
6098         * Makefile.am: load .gcno files from latest gcc
6099
6100 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6101         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6102
6103         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6104         lowlevel binding
6105
6106         * python/dbus.py (get_unix_user): Added binding to 
6107         call dbus_bindings.bus_get_unix_user
6108
6109         * python/extract.py: Modified the proto_pat regex to
6110         handle unsigned long
6111
6112 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6113
6114         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6115         better POSIX compliance.
6116
6117 2004-12-19  Havoc Pennington  <hp@redhat.com>
6118
6119         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6120         (_dbus_string_insert_8_aligned): new functions
6121
6122         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6123
6124 2004-12-18  Havoc Pennington  <hp@redhat.com>
6125
6126         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6127         macro
6128
6129         * dbus/dbus-message.c: fix a comment, and add a still-unused
6130         not-implemented function
6131
6132         * dbus/dbus-marshal.h: fix comment
6133
6134         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6135
6136 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6137
6138         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6139         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6140         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6141         Type.UnderlyingSystemType to get the actual system type
6142         underneath.  This code previously depended on the broken Mono
6143         behavior, which was fixed in 1.1.3.
6144
6145 2004-11-27  Havoc Pennington  <hp@redhat.com>
6146
6147         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6148         are disabled
6149         (_dbus_string_get_const_data): inline when asserts are disabled
6150
6151         * dbus/dbus-message.c: record the _dbus_current_generation of
6152         creation so we can complain if dbus_shutdown() is used improperly.
6153         Do this only if checks are enabled.
6154
6155         * dbus/dbus-connection.c: ditto
6156         
6157 2004-11-26  Havoc Pennington  <hp@redhat.com>
6158
6159         * test/glib/test-profile.c: add with_bus mode to profile echoes
6160         that go through the bus.
6161
6162         * test/glib/run-test.sh: add ability to run test-profile
6163
6164         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6165         config file reload.
6166
6167 2004-11-26  Havoc Pennington  <hp@redhat.com>
6168
6169         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6170         thing was implemented
6171
6172 2004-11-26  Havoc Pennington  <hp@redhat.com>
6173
6174         * test/glib/test-profile.c: tweak a bit, add support for some
6175         made-up minimal malloc overhead with plain sockets, since in 
6176         real life some sort of buffers are unavoidable thus we could 
6177         count them in the theoretical best case
6178
6179 2004-11-26  Havoc Pennington  <hp@redhat.com>
6180
6181         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6182         where I was trying to cache one too many messages
6183
6184 2004-11-26  Havoc Pennington  <hp@redhat.com>
6185
6186         * dbus/dbus-message.c: reimplement message cache as an array which 
6187         makes the cache about twice as fast and saves maybe 1.5% overall
6188
6189 2004-11-26  Havoc Pennington  <hp@redhat.com>
6190
6191         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6192         message cache lock here
6193
6194 2004-11-26  Havoc Pennington  <hp@redhat.com>
6195
6196         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6197         the "char byte_order" next to each other to save 4 bytes
6198         (dbus_message_new_empty_header): reduce preallocation, since the
6199         message cache should achieve a similar effect
6200         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6201         message cache that keeps a few DBusMessage around in a pool,
6202         another 8% speedup or so.
6203
6204         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6205
6206 2004-11-25  Havoc Pennington  <hp@redhat.com>
6207
6208         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6209         to write, without reading or blocking, try it before the poll()
6210         and skip the poll() if nothing remains to write. This is about a
6211         3% speedup in the echo client/server
6212
6213 2004-11-25  Havoc Pennington  <hp@redhat.com>
6214
6215         The primary change here is to always write() once before adding
6216         the write watch, which gives us about a 10% performance increase.
6217         
6218         * dbus/dbus-transport-unix.c: a number of modifications to cope
6219         with removing messages_pending
6220         (check_write_watch): properly handle
6221         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6222         messages_pending stuff
6223         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6224         AUTHENTICATED cases
6225         (unix_handle_watch): after writing, see if the write watch can be
6226         removed
6227         (unix_do_iteration): assert that write_watch/read_watch are
6228         non-NULL rather than testing that they aren't, since they 
6229         aren't allowed to be NULL. check_write_watch() at the end so 
6230         we add the watch if we did not finish writing (e.g. got EAGAIN)
6231
6232         * dbus/dbus-transport-protected.h: remove messages_pending call,
6233         since it resulted in too much inefficient watch adding/removing; 
6234         instead we now require that the transport user does an iteration 
6235         after queueing outgoing messages, and after trying the first
6236         write() we add a write watch if we got EAGAIN or exceeded our 
6237         max bytes to write per iteration setting
6238
6239         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6240         function
6241
6242         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6243         freed and then accessed, valgrind flagged this bug, fix it
6244
6245         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6246         as the last valid field plus 1, where really it is equal to the
6247         last valid field. Corrects some message corruption issues.
6248
6249         * dbus/dbus-mainloop.c: verbosity changes
6250
6251         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6252         instead of aborting in one of the test codepaths
6253
6254         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6255         caused not printing the pid ever again if a verbose was missing
6256         the newline at the end
6257         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6258
6259         * dbus/dbus-connection.c: verbosity changes; 
6260         (dbus_connection_has_messages_to_send): new function
6261         (_dbus_connection_message_sent): no longer call transport->messages_pending
6262         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6263         try to write() immediately, so we can avoid the write watch. This
6264         is the core purpose of this patchset
6265         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6266         dump the outgoing message queue, so nobody will get confused
6267         trying to send them or thinking stuff is pending to be sent
6268
6269         * bus/test.c: verbosity changes
6270
6271         * bus/driver.c: verbosity/assertion changes
6272
6273         * bus/dispatch.c: a bunch of little tweaks to get it working again
6274         because this patchset changes when/where you need to block.
6275
6276 2004-11-23  Havoc Pennington  <hp@redhat.com>
6277
6278         * test/glib/test-profile.c: modify to accept a plain_sockets
6279         argument in which case it will bench plain sockets instead of
6280         libdbus, for comparison purposes.
6281
6282 2004-11-22  Havoc Pennington  <hp@redhat.com>
6283
6284         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6285         threads for more time, so sysprof can get a grip on it.
6286
6287         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6288         pointless variable
6289
6290 2004-11-13  Havoc Pennington  <hp@redhat.com>
6291
6292         * test/glib/test-profile.c: fix this thing up a bit
6293
6294         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6295         preallocation sizes by a fair bit; not sure if this will be an
6296         overall performance win or not, but it does reduce reallocs.
6297
6298         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6299         the test hack that forced constant realloc if asserts are
6300         disabled, so we can profile sanely. Sprinkle in some
6301         _DBUS_UNLIKELY() which are probably pointless, but before I
6302         noticed the real performance problem I put them in.
6303         (_dbus_string_validate_utf8): micro-optimize this thing a little
6304         bit, though callgrind says it didn't help; then special-case
6305         ascii, which did help a lot; then be sure we detect nul bytes as
6306         invalid, which is a bugfix.
6307         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6308         superstition; use memset to nul the padding instead of a manual
6309         loop.
6310         (_dbus_string_get_length): inline this as a
6311         macro; it showed up in the profile because it's used for loop
6312         tests and so forth
6313
6314 2004-11-10  Colin Walters  <walters@verbum.org>
6315
6316         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6317         for extra paranoia.
6318
6319 2004-11-09  Colin Walters  <walters@verbum.org>
6320
6321         * dbus/dbus-string.c (_dbus_string_get_length): New
6322         function, writes DBusString to C buffer.
6323
6324         * dbus/dbus-string.h: Prototype it.
6325
6326         * dbus/dbus-message.c (dbus_message_type_to_string): New
6327         function, converts message type into C string.
6328
6329         * dbus/dbus-message.h: Prototype it.
6330
6331         * bus/selinux.c (bus_selinux_check): Take source pid,
6332         target pid, and audit data.  Pass audit data to
6333         avc_has_perm.
6334         (log_audit_callback): New function, appends extra
6335         audit information.
6336         (bus_selinux_allows_acquire_service): Also take
6337         service name, add it to audit data.
6338         (bus_selinux_allows_send): Also take message
6339         type, interface, method member, error name,
6340         and destination, and add them to audit data.
6341         (log_cb): Initialize func_audit.
6342         
6343         * bus/selinux.h (bus_selinux_allows_acquire_service)
6344         (bus_selinux_allows_send): Update prototypes 
6345
6346         * bus/services.c (bus_registry_acquire_service): Pass
6347         service name to bus_selinux_allows_acquire_service.
6348
6349         * bus/bus.c (bus_context_check_security_policy): Pass
6350         additional audit data.  Move assignment of dest
6351         to its own line.
6352
6353 2004-11-07  Colin Walters  <walters@verbum.org>
6354
6355         * dbus/dbus-transport-unix.c (do_authentication): Always
6356         initialize auth_completed.
6357         
6358 2004-11-07  Colin Walters  <walters@verbum.org>
6359
6360         * bus/bus.c (load_config): Break into three
6361         separate functions: process_config_first_time_only,
6362         process_config_every_time, and process_config_postinit.
6363         (process_config_every_time): Move call of
6364         bus_registry_set_service_context_table into
6365         process_config_postinit.
6366         (process_config_postinit): New function, does
6367         any processing that needs to happen late
6368         in initialization (and also on reload).
6369         (bus_context_new): Instead of calling load_config,
6370         open config parser here and call process_config_first_time_only
6371         and process_config_every_time directly.  Later, after
6372         we have forked but before changing UID,
6373         invoke bus_selinux_full_init, and then call
6374         process_config_postinit.
6375         (bus_context_reload_config): As in bus_context_new,
6376         load parse file inside here, and call process_config_every_time
6377         and process_config_postinit.
6378
6379         * bus/services.h, bus/services.c
6380         (bus_registry_set_service_context_table): Rename
6381         from bus_registry_set_sid_table.  Take string hash from config
6382         parser, and convert them here into SIDs.
6383
6384         * bus/config-parser.c (struct BusConfigParser): Have
6385         config parser only store a mapping of service->context
6386         string.
6387         (merge_service_context_hash): New function.
6388         (merge_included): Merge context string hashes instead
6389         of using bus_selinux_id_table_union.
6390         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6391         simply create a new string hash.
6392         (bus_config_parser_unref): Unref it.
6393         (start_selinux_child): Simply insert strings into hash,
6394         don't call bus_selinux_id_table_copy_over.
6395
6396         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6397         (bus_selinux_id_table_copy_over): Delete.
6398
6399 2004-11-03  Colin Walters  <walters@verbum.org>
6400
6401         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6402         variables.
6403         
6404 2004-11-03  Colin Walters  <walters@verbum.org>
6405
6406         * bus/test-main.c (test_pre_hook): Fix test logic,
6407         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6408
6409 2004-11-02  Colin Walters  <walters@redhat.com>
6410
6411         * bus/selinux.c (bus_selinux_init): Split into two functions,
6412         bus_selinux_pre_init and bus_selinux_post_init.
6413         (bus_selinux_pre_init): Just determine whether SELinux is
6414         enabled.
6415         (bus_selinux_post_init): Do everything else.
6416
6417         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6418         config file, and bus_selinux_post_init after.  This ensures that
6419         we don't lose the policyreload notification thread that
6420         bus_selinux_init created before forking previously.
6421         
6422         * bus/test-main.c (test_pre_hook): Update for split.
6423
6424 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6425
6426         Patch from Johan Fischer <linux@fischaz.com>
6427         
6428         * mono/doc/Makefile.am (install-data-local): Added directory
6429         install for DESTDIR
6430
6431 2004-10-29  Colin Walters  <walters@redhat.com>
6432
6433         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6434         parameter for fd to write pid to.       
6435
6436         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6437         
6438         * bus/bus.c (bus_context_new): Pass print_pid_fd
6439         to _dbus_become_daemon (bug #1720)
6440
6441 2004-10-29  Colin Walters  <walters@redhat.com>
6442
6443         Patch from Ed Catmur <ed@catmur.co.uk>
6444
6445         * mono/doc/Makefile.am (install-data-local): Handle
6446         DESTDIR.
6447
6448 2004-10-29  Colin Walters  <walters@redhat.com>
6449
6450         * bus/.cvsignore, qt/.cvsignore: Update.
6451
6452 2004-10-29  Colin Walters  <walters@redhat.com>
6453
6454         Patch from Kristof Vansant <de_lupus@pandora.be>
6455
6456         * configure.in: Detect Slackware.
6457         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6458         * bus/rc.messagebus.in: New file.
6459
6460 2004-10-29  Colin Walters  <walters@redhat.com>
6461
6462         * tools/dbus-monitor.c (filter_func): Return
6463         DBUS_HANDLER_RESULT_HANDLED in filter function
6464         for now.  See:
6465         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6466
6467 2004-10-29  Colin Walters  <walters@redhat.com>
6468
6469         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6470
6471         * bus/services.c (bus_registry_acquire_service): 
6472         Correctly retrieve service name from DBusString
6473         for printing.
6474
6475 2004-10-29  Colin Walters  <walters@redhat.com>
6476
6477         * dbus/dbus-glib.h: Update documentation to not
6478         refer to internal APIs.
6479
6480 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6481
6482         * mono/Arguments.cs (GetDBusTypeConstructor):
6483         type.UnderlyingSystemType will return "System.Byte" if you do it
6484         on "byte[]", which is not what we want.  So check the type.IsArray
6485         property and use System.Array instead.
6486
6487 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6488
6489         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6490         the DBusUserInfo structure since this is passed into the function.
6491         This would cause a double free when the function that allocated
6492         the structure would try to free it when an error occured.
6493
6494         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6495         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6496         for service activation to avoid 32bit/64bit parallel install issues
6497
6498 2004-10-21  Colin Walters  <walters@verbum.org>
6499
6500         * AUTHORS: Fix my email address, the @gnu.org one
6501         has been bouncing for some time.  Also add J5.
6502         
6503 2004-10-21  Colin Walters  <walters@verbum.org>
6504
6505         * dbus/dbus-transport-unix.c (do_authentication): Return
6506         authentication status to callers.
6507         (unix_handle_watch): If we completed authentication this round,
6508         don't do another read.  Instead wait until the next iteration,
6509         after we've read any pending data in the auth buffer.
6510         (unix_do_iteration): Ditto.
6511         (unix_handle_watch): Updated for new do_authentication prototype.
6512
6513 2004-10-18  Colin Walters  <walters@verbum.org>
6514
6515         * bus/selinux.c (bus_selinux_enabled): Handle
6516         --disable-selinux case.
6517         
6518 2004-10-18  Colin Walters  <walters@verbum.org>
6519
6520         * bus/selinux.h: Add bus_selinux_enabled.
6521         
6522         * bus/selinux.c (bus_selinux_enabled): Implement it.
6523         
6524         * bus/config-parser.c (struct include): Add
6525         if_selinux_enabled member.
6526         (start_busconfig_child): Parse if_selinux_enabled
6527         attribute for include.
6528         (bus_config_parser_content): Handle it.
6529
6530         * bus/session.conf.in, bus/system.conf.in: Add
6531         inclusion of context mapping to default config files;
6532         conditional on SELinux being enabled.
6533         
6534         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6535         
6536         * test/data/invalid-config-files/badselinux-1.conf, 
6537         test/data/invalid-config-files/badselinux-2.conf:
6538         Test files for bad syntax.
6539         
6540 2004-10-17  Colin Walters  <walters@verbum.org>
6541
6542         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6543         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6544         format specifier mismatches.
6545
6546 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6547
6548         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6549         format string.
6550
6551         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6552         pointer (bug #1540, Leonardo Boiko).
6553
6554 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6555
6556         * mono/BusDriver.cs: Changed BusDriver struct to remove
6557         the ServiceCreated and ServiceDeleted events and replace them
6558         with the new ServiceOwnerChanged event.
6559
6560         * mono/example/BusListener.cs: Added a new example program,
6561         which listens for and reports any ServiceOwnerChanged events
6562         on the bus driver.
6563
6564         * mono/example/Makefile.am (DESTDIR): Build changes for the
6565         new BusListener.cs example.
6566
6567 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6568
6569         * bus/signals.c (bus_match_rule_parse): validate the components of
6570         match rules (bug #1439).
6571
6572         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6573
6574 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6575
6576         * doc/dbus-specification.xml: document ServiceOwnerChanged
6577         signal.
6578         
6579         * bus/driver.c, bus/driver.h, bus/services.c: Use
6580         ServiceOwnerChanged signal instead of ServiceCreated and
6581         ServiceDeleted.
6582         
6583         * bus/dispatch.c: update testcase for the new signal.
6584
6585 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6586
6587         Patch from Nat Friedman <nat@novell.com>
6588
6589         * mono/Makefile.am: A number of small build fixes to allow "make
6590         distcheck" to succeed.
6591
6592         * mono/example/Makefile.am: "make distcheck" fixes.
6593
6594         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6595         key in @srcdir@.
6596
6597         * test/Makefile.am: "make distcheck" fixes.
6598
6599 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6600
6601         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6602
6603         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6604
6605         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6606         messages after the first one (bug #1389).
6607         
6608         * bus/dispatch.c (check_double_hello_message): add a test case for
6609         the double hello message bug.
6610         (check_existent_service_activation): fix check of spawning error.
6611         
6612 2004-09-16  David Zeuthen  <david@fubar.dk>
6613
6614         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6615
6616 2004-09-12  David Zeuthen  <david@fubar.dk>
6617
6618         Patch from Kay Sievers <kay.sievers@vrfy.org>
6619
6620         * bus/bus.c (bus_context_new):
6621         * bus/bus.h:
6622         * bus/main.c (usage)
6623         (main):
6624         Add commandline option --nofork to override configuration file
6625         setting.
6626
6627 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6628
6629         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6630         compilers don't like it (bug #974).
6631
6632 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6633
6634         * qt/connection.*: Applied patch by Jérôme Lodewyck
6635         <lodewyck@clipper.ens.fr> to integrate an existing
6636         connection into the Qt eventloop
6637
6638 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6639
6640         * mono/BusDriver.cs: Added.  This is a class for interacting with
6641         the org.freedesktop.DBus service.
6642
6643         * mono/Message.cs: Added a mechanism to expose the message that is
6644         currently being dispatched via the static Message.Current
6645         property.  Added Message.Sender and Message.Destination
6646         properties.
6647
6648         * mono/Handler.cs: Expose the dispatched message via
6649         Message.Current when handling method calls.
6650
6651         * mono/Service.cs: Expose the dispatched message via
6652         Message.Current when handling signal emissions.
6653         
6654         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6655         Connection.BaseService property.
6656
6657 2004-08-28  Havoc Pennington  <hp@redhat.com>
6658
6659         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6660
6661         More fixes from Steve Grubb
6662         
6663         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6664         (_dbus_listen_tcp_socket): fix fd leak
6665
6666         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6667         EINTR to a bit lower in the code
6668
6669 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6670
6671         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6672         TRUE if we are inquiring about the existence of the built-in
6673         org.freedesktop.DBus service.
6674
6675 2004-08-25  John Palmieri  <johnp@redhat.com>
6676         * bus/config-parser.c:
6677         (struct PolicyType): Add POLICY_CONSOLE
6678         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6679         (start_busconfig_child): Sets up console element when
6680         <policy at_console=""> is encountered in a policy file
6681         (append_rule_from_element): Convert console elements to console
6682         rules.
6683
6684         * bus/policy.c: 
6685         (bus_policy_create_client_policy): Add console rules to the client
6686         policy based on if the client is at the console
6687         (bus_policy_append_console_rule): New function for adding a
6688         console rule to a policy
6689         (bus_policy_merge): Handle console rule merging
6690
6691         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6692         where we check for console user files
6693         
6694         * dbus/dbus-sysdeps.c:
6695         (_dbus_file_exists): New function which checks if the given
6696         file exists
6697         (_dbus_user_at_console): New function which does the system
6698         specific process of checking if the user is at the console
6699
6700         * dbus/dbus-userdb.c:
6701         (_dbus_is_console_user): New function converts a UID to user name
6702         and then calls the system specific _dbus_user_at_console to 
6703         see if the user is at the console and therefor a console user
6704
6705 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6706
6707         * bus/config-parser.c (set_limit):
6708         * bus/dbus-daemon-1.1.in:
6709         * test/data/valid-config-files/many-rules.conf: set the
6710         max_match_rules_per_connection limt from the config file. 
6711
6712         * doc/busconfig.dtd: update the DTD.
6713
6714         * bus/driver.c: remove some unused variables.
6715
6716 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6717
6718         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6719         it's been replaced by dbus_g_bus_get
6720
6721 2004-08-23  Colin Walters  <walters@redhat.com>
6722
6723         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6724
6725         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6726
6727         * bus/selinux.c: Create a thread for policy reload notification.
6728         (bus_selinux_get_policy_root): Implement.
6729
6730         * bus/config-parser.c (start_busconfig_child)
6731         (bus_config_parser_content): Support SELinux-root relative
6732         inclusion.
6733
6734         * configure.in <HAVE_SELINUX>: Add -lpthread.
6735         
6736         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6737         (test_post_hook): Move memory checking into here.
6738         (test_pre_hook, test_post_hook): Move SELinux checks in
6739         here, but conditional on a DBUS_TEST_SELINUX environment
6740         variable.  Unfortunately we can't run the SELinux checks
6741         as a normal user, since they won't have any permissions
6742         for /selinux.  So this will have to be tested manually
6743         for now, until we have virtualization for most of
6744         libselinux.
6745         
6746 2004-08-23  Havoc Pennington  <hp@redhat.com>
6747
6748         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6749         drop supplementary groups, suggested by Steve Grubb
6750
6751 2004-08-20  Colin Walters  <walters@redhat.com>
6752
6753         * bus/config-parser.c (start_busconfig_child): Remove some unused
6754         variables.
6755         
6756         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6757         warning.
6758
6759 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6760
6761         * configure.in: If --enable-mono is passed in, if we can't find
6762         mono error out.
6763
6764         * mono/Makefile.am: Use /gacutil to install assemblies into the
6765         GAC and not /root.
6766
6767 2004-08-12  Havoc Pennington  <hp@redhat.com>
6768
6769         * NEWS: update for 0.22
6770
6771         * configure.in: release 0.22
6772
6773 2004-08-11  Colin Walters  <walters@redhat.com>
6774
6775         * tools/dbus-send.c (main, usage): Add --reply-timeout
6776         argument.
6777
6778 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6779
6780         * bus/bus.c (process_config_first_time_only): get rid of an unused
6781         DBusError that was causing a memoy leak (bug #989).
6782
6783         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6784         fix compilation on Solaris/Forte C (bug #974)
6785
6786         * bus/main.c (main): plug two minuscule memleaks.
6787
6788 2004-08-10  Havoc Pennington  <hp@redhat.com>
6789
6790         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6791
6792 2004-08-09  Havoc Pennington  <hp@redhat.com>
6793
6794         * COPYING: switch to Academic Free License version 2.1 instead of
6795         2.0, to resolve complaints about patent termination clause.
6796
6797 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6798
6799         * README: added documentation for the --enable-python 
6800         configure switch.
6801
6802 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6803
6804         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6805         _unref in the SELinux support.
6806
6807         * doc/busconfig.dtd: update DTD for SELinux support.
6808
6809         * bus/config-loader-libxml.c: fix error handler and parser
6810         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6811
6812         * configure.in: remove the warning about libxml2.
6813
6814         * dbus/dbus-bus.c: silence doxygen warning.
6815
6816 2004-07-31  Colin Walters  <walters@redhat.com>
6817
6818         * configure.in: Move #error in SELinux check to its own line.
6819
6820 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6821
6822         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6823         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6824         dbus_error_set.
6825
6826         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6827         broken by the change in the _SET_OOM macros.
6828
6829 2004-07-31  Colin Walters  <walters@redhat.com>
6830
6831         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6832         BUS_SET_OOM.
6833
6834 2004-07-31  Colin Walters  <walters@redhat.com>
6835
6836         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6837         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6838         AC_MSG_CHECKING.
6839
6840 2004-07-24  Havoc Pennington  <hp@redhat.com>
6841
6842         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6843
6844         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6845         functionality
6846
6847         * configure.in: add --enable-selinux
6848         
6849         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6850
6851         * bus/main.c (main): initialize and shut down selinux
6852
6853         * bus/connection.c: store SELinux ID on each connection, to avoid 
6854         repeated getting of the string context and converting it into 
6855         an ID
6856
6857         * bus/bus.c (bus_context_get_policy): new accessor, though it
6858         isn't used
6859         (bus_context_check_security_policy): check whether the security
6860         context of sender connection can send to the security context of
6861         recipient connection
6862
6863         * bus/config-parser.c: add parsing for <selinux> and <associate>
6864         
6865         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6866         implement dbus_connection_get_unix_fd()
6867
6868         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6869         function, used by the selinux stuff
6870         
6871 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6872
6873         * bus/config-loader-libxml.c: complete the implementation of
6874         libxml backend for config file loader. Doesn't work with full OOM
6875         test yet. 
6876         
6877         * configure.in: change error when selecting libxml into a warning.
6878         
6879         * test/data/invalid-config-files: add two non-well-formed XML
6880         files. 
6881         
6882         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6883         
6884         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6885         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6886         be necessary to read all the buffer. (bug #894)
6887
6888         * bus/activation.c (bus_activation_activate_service): fix a
6889         potential assertion failure (bug #896). Small optimization in the
6890         case of auto-activation messages.
6891
6892         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6893         add test case for byte-through-vararg bug (#901). patch by Kimmo
6894         Hämäläinen. 
6895
6896 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6897
6898         * python/dbus.py:
6899         * python/dbus_bindings.pyx.in:
6900         Add dbus.init_gthreads (), allow emit_signal to pass
6901         arguments to the signal.
6902         
6903 2004-07-24  Havoc Pennington  <hp@redhat.com>
6904
6905         * AUTHORS: add some people, not really comprehensively, let me
6906         know if I missed you
6907
6908 2004-07-24  Havoc Pennington  <hp@redhat.com>
6909
6910         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6911         Owen
6912
6913         * test/Makefile.am (DIST_SUBDIRS): here also
6914
6915 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6916
6917         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6918         breaking build on Solaris, reported by Farhad Saberi on the ML.
6919
6920         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6921         va_arg invocation to account for integer promotion in the case of
6922         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6923
6924         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6925         _dbus_list_get_first_link, not _dbus_list_get_first.
6926
6927         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6928
6929         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6930         handler functions so that the asserts in _dbus_object_subtree_unref
6931         do not fail.
6932
6933         * dbus/dbus-transport-unix.c (do_reading):
6934         _dbus_transport_queue_messages return value is of type
6935         dbus_bool_t, not DBusDispatchStatus.
6936         
6937 2004-07-19  David Zeuthen  <david@fubar.dk>
6938
6939         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6940
6941         * bus/dispatch.c:
6942         (check_get_connection_unix_user): Debug says GetProperty; but the
6943         method is called GetConnectionUnixUser
6944         (check_get_connection_unix_process_id): New function
6945         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6946         also call check_get_connection_unix_process_id()
6947         
6948         * bus/driver.c:
6949         (bus_driver_handle_get_connection_unix_process_id): New function,
6950         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6951         interface
6952         
6953         * dbus/dbus-auth.c:
6954         (handle_server_data_external_mech): Set pid from the credentials
6955         obtained from the socket
6956         
6957         * dbus/dbus-connection.c:
6958         (dbus_connection_get_unix_process_id): New function
6959         
6960         * dbus/dbus-connection.h: 
6961         Add prototype for dbus_connection_get_unix_process_id
6962         
6963         * dbus/dbus-transport.c:
6964         (_dbus_transport_get_unix_process_id): New function
6965         
6966         * dbus/dbus-transport.h:
6967         Add prototype for _dbus_transport_get_unix_process_id
6968         
6969 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6970
6971         * dbus/dbus-message.c: Message counter fix, patch by Christian
6972         Hammond <chipx86@gnupdate.org>
6973
6974 2004-07-18  Seth Nickell  <seth@gnome.org>
6975
6976         * python/dbus.py:
6977         * python/dbus_bindings.pyx.in:
6978         * python/tests/test-client.py:
6979
6980         Add dbus.ByteArray and dbus_bindings.ByteArray
6981         types so that byte streams can be passed back.
6982
6983         Give jdahlin the heaps of credit that are so
6984         rightfully his.
6985         
6986 2004-07-12  Seth Nickell  <seth@gnome.org>
6987
6988         * python/dbus.py:
6989
6990         Add message argument to the default object_method_handler
6991         function.
6992         
6993         * python/dbus_bindings.pyx.in:
6994
6995         Automatically return NIL when passed an empty list
6996         (we can't pass back a list since lists are typed
6997         and we don't have any idea what type the the client
6998         intended the list to be... :-( )
6999         
7000 2004-07-10  Seth Nickell  <seth@gnome.org>
7001
7002         * python/examples/Makefile.am:
7003
7004         Fix distcheck breakage caused by new examples.
7005
7006 2004-07-10  Seth Nickell  <seth@gnome.org>
7007
7008         * python/dbus.py:
7009
7010         Add "message" argument to service-side dbus.Object
7011         methods. This will break existing services written
7012         using the python bindings, but will allow extraction
7013         of all the message information (e.g. who its from).
7014
7015         Add improved "object oriented" signal handling/emission.
7016         
7017         * python/examples/example-service.py:
7018
7019         Nix this example.
7020         
7021         * python/examples/example-signal-emitter.py:
7022         * python/examples/example-signal-recipient.py:
7023
7024         Two new examples that show how to emit and receive
7025         signals using the new APIs.
7026         
7027         * python/examples/example-signals.py:
7028         * python/examples/gconf-proxy-service.py:
7029         * python/examples/gconf-proxy-service2.py:
7030
7031         Add "message" argument to service methods.
7032
7033 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7034
7035         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7036         * dbus/bus.c (dbus_bus_get_unix_user)
7037         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7038         method of org.freedesktop.DBus interface.
7039
7040         * bus/dispatch.c: test case
7041
7042 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7043
7044         * python/Makefile.am: switched include directory from glib/ to dbus/
7045         since dbus-glib.h moved
7046  
7047 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7048
7049         * configure.in: prevent building the gcj stuff and libxml loader
7050         since they are broken.
7051
7052 2004-06-20  Havoc Pennington  <hp@redhat.com>
7053
7054         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7055         codes from the dbus error names
7056         
7057         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7058         as dbus/dbus-glib.h and that breakage is now visible due to 
7059         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7060         
7061         * glib/dbus-glib.h: s/gproxy/g_proxy/
7062
7063         * dbus/dbus-shared.h: new header to hold stuff shared with
7064         binding APIs
7065         
7066         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7067         than dbus-errors.h
7068
7069         * glib/dbus-glib.h (dbus_set_g_error): move to
7070         dbus-glib-lowlevel.h
7071
7072         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7073         of stuff to enable this
7074
7075         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7076
7077         * a bunch of other changes with the same basic "separate glib 
7078         bindings from dbus.h" theme
7079         
7080 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7081
7082         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7083
7084         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7085
7086 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7087
7088         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7089         the reply value of the ServiceExists message.
7090
7091 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7092
7093         * python/dbus_bindings.pyx.in: No longer need to parse path
7094         elements and pass them as arrays of strings.  The C API now
7095         accepts plain path strings.
7096         (_build_parsed_path): removed 
7097
7098 2004-06-07  Havoc Pennington  <hp@redhat.com>
7099
7100         * doc/TODO: remove auto-activation item since it's done; sort
7101         items by importance/milestone
7102
7103 2004-06-07  Havoc Pennington  <hp@redhat.com>
7104
7105         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7106         random signature when using REQUIRED_FIELDS (this hack won't work
7107         in the long term)
7108
7109         * dbus/dbus-message.c: change the signature to be a header field,
7110         instead of message->signature special-case string. Incremental
7111         step forward. Then we can fix up code to send the signature in the
7112         message, then fix up code to validate said signature, then fix up
7113         code to not put the typecodes inline, etc.
7114         (load_one_message): don't make up the signature after the fact
7115         (decode_header_data): require signature field for the known
7116         message types
7117
7118         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7119
7120         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7121
7122 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7123
7124         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7125
7126         * mono/Handler.cs: Updated to follow new path argument for
7127         (un-)registering objects.
7128
7129         * mono/example/Makefile.am:
7130         * mono/Makefile.am:
7131         * configure.in: Bumped required version for mono and use new -pkg
7132         syntax for deps
7133
7134 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7135
7136         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7137         registration functions take the path argument as char* instead of
7138         char**.
7139
7140         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7141         split off the path decompostion part of
7142         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7143         warnings. 
7144
7145         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7146         
7147 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7148  
7149         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7150         machine approach.  A state is implemented as a function that
7151         handles incoming events as specified for that state.
7152         
7153         * doc/dbus-specification.xml: Update auth protocol state machine
7154         specification to match implementation.  Remove some leftover
7155         base64 examples.
7156
7157 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7158
7159         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7160         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7161         quiet doxygen.
7162
7163         * Doxyfile.in: remove deprecated options.
7164
7165         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7166         glib/test-thread.h, glib/test-thread-client.c,
7167         glib/test-thread-server.c, glib/test-profile.c,
7168         glib/test-dbus-glib.c: remove these unused files.
7169
7170 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7171
7172         * dbus/dbus-object-tree.c
7173         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7174         non-fallback handlers (bug #684).
7175         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7176         (find_subtree_recurse): report wether the returned subtree is an
7177         exact match or a "fallback" match higher up in the tree.
7178         (object_tree_test_iteration): update test case.
7179
7180 2004-06-01  Seth Nickell  <seth@gnome.org>
7181
7182         * python/dbus_bindings.pyx.in:
7183         * python/tests/test-client.py:
7184
7185         Round off basic type support. Add dicts (yay!), and 
7186         remaining array types.
7187
7188         Make MessageIter more general so it works for dicts too.
7189
7190         Mark all loop variables as C integers.
7191         
7192 2004-05-31  Havoc Pennington  <hp@redhat.com>
7193
7194         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7195         "in" before "out"
7196
7197         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7198
7199         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7200         option that runs the tests, and start filling in some code
7201         including for starters just dumping the interfaces to stdout
7202
7203         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7204
7205         * test/data/valid-introspection-files/lots-of-types.xml: test of
7206         an example introspection file
7207
7208         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7209         "node" (I think...)
7210
7211 2004-05-31  Seth Nickell  <seth@gnome.org>
7212
7213         * python/dbus_bindings.pyx.in:
7214         * python/tests/test-client.py:
7215
7216         Test Suite: 1
7217         Python Bindings: 0
7218
7219         Fix string array memory trashing bug... oops...
7220
7221 2004-05-30  Seth Nickell  <seth@gnome.org>
7222
7223         * python/dbus.py:
7224
7225         Add a nicer-but-less-flexible alternate API for handling 
7226         calls to virtual objects in dbus.ObjectTree.
7227
7228         Screw up the argument order to the dbus.Object constructor
7229         for consistency with dbus.ObjectTree (and to make dbus_methods
7230         optional for future extension)
7231         
7232         * python/examples/Makefile.am:
7233         * python/examples/gconf-proxy-service.py:
7234         * python/examples/gconf-proxy-service2.py:
7235
7236         Alternate implementation of gconf-proxy-service using the
7237         nicer dbus.ObjectTree API.
7238         
7239         * python/examples/example-service.py:
7240         * python/tests/test-server.py
7241
7242         Reverse the argument order to deal with dbus.Object constructor
7243         changes.
7244         
7245 2004-05-30  Seth Nickell  <seth@gnome.org>
7246
7247         * python/examples/example-client.py:
7248         * python/examples/example-service.py:
7249
7250         Take it back. Lists seem to work but they're broken
7251         in the test suite. Make the base examples use
7252         lists (works fine).
7253
7254 2004-05-30  Seth Nickell  <seth@gnome.org>
7255
7256         * python/dbus_bindings.pyx.in:
7257         * python/tests/test-client.py:
7258
7259         Add some more tests and fix errors that crop up.
7260         Unfortunately, currently it seems like marshalling
7261         and unmarshalling of lists is completely broken :-(
7262
7263 2004-05-30  Seth Nickell  <seth@gnome.org>
7264
7265         * python/dbus_bindings.pyx.in:
7266
7267         Add support for ObjectPath type.
7268
7269         * python/dbus.py:
7270
7271         Refactor message handling code to a common function.
7272         
7273         * python/tests/test-client.py:
7274         * python/tests/test-server.py:
7275
7276         Add tests that check to make sure values of all types
7277         can be echoed from a service w/o mangling.
7278         
7279 2004-05-29  Seth Nickell  <seth@gnome.org>
7280
7281         * python/dbus.py:
7282
7283         Add ObjectTree class which allows implementation
7284         of trees of "virtual" objects. Basically the python
7285         wrapper for "register_fallback".
7286         
7287         * python/examples/Makefile.am
7288         * python/examples/gconf-proxy-client.py:
7289         * python/examples/gconf-proxy-service.py:
7290
7291         Implement a simple GConf proxy service that supports
7292         get/set on string and int GConf keys using the ObjectTree.
7293         
7294 2004-05-29  Seth Nickell  <seth@gnome.org>
7295
7296         * python/dbus.py:
7297         * python/examples/example-client.py:
7298         * python/examples/example-service.py:
7299         * python/examples/list-system-services.py:
7300
7301         Add SessionBus, SystemBus and ActivationBus classes
7302         so you don't need to know the special little BUS_TYPE
7303         flag.
7304         
7305 2004-05-29  Havoc Pennington  <hp@redhat.com>
7306
7307         * bus/config-parser.c (process_test_valid_subdir): temporarily
7308         stop testing config parser OOM handling, since expat has issues
7309         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7310
7311         * bus/dbus-daemon-1.1.in: change requested_reply to
7312         send_requested_reply/receive_requested_reply so we can send the
7313         replies, not just receive them.
7314
7315         * bus/config-parser.c: parse the new
7316         send_requested_reply/receive_requested_reply
7317
7318         * bus/policy.c (bus_client_policy_check_can_send): add
7319         requested_reply argument and use it
7320
7321         * bus/bus.c (bus_context_check_security_policy): pass through
7322         requested_reply status to message send check
7323
7324         * bus/system.conf.in: adapt to requested_reply change
7325         
7326 2004-05-28  Havoc Pennington  <hp@redhat.com>
7327
7328         * test/glib/test-service-glib.c (main): remove unused variable
7329
7330         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7331
7332         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7333         from the enum, no longer in use.
7334
7335         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7336         works right.
7337
7338         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7339         whether error_name passed in is a valid error name.
7340
7341 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7342
7343         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7344         OBJECT_PATH and OBJECT_PATH_ARRAY
7345
7346 2004-05-28  Seth Nickell  <seth@gnome.org>
7347
7348         * python/examples/Makefile.am:
7349
7350         Forget to add Makefile.am. Do not pass go.
7351
7352 2004-05-28  Michael Meeks  <michael@ximian.com>
7353
7354         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7355         fix no int64 case.
7356
7357         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7358
7359         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7360         (_dbus_message_iter_get_basic_type_array): impl.
7361         drastically simplify ~all relevant _get methods to use these.
7362         (_dbus_message_iter_append_basic_array),
7363         (dbus_message_iter_append_basic): impl
7364         drastically simplify ~all relevant _append methods to use these.
7365
7366         * dbus/dbus-message-builder.c (parse_basic_type) 
7367         (parse_basic_array, lookup_basic_type): impl.
7368         (_dbus_message_data_load): prune scads of duplicate /
7369         cut & paste coding.
7370
7371         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7372         (_dbus_demarshal_basic_type): implement,
7373         (demarshal_and_validate_len/arg): beef up debug.
7374         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7375
7376 2004-05-27  Seth Nickell  <seth@gnome.org>
7377
7378         * configure.in:
7379         * python/Makefile.am:
7380
7381         Include the example python apps in the tarball.
7382         
7383         * python/examples/list-system-services.py
7384
7385         Add a python new example that fetches the list of services
7386         from the system bus.
7387         
7388 2004-05-27  Seth Nickell  <seth@gnome.org>
7389
7390         * python/dbus.py:
7391         * python/dbus_bindings.pyx.in:
7392
7393         Fix failure to notify that a signal was not handled,
7394         resulted in hung functions.
7395         
7396 2004-05-25  Colin Walters  <walters@redhat.com>
7397
7398         * tools/dbus-monitor.c (main): Monitor all types of messages.
7399
7400 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7401
7402         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7403         which unregisters the object path and disposes the handler.
7404
7405 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7406  
7407         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7408          
7409         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7410         operands to && so we call dbus_message_iter_next () for the last
7411         argument also.
7412
7413 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7414
7415         * dbus/dbus-object-tree.c
7416         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7417         children even if the requested path isn't registered.
7418         (object_tree_test_iteration): test object_tree_list_registered.
7419
7420         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7421         it to 0.
7422         
7423 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7424
7425         * doc/TODO: Remove resolved items.
7426
7427         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7428         field.
7429         
7430         * bus/connection.c (bus_connections_expect_reply): Enforce the
7431         per-connection limit on pending replies.
7432         
7433         Patch from Jon Trowbridge <trow@ximian.com>:
7434  
7435         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7436         up a watch that triggers a config reload when one end of the pipe
7437         becomes readable.
7438         (signal_handler): Instead of doing the config reload in our SIGHUP
7439         handler, just write to the reload pipe and let the associated
7440         watch handle the reload when control returns to the main loop.
7441  
7442         * bus/driver.c (bus_driver_handle_reload_config): Added.
7443         Implements a ReloadConfig method for requesting a configuration
7444         file reload via the bus driver.
7445  
7446 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7447
7448         * HACKING: Updated release instructions concerning the wiki page.
7449
7450 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7451
7452         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7453         filter against auth->allowed_mechs; we only add allowed mechs in
7454         record_mechanisms().
7455  
7456         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7457         ALLOWED_MECHS to auth-script format so we can set the list of
7458         allowed mechanisms.
7459  
7460         * data/auth/client-out-of-mechanisms.auth-script: New test to
7461         check client disconnects when it is out of mechanisms to try.
7462  
7463         * dbus/dbus-auth.c (process_command): Remove check for lines
7464         longer that 1 MB; we only buffer up maximum 16 kB.
7465  
7466         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7467         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7468         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7469         assume there might be unused bytes.
7470  
7471         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7472         client-out-of-mechs, it is handled in process_reject(). Move check
7473         for max failures to send_rejected(), as it's a server-only thing.
7474
7475         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7476         send_auth(), send_data(), send_rejected(), send_error(),
7477         send_ok(), send_begin() and send_cancel().
7478
7479 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7480
7481         Remove base64 encoding, replace with hex encoding. Original patch
7482         from trow@ximian.com, added error handling.
7483
7484         * dbus/dbus-string.c (_dbus_string_base64_encode)
7485         (_dbus_string_base64_decode): Remove.
7486         (_dbus_string_hex_decode): Add end_return argument so we can
7487         distinguish between OOM and invalid hex encoding.
7488         (_dbus_string_test): Remove base64 tests and add test case for
7489         invalid hex.
7490
7491         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7492         Replace base64 with hex.
7493
7494         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7495         for invalid hex encoded data in auth protocol.
7496
7497 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7498
7499         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7500         leak.
7501
7502 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7503
7504         * mono/dbus-sharp.dll.config.in: Added for GAC
7505         * mono/dbus-sharp.snk: Added for GAC
7506         * mono/Assembly.cs.in: Added for GAC
7507         * mono/Makefile.am: Changes for GAC installation        
7508         * configure.in: Added refs for dbus-sharp.dll.config.in and
7509         Assembly.cs.in. More fixes for mono testing
7510         * mono/example/Makefile.am: Changed var to CSC
7511         * Makefile.am: Changed flag name to DBUS_USE_CSC
7512
7513 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7514
7515         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7516         * mono/doc/*: Added documentation framework
7517         * configure.in: Added monodoc check
7518         * README: Added description of mono configure flags
7519
7520 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7521
7522         * doc/dbus-specification.xml: Added a "Required" column to the 
7523         header fields table and changed the "zero or more" verbage in
7524         the above paragraph to read "The header must contain the required 
7525         named header fields and zero or more of the optional named header 
7526         fields".
7527         * test/data/invalid-messages/*.message: Added the required PATH 
7528         named header field to the tests so that they don't fail on 
7529         'Missing path field'
7530
7531 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7532
7533         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7534         the stack by implicitly defining variable and parameter types and
7535         removing the hack of defining C pointers as python objects and later
7536         casting them.
7537
7538 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7539
7540         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7541
7542 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7543
7544         * mono/DBusType/Dict.cs: Handle empty dicts
7545         * mono/DBusType/Array.cs: Handle empty arrays
7546         * mono/Arguments.cs: Handle empty arguments
7547
7548 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7549
7550         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7551         field
7552
7553 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7554
7555         * test/data/valid-messages/standard-*.message: Update message
7556         test scripts to new header field names.
7557
7558 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7559
7560         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7561         overflow to times_we_did_each_thing array which would chop off the
7562         first character of the failure_dir string. Increased the size of
7563         the array to 7 to reflect the number of random mutation functions
7564         we have.
7565
7566 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7567
7568         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7569         unix_server->watch here, it is unreffed in disconnect.
7570         (_dbus_server_new_for_tcp_socket): convert NULL host to
7571         "localhost" here so we don't append NULL to address.
7572         
7573         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7574         various addresses, including tcp with no explicit host.
7575
7576 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7577
7578         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7579         fix incorrect setting of .name_offset in the HeaderField (it was
7580         off by two bytes, positioned right after the name and typecode)
7581
7582         * bus/bus.c (bus_context_new, bus_context_unref): test before
7583         calling dbus_server_free_data_slot and _dbus_user_database_unref
7584         in case of an error.
7585
7586         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7587         by libdbus-gtool.
7588
7589 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7590
7591         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7592         _dbus_poll() instead of select().
7593
7594 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7595
7596         * bus/main.c (signal_handler): Reload the configuration files
7597         on SIGHUP.
7598         (main): Set up our SIGHUP handler.
7599
7600         * bus/bus.c (struct BusContext): Store the config file, user and
7601         fork flag in the BusContext.
7602         (process_config_first_time_only): Added.  Contains the code
7603         (previously in bus_context_new) for setting up the BusContext from
7604         the BusConfigParser that should only be run the first time the
7605         config files are read.
7606         (process_config_every_time): Added.  Contains the code (previously
7607         in bus_context_new) for setting up the BusContext from the
7608         BusConfigParser that should be run every time the config files are
7609         read.
7610         (load_config): Added.  Builds a BusConfigParser from the config
7611         files and passes the resulting structure off to
7612         process_config_first_time_only (assuming this is the first time)
7613         and process_config_every_time.
7614         (bus_context_new): All of the config-related code has been moved
7615         to process_config_first_time_only and process_config_every_time.
7616         Now this function just does the non-config-related initializations
7617         and calls load_config.
7618         (bus_context_reload_config): Added.
7619
7620 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7621
7622         * bus/driver.c (bus_driver_handle_get_service_owner):
7623         implement a GetServiceOwner method.
7624         * doc/dbus-specification.xml: document it.
7625         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7626         
7627         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7628         implement, using the bus GetServiceOwner method.
7629
7630         * test/glib/test-dbus-glib.c:
7631         use dbus_gproxy_new_for_service_owner so that we can receive the
7632         signal. 
7633
7634 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7635
7636         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7637         dbus/dbus-message.c, dbus/dbus-protocol.h
7638         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7639
7640         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7641         dbus/dbus-message.c, dbus/dbus-protocol.h
7642         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7643
7644         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7645         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7646         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7647
7648         * doc/dbus-specification.xml (Header Fields Table):
7649         s/SERVICE/DESTINATION
7650         s/SENDER_SERVICE/SENDER
7651
7652
7653 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7654
7655         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7656         a few seconds.
7657
7658 2004-04-13  Michael Meeks  <michael@ximian.com>
7659
7660         * glib/dbus-gobject.c (handle_introspect): split out
7661         (introspect_properties): this.
7662         (handle_introspect): implement this.
7663
7664         * test/glib/Makefile.am: use the absolute path so the bus
7665         daemon's chdir ("/") doesn't kill us dead.
7666
7667         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7668
7669 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7670
7671         * bus/config-parser.c (struct BusConfigParser): Added
7672         included_files field.
7673         (seen_include): Added.  Checks whether or not a file has already
7674         been included by any parent BusConfigParser.
7675         (bus_config_parser_new): Copy the parent's included_files.
7676         (include_file): Track which files have been included, and fail on
7677         circular inclusions.
7678         (process_test_valid_subdir): Changed printf to report if we are
7679         testing valid or invalid conf files.
7680         (all_are_equiv): Changed printf to be a bit clearer about
7681         what we are actually doing.
7682         (bus_config_parser_test): Test invalid configuration files.
7683
7684 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7685
7686         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7687         argument.  If non-null, the newly-constructed BusConfigParser will
7688         be initialized with the parent's BusLimits instead of the default
7689         values.
7690         (include_file): When including a config file, pass in
7691         the current parser as the parent and then copy the BusLimits
7692         from the included BusConfigParser pack to the current parser.
7693         (process_test_valid_subdir): Renamed from process_test_subdir.
7694         (process_test_equiv_subdir): Added.  Walks through a directory,
7695         descending into each subdirectory and loading the config files
7696         it finds there.  If any subdirectory contains two config files
7697         that don't produce identical BusConfigParser structs, fail.
7698         For now, the BusConfigParser's BusPolicies are not compared.
7699         (bus_config_parser_test): Call both process_test_valid_subdir and
7700         process_test_equiv_subdir.
7701
7702         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7703         argument and pass it along to the call to bus_config_parser_new.
7704         Also made a few small changes to allow this code to compile.
7705
7706         * bus/config-loader-expat.c (bus_config_load): Take a parent
7707         argument and pass it along to the call to bus_config_parser_new.
7708
7709         * bus/bus.c (bus_context_new): Load the config file
7710         with a NULL parent argument.
7711
7712 2004-03-29  Michael Meeks  <michael@ximian.com>
7713
7714         * glib/dbus-gobject.c (introspect_properties): split
7715         out, fix mangled 'while' flow control.
7716         (introspect_signals): implement.
7717         (handle_introspect): update.
7718
7719 2004-03-29  Michael Meeks  <michael@ximian.com>
7720
7721         * glib/dbus-gobject.c (set_object_property): split out / 
7722         re-work, use the property type, and not the message type(!)
7723         (get_object_property): ditto.
7724
7725         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7726         (dbus_gvalue_marshal): make this code re-usable, needed
7727         for signals too, also on both proxy and server side.
7728         Re-write for more efficiency / readability.
7729
7730 2004-03-29  Michael Meeks  <michael@ximian.com>
7731
7732         * dbus/dbus-message.c
7733         (dbus_message_new_error_printf): impl.
7734
7735         * dbus/dbus-connection.c
7736         (dbus_connection_unregister_object_path): fix warning.
7737
7738         * configure.in: fix no-mono-installed situation.
7739
7740 2004-03-27  Havoc Pennington  <hp@redhat.com>
7741
7742         Patch from Timo Teräs:
7743         
7744         * tools/dbus-send.c (main): if --print-reply, assume type is
7745         method call; support boolean type args
7746         
7747         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7748         bunch of memleak and logic bugs
7749         
7750 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7751
7752         * mono/Arguments.cs:
7753         * mono/Introspector.cs:
7754         * mono/Handler.cs:
7755         * mono/InterfaceProxy.cs:
7756         * mono/Message.cs
7757         * mono/ProxyBuilder.cs:
7758         * mono/Service.cs:
7759         Added InterfaceProxy class to avoid building proxies for every
7760         object.
7761
7762         * dbus-message.h:
7763         * dbus-message.c (dbus_message_append_args_valist)
7764         (dbus_message_iter_get_object_path)
7765         (dbus_message_iter_get_object_path_array)
7766         (dbus_message_iter_append_object_path)
7767         (dbus_message_iter_append_object_path_array):
7768         Added object_path iter functions to handle OBJECT_PATH arguments
7769         
7770 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7771
7772         First checkin of mono bindings.
7773         * configure.in:
7774         * Makefile.am:
7775         Build stuff for the bindings
7776         * dbus-sharp.pc.in: Added for pkgconfig
7777         
7778 2004-03-21  Havoc Pennington  <hp@redhat.com>
7779
7780         * test/test-service.c (main): remove debug spew
7781
7782 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7783
7784         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7785         arrays
7786
7787         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7788         (dbus_message_iter_init_array_iterator)
7789         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7790         indicate whether the iterator is empty
7791
7792         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7793         warnings
7794
7795 2004-03-19  Havoc Pennington  <hp@redhat.com>
7796
7797         * NEWS: 0.21 updates
7798
7799         * configure.in: 0.21
7800
7801         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7802         
7803         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7804         you don't need pyrex to make dist
7805
7806         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7807         sources; run moc
7808         
7809 2004-03-18  Richard Hult  <richard@imendio.com>
7810
7811         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7812         (dbus_message_set_auto_activation): Add doxygen docs.
7813
7814 2004-03-16  Richard Hult  <richard@imendio.com>
7815
7816         * bus/activation.c: (bus_activation_service_created),
7817         (bus_activation_send_pending_auto_activation_messages),
7818         (bus_activation_activate_service):
7819         * bus/activation.h:
7820         * bus/dispatch.c: (bus_dispatch),
7821         (check_nonexistent_service_auto_activation),
7822         (check_service_auto_activated),
7823         (check_segfault_service_auto_activation),
7824         (check_existent_service_auto_activation), (bus_dispatch_test):
7825         * bus/driver.c: (bus_driver_handle_activate_service):
7826         * bus/services.c: (bus_registry_acquire_service):
7827         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7828         (dbus_message_get_auto_activation):
7829         * dbus/dbus-message.h:
7830         * dbus/dbus-protocol.h: Implement auto-activation.
7831         
7832         * doc/dbus-specification.xml: Add auto-activation to the spec.
7833
7834 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7835
7836         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7837         fix a bug with CUSTOM types.
7838
7839         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7840         a unit test for this bug (used to fail).
7841
7842 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7843
7844         * bus/activation.c:
7845         (babysitter_watch_callback): notify all pending activations waiting for
7846           the same exec that the activation failed.
7847         (bus_activation_activate_service): shortcut the activation if we 
7848           already waiting for the same executable to start up.
7849
7850 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7851
7852         * bus/activation.c: 
7853         - Added service file reloading. 
7854           Each service files directory is kept in an hash table in 
7855           BusActivation and each BusActivationEntry knows what .service-file it
7856           was read from. So when you try to activate a service the bus will 
7857           check if it's been updated, removed or if new .service-files has 
7858           been installed.
7859         - Test code at the bottom for the service file reloading.
7860         * bus/test-main.c: (main):
7861         * bus/test.h:
7862         - added service reloading test.
7863         * dbus/dbus-sysdeps.c: 
7864         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7865
7866 2004-03-08  Michael Meeks  <michael@ximian.com>
7867
7868         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7869         bail immediately if disconnected, to avoid busy loop.
7870
7871         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7872         cleanup cut/paste/inefficiency.
7873
7874 2004-03-01  David Zeuthen  <david@fubar.dk>
7875
7876         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7877         bug where args were used twice. This bug resulted in a segfault
7878         on a Debian/PPC system when starting the messagebus daemon. Include
7879         dbus-sysdeps.h for DBUS_VA_COPY
7880
7881         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7882
7883         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7884         appropriate va_copy implementation. From GLib
7885         
7886 2004-02-24  Joe Shaw  <joe@ximian.com>
7887
7888         * bus/services.c (bus_registry_acquire_service): We need to pass
7889         in the service name to dbus_set_error() to prevent a crash.
7890
7891 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7892
7893         * AUTHORS: Reveal my True identity.
7894
7895 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7896
7897         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7898         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7899
7900 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7901
7902         * doc/TODO: Added not about better error check of configuration files.
7903
7904 2003-12-02  Richard Hult  <richard@imendio.com>
7905
7906         * Update AFL version to 2.0 throughout the source files to reflect
7907         the update that was done a while ago.
7908
7909 2003-12-02  Richard Hult  <richard@imendio.com>
7910
7911         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7912         wrote_dict_key to FALSE on the iter that the dict is appended to,
7913         just like when appending other types. Fixes a bug where a dict
7914         couldn't be put inside a dict.
7915         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7916         (message_iter_test, _dbus_message_test): Add test case for dict
7917         inside dict.
7918
7919 2003-12-01  David Zeuthen  <david@fubar.dk>
7920
7921         * python/dbus.py: Add the actual message when calling the reciever
7922         of a signal such that parameters can be inspected. Add the method
7923         remove_signal_receiver
7924         
7925 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7926
7927         * bus/*.[ch]:
7928         * dbus/*.[ch]:
7929         * glib/*.[ch]: Made ref functions return the pointer
7930
7931 2003-11-25  Zack Rusin  <zack@kde.org>
7932
7933         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7934
7935         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7936         wrappers,
7937
7938         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7939         the Integrator and to better fit with the server,
7940
7941 2003-11-24  Zack Rusin  <zack@kde.org>
7942
7943         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7944         the integrator handles it now
7945
7946         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7947         since QTimer wasn't really meant to be used the way DBusTimeout is
7948
7949 2003-11-24  Zack Rusin  <zack@kde.org>
7950
7951         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7952         Integrator class which integrates D-BUS with the Qt event loop,
7953
7954         * qt/connection.h, qt/connection.cpp: Move all the code which
7955         was dealing with D-BUS integration to the Integrator class,
7956         and start using Integrator,
7957
7958 2003-11-23  Zack Rusin  <zack@kde.org>
7959
7960         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7961         wrapper
7962
7963         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7964         switching namespaces to DBusQt, reworking the class,
7965
7966         * Makefile.cvs: switching dependencies so that it matches KDE 
7967         schematics,
7968         
7969         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7970         the library
7971
7972 2003-11-19  Havoc Pennington  <hp@redhat.com>
7973
7974         * NEWS: update
7975
7976         * configure.in: bump version to 0.20
7977
7978         * configure.in (have_qt): add yet another place to look for qt
7979         (someone hand trolltech a .pc file...)
7980
7981 2003-11-01  Havoc Pennington  <hp@redhat.com>
7982
7983         * doc/dbus-specification.xml: add state machine docs on the auth
7984         protocol; just a first draft, I'm sure it's wrong.      
7985
7986 2003-10-28  David Zeuthen  <david@fubar.dk>
7987
7988         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7989         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7990         
7991 2003-10-28  Havoc Pennington  <hp@redhat.com>
7992
7993         * dbus/dbus-message.c (get_next_field): delete unused function
7994
7995 2003-10-28  Havoc Pennington  <hp@redhat.com>
7996
7997         * bus/expirelist.c (do_expiration_with_current_time): detect
7998         failure of the expire_func due to OOM
7999
8000         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8001
8002         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8003         NoReply error that's now created by the bus when the service exits
8004
8005 2003-10-28  Havoc Pennington  <hp@redhat.com>
8006
8007         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8008         tests for set_path, set_interface, set_member, etc.
8009
8010         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8011
8012         * dbus/dbus-message.c (set_string_field): always just delete and
8013         re-append the field; accept NULL for deletion
8014         (re_align_fields_recurse): reimplement
8015         
8016 2003-10-26  Havoc Pennington  <hp@redhat.com>
8017
8018         * dbus/dbus-connection.c: fix docs to properly describe the
8019         disconnected message
8020         (_dbus_connection_notify_disconnected): remove this function; 
8021         we can't synchronously add the disconnected message, we have to 
8022         do it after we've queued any remaining real messages
8023         (_dbus_connection_get_dispatch_status_unlocked): queue the
8024         disconnect message only if the transport has finished queueing all
8025         its real messages and is disconnected.
8026         (dbus_connection_disconnect): update the dispatch status here
8027
8028 2003-10-22  Havoc Pennington  <hp@redhat.com>
8029
8030         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8031
8032         * bus/connection.c (bus_transaction_send_from_driver): set the
8033         destination to the connection's base service
8034
8035 2003-10-20  Havoc Pennington  <hp@redhat.com>
8036
8037         hmm, make check is currently not passing.
8038         
8039         * doc/dbus-specification.xml: add requirement that custom type
8040         names follow the same rules as interface names.
8041
8042         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8043         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8044         'map'
8045
8046         * doc/dbus-specification.xml: update type codes to match
8047         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8048         CUSTOM. Add type OBJECT_PATH to the spec.
8049
8050 2003-10-17  Havoc Pennington  <hp@redhat.com>
8051
8052         * bus/driver.c (create_unique_client_name): use "." as separator
8053         in base service names instead of '-'
8054
8055         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8056         byte at the end of the string
8057
8058         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8059         optimization macros since string validation seems to be a slow
8060         point.
8061         
8062         * doc/dbus-specification.xml: restrict valid
8063         service/interface/member/error names. Add test suite code for the
8064         name validation.
8065
8066         * dbus/dbus-string.c: limit service/interface/member/error names 
8067         to [0-9][A-Z][a-z]_
8068
8069         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8070         format arg to verbose spew
8071
8072         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8073         memory, return instead of g_error
8074
8075         * test/test-service.c (path_message_func): support emitting a
8076         signal on request
8077
8078         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8079         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8080         assuming the activation bus was the session bus so that services
8081         started manually will still register.
8082         (init_connections_unlocked): fix so that in OOM situation we get
8083         the same semantics when retrying the function
8084         
8085         * test/test-service.c (main): change to use path registration, to
8086         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8087         than DBUS_BUS_SESSION
8088
8089 2003-10-16  Havoc Pennington  <hp@redhat.com>
8090
8091         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8092
8093         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8094         coverage of the tests
8095         (coverage-report.txt): don't move the .da and .bbg files around
8096
8097 2003-10-16  Havoc Pennington  <hp@redhat.com>
8098
8099         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8100         to put there
8101
8102 2003-10-16  Havoc Pennington  <hp@redhat.com>
8103
8104         * bus/connection.c (bus_pending_reply_expired): either cancel or
8105         execute, not both
8106         (bus_connections_check_reply): use unlink, not remove_link, as we
8107         don't want to free the link; fixes double free mess
8108
8109         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8110         where no reply was received
8111
8112         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8113         fix a refcount leak
8114
8115         * bus/signals.c (match_rule_matches): add special cases for the
8116         bus driver, so you can match on sender/destination for it.
8117
8118         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8119         DBUS_PRINT_BACKTRACE is set
8120
8121         * dbus/dbus-internals.c: add pid to assertion failure messages
8122
8123         * dbus/dbus-connection.c: add message type code to the debug spew
8124
8125         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8126         sender=foo not service=foo
8127
8128         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8129         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8130         DBUS_ACTIVATION_ADDRESS instead
8131
8132         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8133         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8134
8135         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8136         context struct
8137
8138         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8139         (dbus_message_iter_get_object_path_array): new function (half
8140         finished, disabled for the moment)
8141         
8142         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8143         DBUS_MESSAGE_TYPE_ERROR
8144
8145         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8146         avoid redirecting stderr to /dev/null
8147         (babysit): close stdin if not doing the "exit_with_session" thing
8148
8149         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8150         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8151         stdout/stdin, so things don't get confused
8152         
8153         * bus/system.conf.in: fix to allow replies, I modified .conf
8154         instead of .conf.in again.
8155
8156 2003-10-14  David Zeuthen  <david@fubar.dk>
8157
8158         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8159         argtype to arg_type when raising unknown arg type exception.
8160         Changed type list to reflect the changes in dbus-protocol.h so 
8161         the bindings actually work.
8162
8163 2003-10-14  Havoc Pennington  <hp@redhat.com>
8164
8165         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8166         to have a bug keeping it from outputting the .da files sometimes
8167         (string_get_string): don't append garbage nul bytes to the string.
8168
8169 2003-10-15  Seth Nickell  <seth@gnome.org>
8170
8171         * python/Makefile.am:
8172
8173         Include dbus_h_wrapper.h in the dist tarball.
8174
8175 2003-10-14  Havoc Pennington  <hp@redhat.com>
8176
8177         * bus/bus.c (bus_context_check_security_policy): revamp this to
8178         work more sanely with new policy-based requested reply setup
8179
8180         * bus/connection.c (bus_transaction_send_from_driver): set bus
8181         driver messages as no reply
8182
8183         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8184         requested_reply attribute on allow/deny rules
8185
8186         * bus/system.conf: add <allow requested_reply="true"/>
8187
8188         * bus/driver.c (bus_driver_handle_message): fix check for replies
8189         sent to the bus driver, which was backward. How did this ever work
8190         at all though? I think I'm missing something.
8191
8192         * dbus/dbus-message.c (decode_header_data): require error and
8193         method return messages to have a reply serial field to be valid
8194         (_dbus_message_loader_queue_messages): break up this function;
8195         validate that reply serial and plain serial are nonzero; 
8196         clean up the OOM/error handling.
8197         (get_uint_field): don't return -1 from this
8198         (dbus_message_create_header): fix signed/unsigned bug
8199
8200         * bus/connection.c (bus_connections_expect_reply): save serial of
8201         the incoming message, not reply serial
8202
8203 2003-10-14  Havoc Pennington  <hp@redhat.com>
8204
8205         * bus/connection.c: implement pending reply tracking using
8206         BusExpireList
8207
8208         * bus/bus.c (bus_context_check_security_policy): verify that a
8209         reply is pending in order to allow a reply to be sent. Deny 
8210         messages of unknown type.
8211
8212         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8213
8214         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8215         (bus_context_get_reply_timeout): new
8216
8217 2003-10-13  Seth Nickell  <seth@gnome.org>
8218
8219         * python/Makefile.am:
8220
8221         Pass "make distcheck": remove a couple files from DIST_FILES
8222         that weren't included in the final version.
8223
8224 2003-10-12  Havoc Pennington  <hp@pobox.com>
8225
8226         Added test code that 1) starts an actual bus daemon and 2) uses
8227         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8228         more testing possible, but this is the basic framework.
8229         
8230         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8231         empty proxy lists from the proxy list hash
8232
8233         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8234         couple of return_if_fail checks
8235
8236         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8237         to allocate, so everything is cleared to NULL as it should be.
8238
8239         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8240         source as data to dbus_connection_set_timeout_functions() as the 
8241         timeout functions expected
8242
8243         * test/glib/run-test.sh: add a little script to start up a message
8244         bus and run tests using it
8245
8246         * tools/dbus-launch.1: updates
8247
8248         * tools/dbus-launch.c (main): add --config-file option
8249
8250         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8251         that could never be reached.
8252
8253         * dbus/dbus-message.c (dbus_message_new_method_return) 
8254         (dbus_message_new_error, dbus_message_new_signal): set the
8255         no-reply-expected flag on all these. Redundant, but may
8256         as well be consistent.
8257
8258 2003-10-11  Havoc Pennington  <hp@pobox.com>
8259
8260         * test/decode-gcov.c (function_solve_graph): make broken block
8261         graph a nonfatal error since it seems to be broken. Need to debug
8262         this.
8263
8264         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8265         can't just check type > INVALID < LAST anymore
8266
8267         * dbus/dbus-message.c (dbus_message_get_signature): new function
8268         (dbus_message_has_signature): new function
8269         (struct DBusMessage): add signature field (right now it isn't sent
8270         over the wire, just generated on the fly)
8271         (dbus_message_copy): copy the signature, and init strings to
8272         proper length to avoid some reallocs
8273         (dbus_message_iter_init_array_iterator): return void, since it
8274         can't fail
8275         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8276         (_dbus_message_loader_queue_messages): add silly temporary hack to
8277         fill in message->signature on load
8278
8279         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8280         characters, so they are relatively human-readable.
8281
8282 2003-10-11  Havoc Pennington  <hp@pobox.com>
8283
8284         * dbus/dbus-message.c (_dbus_message_test): add more test
8285         coverage, but #if 0 for now since they uncover a bug 
8286         not fixed yet; I think in re_align_field_recurse()
8287         (re_align_field_recurse): add FIXME about broken assertion
8288
8289         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8290
8291         * bus/connection.c: share a couple code bits with expirelist.c
8292
8293         * bus/expirelist.h, bus/expirelist.c: implement a generic
8294         expire-items-after-N-seconds facility, was going to share between
8295         expiring connections and replies, decided not to use for expiring
8296         connections for now.
8297
8298         * COPYING: include AFL 2.0 (still need to change all the file headers)
8299
8300 2003-10-09  Havoc Pennington  <hp@redhat.com>
8301
8302         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8303         gcc 3.3. Not that we do anything about it yet.
8304
8305         * bus/signals.c (bus_match_rule_parse): impose max length on the
8306         match rule text
8307
8308         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8309
8310 2003-10-09  Havoc Pennington  <hp@redhat.com>
8311
8312         Make matching rules theoretically work (add parser).
8313         
8314         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8315         the case where destination is explicitly specified as bus driver
8316         and someone else is eavesdropping.
8317         
8318         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8319         definition of eavesdropping and assertion
8320
8321         * tools/dbus-send.c (main): use dbus_message_type_from_string
8322
8323         * bus/signals.c (bus_match_rule_parse): implement
8324
8325         * dbus/dbus-message.c (dbus_message_type_from_string): new
8326
8327         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8328
8329 2003-10-02  Havoc Pennington  <hp@pobox.com>
8330
8331         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8332         dbus_gproxy_oneway_call
8333
8334         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8335         (dbus_server_setup_with_g_main): fix to allow calling them more
8336         than once on the same args
8337         (dbus_bus_get_with_g_main): new function
8338
8339 2003-10-02  Havoc Pennington  <hp@redhat.com>
8340
8341         * doc/dbus-tutorial.xml: write some stuff
8342
8343 2003-09-29  Havoc Pennington  <hp@pobox.com>
8344
8345         * configure.in: split checks for Doxygen from XML docs, check for
8346         xmlto
8347
8348         * doc/Makefile.am: XML-ify all the docs, and add a blank
8349         dbus-tutorial.xml
8350
8351 2003-09-29  Havoc Pennington  <hp@pobox.com>
8352
8353         * Merge dbus-object-names branch. To see the entire patch 
8354         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8355         it's huuuuge though.
8356         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8357         
8358 2003-09-28  Havoc Pennington  <hp@pobox.com>
8359
8360         * HACKING: update to reflect new server
8361
8362 2003-09-26  Seth Nickell  <seth@gnome.org>
8363
8364         * python/dbus.py:
8365         * python/examples/example-signals.py:
8366
8367         Start implementing some notions of signals. The API
8368         is really terrible, but they sort of work (with the
8369         exception of being able to filter by service, and to
8370         transmit signals *as* a particular service). Need to
8371         figure out how to make messages come from the service
8372         we registered :-(
8373         
8374         * python/dbus_bindings.pyx.in:
8375
8376         Removed duplicate message_handler callbacks.
8377         
8378 2003-09-25  Havoc Pennington  <hp@redhat.com>
8379
8380         * bus/session.conf.in: fix my mess
8381
8382 2003-09-25  Havoc Pennington  <hp@pobox.com>
8383
8384         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8385
8386 2003-09-25  Seth Nickell  <seth@gnome.org>
8387
8388         * python/examples/example-service.py:
8389
8390         Johan notices complete wrong code in example-service, but
8391         completely wrong in a way that works exactly the same (!).
8392         Johan is confused, how could this possibly work? Example
8393         code fails to serve purpose of making things clear.
8394         Seth fixes.
8395
8396 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8397
8398         * doc/dbus-specification.sgml: don't require header fields
8399         to be 4-byte aligned and specify that fields should be
8400         distinguished from padding by the fact that zero is not
8401         a valid field name.
8402         
8403         * doc/TODO: remove re-alignment item and add item to doc
8404         the OBJECT_PATH type.
8405         
8406         * dbus/dbus-message.c:
8407         (HeaderField): rename the original member to value_offset
8408         and introduce a name_offset member to keep track of where
8409         the field actually begins.
8410         (adjust_field_offsets): remove.
8411         (append_int_field), (append_uint_field),
8412         (append_string_field): don't align the start of the header
8413         field to a 4-byte boundary.
8414         (get_next_field): impl finding the next marhsalled field
8415         after a given field.
8416         (re_align_field_recurse): impl re-aligning a number of
8417         already marshalled fields.
8418         (delete_field): impl deleting a field of any type and
8419         re-aligning any following fields.
8420         (delete_int_or_uint_field), (delete_string_field): remove.
8421         (set_int_field), (set_uint_field): no need to re-check
8422         that we have the correct type for the field.
8423         (set_string_field): ditto and impl re-aligning any
8424         following fields.
8425         (decode_header_data): update to take into account that
8426         the fields aren't 4-byte aligned any more and the new
8427         way to distinguish padding from header fields. Also,
8428         don't exit when there is too much header padding.
8429         (process_test_subdir): print the directory.
8430         (_dbus_message_test): add test to make sure a following
8431         field is re-aligned correctly after field deletion.
8432         
8433         * dbus/dbus-string.[ch]:
8434         (_dbus_string_insert_bytes): rename from insert_byte and
8435         allow the insert of multiple bytes.
8436         (_dbus_string_test): test inserting multiple bytes.
8437
8438         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8439         warning note to docs about having to re-align any
8440         marshalled values following the string.
8441         
8442         * dbus/dbus-message-builder.c:
8443         (append_string_field), (_dbus_message_data_load):
8444         don't align the header field.
8445         
8446         * dbus/dbus-auth.c: (process_test_subdir): print the
8447         directory.
8448         
8449         * test/break-loader.c: (randomly_add_one_byte): upd. for
8450         insert_byte change.
8451         
8452         * test/data/invalid-messages/bad-header-field-alignment.message:
8453         new test case.
8454         
8455         * test/data/valid-messages/unknown-header-field.message: shove
8456         a dict in the unknown field.
8457
8458 2003-09-25  Seth Nickell  <seth@gnome.org>
8459
8460         * python/dbus.py:
8461         * python/dbus_bindings.pyx.in:
8462
8463         Handle return values.
8464         
8465         * python/examples/example-client.py:
8466         * python/examples/example-service.py:
8467
8468         Pass back return values from the service to the client.
8469         
8470 2003-09-24  Seth Nickell  <seth@gnome.org>
8471
8472         * python/dbus.py:
8473
8474         Connect Object methods (when you are sharing an object) up... pass
8475         in a list of methods to be shared. Sharing all the methods just
8476         worked out too weird. You can now create nice Services over the
8477         DBus in Python. :-)
8478         
8479         * python/dbus_bindings.pyx.in:
8480
8481         Keep references to user_data tuples passed into C functions so 
8482         Python doesn't garbage collect on us.
8483
8484         Implement MethodReturn and Error subclasses of Message for creating
8485         DBusMessage's of those types.
8486         
8487         * python/examples/example-client.py:
8488         * python/examples/example-service.py:
8489
8490         Simple example code showing both how create DBus services and objects,
8491         and how to use them.
8492
8493 2003-09-23  Havoc Pennington  <hp@pobox.com>
8494
8495         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8496
8497 2003-09-23  Havoc Pennington  <hp@redhat.com>
8498
8499         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8500         (dbus_gproxy_disconnect_signal): implement
8501         (dbus_gproxy_manager_remove_signal_match): implement
8502         (dbus_gproxy_manager_add_signal_match): implement
8503         (dbus_gproxy_oneway_call): implement
8504
8505 2003-09-23  Havoc Pennington  <hp@pobox.com>
8506
8507         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8508         subclass. This means dropping the transparent thread safety of the
8509         proxy; you now need a separate proxy per-thread, or your own
8510         locking on the proxy. Probably right anyway.
8511         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8512
8513 2003-09-22  Havoc Pennington  <hp@redhat.com>
8514
8515         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8516
8517 2003-09-21  Seth Nickell  <seth@gnome.org>
8518
8519         First checkin of the Python bindings.
8520         
8521         * python/.cvsignore:
8522         * python/Makefile.am:
8523         * python/dbus_bindings.pyx.in:
8524         * python/dbus_h_wrapper.h:
8525
8526         Pieces for Pyrex to operate on, building a dbus_bindings.so
8527         python module for low-level access to the DBus APIs.
8528         
8529         * python/dbus.py:
8530
8531         High-level Python module for accessing DBus objects.
8532
8533         * configure.in:
8534         * Makefile.am:
8535
8536         Build stuff for the python bindings.
8537
8538         * acinclude.m4:
8539
8540         Extra macro needed for finding the Python C header files.
8541
8542 2003-09-21  Havoc Pennington  <hp@pobox.com>
8543
8544         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8545         implementing the proxy manager, didn't get very far.
8546
8547         * dbus/dbus-bus.c (dbus_bus_add_match): new
8548         (dbus_bus_remove_match): new
8549
8550         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8551         path_name argument; adjust the other not-yet-implemented 
8552         gproxy constructors to be what I think they should be.
8553
8554 2003-09-21  Havoc Pennington  <hp@pobox.com>
8555
8556         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8557         by default for message bus connections.
8558
8559         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8560         exit_on_disconnect flag is set and we process the disconnected
8561         signal.
8562         (dbus_connection_set_exit_on_disconnect): new function
8563
8564 2003-09-21  Havoc Pennington  <hp@pobox.com>
8565
8566         Get matching rules mostly working in the bus; only actually
8567         parsing the rule text remains. However, the client side of
8568         "signal connections" hasn't been started, this patch is only the
8569         bus side.
8570         
8571         * dbus/dispatch.c: fix for the matching rules changes
8572         
8573         * bus/driver.c (bus_driver_handle_remove_match)
8574         (bus_driver_handle_add_match): send an ack reply from these
8575         method calls
8576
8577         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8578         arguments, reported by Seth Nickell
8579
8580         * bus/config-parser.c (append_rule_from_element): support
8581         eavesdrop=true|false attribute on policies so match rules 
8582         can be prevented from snooping on the system bus.
8583
8584         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8585         and "destination" in attribute names; fix some docs bugs; 
8586         add eavesdrop=true|false attribute
8587
8588         * bus/driver.c (bus_driver_handle_add_match)
8589         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8590         messages
8591
8592         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8593         rid of broadcast service concept, signals are just always broadcast
8594
8595         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8596         mostly implement matching rules stuff (currently only exposed as signal
8597         connections)
8598
8599 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8600
8601         * doc/dbus-specification.sgml: Change the header field name
8602         to be an enum and update the rest of the spec to reference
8603         the fields using the conventinal name.
8604
8605         * dbus/dbus-protocol.h: update to reflect the spec.
8606
8607         * doc/TODO: add item to remove the 4 byte alignment requirement.
8608         
8609         * dbus/dbus-message.c: Remove the code to generalise the
8610         header/body length and serial number header fields as named
8611         header fields so we can reference field names using the 
8612         protocol values.
8613         (append_int_field), (append_uint_field), (append_string_field):
8614         Append the field name as a byte rather than four chars.
8615         (delete_int_or_uint_field), (delete_string_field): reflect the
8616         fact that the field name and typecode now occupy 4 bytes instead
8617         of 8.
8618         (decode_string_field), (decode_header_data): update to reflect
8619         protocol changes and move the field specific encoding from
8620         decode_string_field() back into decode_header_data().
8621         
8622         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8623         Add utility to aid debugging.
8624         
8625         * dbus/dbus-message-builder.c:
8626         (append_string_field), (_dbus_message_data_load): Update to
8627         reflect protocol changes; Change the FIELD_NAME directive
8628         to HEADER_FIELD and allow it to take the field's conventional
8629         name rather than the actual value.
8630         
8631         * test/data/*/*.message: Update to use HEADER_FIELD instead
8632         of FIELD_NAME; Always align the header on an 8 byte boundary
8633         *before* updating the header length.
8634
8635 2003-09-15  Havoc Pennington  <hp@pobox.com>
8636
8637         * dbus/dbus-pending-call.c: add the get/set object data
8638         boilerplate as for DBusConnection, etc. Use generic object data
8639         for the notify callback.
8640
8641         * glib/dbus-gparser.c (parse_node): parse child nodes
8642
8643         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8644         
8645         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8646         contain functions shared between the convenience lib and the
8647         installed lib
8648
8649         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8650         -export-symbols-regex to the GLib library
8651
8652         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8653         fix the locking in here, and add a default handler for
8654         Introspect() that just returns sub-nodes.
8655
8656 2003-09-14  Havoc Pennington  <hp@pobox.com>
8657
8658         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8659         rather than gfoo consistent
8660
8661         * glib/dbus-gproxy.h: delete for now, move contents to
8662         dbus-glib.h, because the include files don't work right since we
8663         aren't in the dbus/ subdir.
8664         
8665         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8666         (dbus_gproxy_end_call): finish
8667         (dbus_gproxy_begin_call): finish
8668
8669         * glib/dbus-gmain.c (dbus_set_g_error): new
8670
8671         * glib/dbus-gobject.c (handle_introspect): include information
8672         about child nodes in the introspection
8673
8674         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8675         function to help in implementation of introspection
8676
8677         * dbus/dbus-object-tree.c
8678         (_dbus_object_tree_list_registered_and_unlock): new function
8679
8680 2003-09-12  Havoc Pennington  <hp@pobox.com>
8681
8682         * glib/dbus-gidl.h: add common base class for all the foo_info
8683         types
8684
8685         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8686         similar to kdcop
8687
8688         * test/Makefile.am: try test srcdir -ef . in addition to test
8689         srcdir = ., one of them should work (yeah lame)
8690         
8691         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8692         library
8693         
8694         * glib/dbus-gparser.h: make description_load routines return
8695         NodeInfo* not Parser*
8696
8697         * Makefile.am (SUBDIRS): build test dir after all library dirs
8698
8699         * configure.in: add GTK+ detection
8700
8701 2003-09-07  Havoc Pennington  <hp@pobox.com>
8702
8703         * Make Doxygen contented.
8704
8705 2003-09-07  Havoc Pennington  <hp@pobox.com>
8706
8707         * doc/dbus-specification.sgml: more updates
8708
8709 2003-09-06  Havoc Pennington  <hp@pobox.com>
8710
8711         * doc/dbus-specification.sgml: partial updates
8712
8713         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8714         zillionth time; hopefully I edited the right file this time.
8715
8716         * bus/config-parser.c (append_rule_from_element): support
8717         send_type, send_path, receive_type, receive_path
8718
8719         * bus/policy.c: add message type and path to the list of things
8720         that can be "firewalled"
8721
8722 2003-09-06  Havoc Pennington  <hp@pobox.com>
8723
8724         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8725         (dbus_connection_register_object_path): make this not handle
8726         messages to paths below the given path
8727
8728 2003-09-03  Havoc Pennington  <hp@pobox.com>
8729
8730         * test/glib/Makefile.am: add this with random glib-linked test
8731         programs
8732
8733         * glib/Makefile.am: remove the random test programs from here,
8734         leave only the unit tests
8735
8736         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8737         uscore/javacaps conversion, and fix     
8738         (get_object_property, set_object_property): change to .NET
8739         convention for mapping props to methods, set_FooBar/get_FooBar, 
8740         since one language has such a convention we may as well copy it. 
8741         Plus real methods in either getFooBar or get_foo_bar style won't 
8742         collide with this convention.
8743
8744 2003-09-01  Havoc Pennington  <hp@pobox.com>
8745
8746         * glib/dbus-gparser.c: implement
8747
8748         * glib/dbus-gobject.c: start implementing skeletons support
8749
8750         * configure.in: when disabling checks/assert, also define
8751         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8752
8753 2003-09-01  Havoc Pennington  <hp@pobox.com>
8754
8755         * glib/Makefile.am: rearrange a bunch of files and get "make
8756         check" framework set up
8757
8758 2003-08-31  Havoc Pennington  <hp@pobox.com>
8759
8760         * fix build with --disable-tests
8761
8762 2003-08-30  Havoc Pennington  <hp@pobox.com>
8763
8764         * dbus/dbus-connection.c: purge DBusMessageHandler
8765
8766         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8767         use callbacks everywhere
8768
8769 2003-08-30  Havoc Pennington  <hp@pobox.com>
8770
8771         * test/data/valid-config-files/system.d/test.conf: change to 
8772         root for the user so warnings don't get printed
8773
8774         * dbus/dbus-message.c: add dbus_message_get_path,
8775         dbus_message_set_path
8776         
8777         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8778         dispatching to a path
8779
8780         * dbus/dbus-string.c (_dbus_string_validate_path): add
8781
8782         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8783         (_dbus_marshal_object_path): implement
8784
8785         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8786         to contain the path to the target object
8787         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8788         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8789
8790 2003-08-30  Havoc Pennington  <hp@pobox.com>
8791
8792         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8793
8794 2003-08-29  Havoc Pennington  <hp@pobox.com>
8795
8796         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8797         registered
8798         (struct DBusObjectSubtree): shrink this
8799         a lot, since we may have a lot of them
8800         (_dbus_object_tree_free_all_unlocked): implement
8801         (_dbus_object_tree_dispatch_and_unlock): implement
8802
8803 2003-08-29  Havoc Pennington  <hp@pobox.com>
8804
8805         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8806
8807 2003-08-28  Havoc Pennington  <hp@pobox.com>
8808
8809         purge DBusObjectID
8810         
8811         * dbus/dbus-connection.c: port to no ObjectID, create a
8812         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8813
8814         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8815         everything except UnregisterFunction and MessageFunction
8816         
8817         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8818         add DBUS_TYPE_OBJECT_PATH
8819         
8820         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8821         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8822         path-based object IDs
8823
8824 2003-08-25  Havoc Pennington  <hp@pobox.com>
8825
8826         Just noticed that dbus_message_test is hosed, I wonder when I
8827         broke that. I thought make check was passing earlier...
8828         
8829         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8830         container tree, will replace most of dbus-object-registry
8831
8832         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8833         screwup
8834
8835 2003-08-19  Havoc Pennington  <hp@pobox.com>
8836
8837         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8838         (dbus_message_is_error): fix this function
8839
8840         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8841         match
8842
8843         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8844         reflect clarified man page
8845         (bus_client_policy_check_can_send): ditto
8846         
8847         * bus/session.conf.in: fixup
8848
8849         * bus/system.conf.in: fixup
8850
8851 2003-08-18  Havoc Pennington  <hp@redhat.com>
8852
8853         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8854
8855         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8856         dumb bug created earlier (wrong order of args to
8857         decode_header_data())
8858         
8859         * tools/dbus-send.c: port
8860
8861         * tools/dbus-print-message.c (print_message): port
8862
8863         * test/data/*messages: port all messages over
8864         
8865         * dbus/dbus-message-builder.c: support including 
8866         message type
8867         
8868         * bus/driver.c: port over
8869         
8870         * bus/dispatch.c: port over to new stuff
8871
8872         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8873         rename disconnect signal to "Disconnected"
8874
8875 2003-08-17  Havoc Pennington  <hp@pobox.com>
8876
8877         This doesn't compile yet, but syncing up so I can hack on it from
8878         work. What are branches for if not broken code? ;-)
8879         
8880         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8881         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8882         DBUS_HEADER_FIELD_ERROR_NAME
8883         
8884         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8885         for the interface+member pairs
8886         (string_hash): change to use g_str_hash algorithm
8887         (find_direct_function, find_string_function): refactor these to
8888         share most code.
8889         
8890         * dbus/dbus-message.c: port all of this over to support 
8891         interface/member fields instead of name field
8892
8893         * dbus/dbus-object-registry.c: port over
8894         
8895         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8896         from _dbus_string_validate_name
8897
8898         * bus/dbus-daemon-1.1: change file format for the 
8899         <deny>/<allow> stuff to match new message naming scheme
8900
8901         * bus/policy.c: port over
8902
8903         * bus/config-parser.c: parse new format
8904         
8905 2003-08-16  Havoc Pennington  <hp@pobox.com>
8906
8907         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8908         broken assertion
8909
8910         * glib/dbus-gproxy.c: some hacking
8911
8912 2003-08-15  Havoc Pennington  <hp@redhat.com>
8913
8914         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8915
8916         * dbus/dbus-connection.c
8917         (dbus_connection_send_with_reply_and_block): factor out internals;
8918         change to convert any error replies to DBusError instead of 
8919         returning them as a message
8920
8921 2003-08-15  Havoc Pennington  <hp@pobox.com>
8922
8923         * dbus/dbus-connection.c, 
8924         dbus/dbus-pending-call.c: Finish the pending call stuff
8925
8926 2003-08-14  Havoc Pennington  <hp@redhat.com>
8927
8928         * dbus/dbus-pending-call.c: start on new object that will replace
8929         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8930         replies
8931
8932         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8933         with remote interfaces
8934
8935         * dbus/dbus-gidl.c: do the boring boilerplate in here
8936         
8937 2003-08-12  Havoc Pennington  <hp@pobox.com>
8938
8939         * bus/dispatch.c (bus_dispatch): make this return proper 
8940         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8941
8942         * dbus/dbus-errors.c (dbus_set_error): use
8943         _dbus_string_append_printf_valist
8944
8945         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8946         (_dbus_string_append_printf): new
8947
8948         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8949         UNKNOWN_METHOD
8950
8951         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8952         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8953         message is unhandled.
8954
8955 2003-08-11  Havoc Pennington  <hp@pobox.com>
8956
8957         * bus/test.c (client_disconnect_handler): change to return
8958         HANDLED (would have been REMOVE_MESSAGE)
8959
8960         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8961         HANDLED/NOT_YET_HANDLED instead of
8962         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8963         should be used.
8964
8965 2003-08-10  Havoc Pennington  <hp@pobox.com>
8966
8967         * tools/dbus-send.c (main): add --type argument, for now
8968         supporting only method_call and signal types.
8969
8970         * tools/dbus-print-message.c: print message type
8971
8972         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8973         init connection->objects
8974
8975         * doc/dbus-specification.sgml: fix sgml
8976
8977         * bus/*.c: port over to object-instance API changes
8978
8979         * test/test-service.c: ditto
8980         
8981         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8982         name, we will have to fix up the rest of the code to also handle
8983         this
8984         (dbus_message_new): generic message-creation call
8985         (set_string_field): allow appending name field
8986
8987 2003-08-06  Havoc Pennington  <hp@pobox.com>
8988
8989         * dbus/dbus-object-registry.c: implement signal connection 
8990         and dispatch
8991
8992         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8993
8994         * dbus/dbus-internals.c (_dbus_memdup): new function
8995
8996 2003-08-02  Havoc Pennington  <hp@pobox.com>
8997
8998         * dbus/dbus-message.c (dbus_message_get_no_reply)
8999         (dbus_message_set_no_reply): add these and remove
9000         set_is_error/get_is_error
9001
9002         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9003         remove the ERROR flag, since there's now an ERROR type
9004
9005 2003-08-01  Havoc Pennington  <hp@pobox.com>
9006
9007         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9008         implement
9009
9010         * dbus/dbus-message.c (dbus_message_get_type): new function
9011
9012         * doc/dbus-specification.sgml: add "type" byte to messages
9013
9014 2003-08-01  Havoc Pennington  <hp@pobox.com>
9015
9016         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9017         a message type enum to distinguish kinds of message
9018         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9019         that need not be replied to
9020
9021 2003-08-01  Havoc Pennington  <hp@pobox.com>
9022
9023         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9024         (unpack_8_octets): fix no-64-bit-int bug
9025
9026         * dbus/dbus-object-registry.c (validate_id): validate the 
9027         connection ID bits, not just the instance ID.
9028
9029         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9030         the connection-global 33 bits of the object ID
9031
9032         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9033         object ID in the new way
9034
9035         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9036         define server/client/instance bits.
9037
9038 2003-07-30  Havoc Pennington  <hp@pobox.com>
9039
9040         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9041         build
9042
9043 2003-07-13  Havoc Pennington  <hp@pobox.com>
9044
9045         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9046         fields to DBusObjectVTable and DBusObjectInfo
9047
9048 2003-07-12  Havoc Pennington  <hp@pobox.com>
9049
9050         * dbus/dbus-object-registry.c: implement unit test,
9051         fix bugs discovered in process
9052
9053         * dbus/dbus-connection.c: remove handler_table and
9054         register_handler(), add DBusObjectRegistry usage
9055
9056         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9057         (dbus_object_id_set_null): new functions
9058
9059 2003-07-08  Havoc Pennington  <hp@pobox.com>
9060
9061         * dbus/dbus-object.c: implement some of this
9062
9063         * dbus/dbus-object-registry.c
9064         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9065         param
9066         (_dbus_object_registry_new): handle OOM
9067
9068 2003-07-08  Havoc Pennington  <hp@pobox.com>
9069
9070         * dbus/dbus-object.h: sketch out an API for registering objects
9071         with a connection, that allows us to use as little as 24 bytes
9072         per object and lets application code represent an object in 
9073         any conceivable way.
9074
9075         * dbus/dbus-object-registry.c: implement the hard bits of the
9076         DBusConnection aspect of object API. Not yet wired up.
9077         
9078 2003-07-06  Havoc Pennington  <hp@pobox.com>
9079
9080         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9081         (_dbus_marshal_object_id): new
9082         (_dbus_demarshal_object_id): new
9083         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9084         consolidate identical switch cases. Don't conditionalize handling
9085         of DBUS_TYPE_UINT64, need to handle the type always.
9086         (_dbus_marshal_validate_arg): consolidate identical cases, and
9087         handle DBUS_TYPE_OBJECT_ID
9088
9089         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9090
9091         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9092
9093 2003-09-28  Havoc Pennington  <hp@pobox.com>
9094
9095         * real 0.13 release
9096
9097 2003-09-28  Havoc Pennington  <hp@pobox.com>
9098
9099         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9100         to work with Debian db2html
9101
9102 2003-09-28  Havoc Pennington  <hp@pobox.com>
9103
9104         * configure.in: 0.13
9105
9106         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9107         stylesheet-images for benefit of Debian
9108         
9109         Change back to using filesystem-linked sockets for the system
9110         bus, so only root can create the default system bus address.
9111         
9112         * bus/system.conf.in: change to use
9113         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9114
9115         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9116         from here.
9117
9118         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9119         here, and AC_DEFINE DBUS_SYSTEM_PATH
9120
9121 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9122
9123         * doc/TODO:
9124         * doc/busconfig.dtd:
9125         Add busconfig DTD.
9126         
9127 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9128
9129         * doc/dbus-specification.sgml:
9130         Add activation reply values.
9131         
9132 2003-08-05  Havoc Pennington  <hp@redhat.com>
9133
9134         * configure.in: 0.12
9135
9136 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9137
9138         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9139         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9140         (add_watch), (remove_watch), (create_source):
9141         Refcount fds, fixes some reentrancy issues.
9142         
9143 2003-07-30  Havoc Pennington  <hp@redhat.com>
9144
9145         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9146         bus address to be abstract if we have abstract sockets
9147
9148         * NEWS: update
9149
9150 2003-07-28  Havoc Pennington  <hp@redhat.com>
9151
9152         * bus/messagebus.in: fix to avoid processname/servicename 
9153         confusion, from Michael Kearey
9154         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9155         
9156 2003-07-23  Havoc Pennington  <hp@pobox.com>
9157
9158         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9159         fix from Andy Hanton to remove broken "+1"
9160
9161 2003-07-16  Havoc Pennington  <hp@pobox.com>
9162
9163         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9164         babysitter process, as suggested by Thomas Leonard, so 
9165         an "eval `dbus-launch --exit-with-session`" will actually 
9166         return
9167
9168 2003-07-16  Havoc Pennington  <hp@pobox.com>
9169
9170         * configure.in: print out EXPANDED_* variables in the summary at
9171         the end; clean up the code that computes EXPANDED_ variables and
9172         get the ones using exec_prefix right. Should make things work
9173         when you build without --prefix
9174
9175 2003-06-29  Havoc Pennington  <hp@pobox.com>
9176
9177         * mono/Test.cs (class Test): fire up a main loop and run it
9178
9179         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9180         done once, the app has to do it
9181
9182 2003-06-26  Havoc Pennington  <hp@pobox.com>
9183
9184         * mono/Connection.cs: set up connection with the glib main loop
9185
9186 2003-07-01  Havoc Pennington  <hp@redhat.com>
9187
9188         * doc/dbus-specification.sgml: clarify the format of a type code,
9189         change suggested by Jim Blandy
9190
9191 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9192
9193         * doc/Makefile.am:
9194         * tools/Makefile.am: Don't assume srcdir == builddir.
9195
9196         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9197         the allocated block.
9198         (_dbus_memory_test): New function.
9199         * dbus/dbus-test.h: Add _dbus_memory_test ().
9200         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9201
9202         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9203         of %c%c%c%c.
9204         (dbus_message_new): Remove obsolete @todo.
9205
9206         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9207         (_dbus_marshal_set_uint64): Fix comment.
9208
9209         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9210         hardcode FIELD_REPLY_SERIAL.
9211
9212         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9213         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9214
9215         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9216         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9217
9218 2003-06-24  Havoc Pennington  <hp@pobox.com>
9219
9220         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9221
9222 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9223
9224         * configure.in:
9225         * gcj/.cvsignore:
9226         * gcj/Hello.java:
9227         * gcj/Makefile.am:
9228         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9229         * gcj/org/.cvsignore:
9230         * gcj/org/Makefile.am:
9231         * gcj/org/freedesktop/.cvsignore:
9232         * gcj/org/freedesktop/Makefile.am:
9233         * gcj/org/freedesktop/dbus/.cvsignore:
9234         * gcj/org/freedesktop/dbus/Makefile.am:
9235         * gcj/org/freedesktop/dbus/Message.java: (Message),
9236         (Message.Message):
9237         * gcj/org/freedesktop/dbus/natMessage.cc:
9238         Fix the build system.
9239
9240 2003-06-22  Havoc Pennington  <hp@pobox.com>
9241
9242         * mono/Connection.cs: add more bindings
9243
9244         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9245         more than once.
9246
9247 2003-06-22  Havoc Pennington  <hp@pobox.com>
9248
9249         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9250         Start wrapping more stuff.
9251
9252 2003-06-22  Havoc Pennington  <hp@pobox.com>
9253
9254         * mono/Message.cs: implement Message.Wrap() that ensures we only
9255         have a single C# wrapper per DBusMessage, assuming it works which
9256         it probably doesn't.
9257
9258         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9259         (dbus_message_free_data_slot): new
9260         (dbus_message_set_data): new
9261         (dbus_message_get_data): new
9262
9263 2003-06-22  Havoc Pennington  <hp@pobox.com>
9264
9265         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9266         (_dbus_data_slot_allocator_alloc): rework these to keep a
9267         reference count on each slot and automatically manage a global
9268         slot ID variable passed in by address
9269
9270         * bus/bus.c: convert to new dataslot API
9271
9272         * dbus/dbus-bus.c: convert to new dataslot API
9273
9274         * dbus/dbus-connection.c: convert to new dataslot API
9275
9276         * dbus/dbus-server.c: convert to new dataslot API
9277
9278         * glib/dbus-gmain.c: ditto
9279
9280         * bus/test.c: ditto
9281
9282         * bus/connection.c: ditto
9283
9284 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9285
9286         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9287         after the gcj checks so that the correct configuration tags
9288         will be added to libtool.
9289
9290         * dbus-glib-1.pc.in: No need to specify any includes since
9291         dbus-1.pc.in has those.
9292
9293 2003-06-22  Havoc Pennington  <hp@pobox.com>
9294
9295         * mono/*, gcj/*, configure.in, Makefile.am:
9296         Check in makefiles and subdirs for mono and gcj bindings.
9297         Neither binding actually exists, just trying to get through
9298         all the build and other boring bits.
9299
9300 2003-06-21  Philip Blundell  <philb@gnu.org>
9301
9302         * tools/dbus-monitor.1: Updated.
9303
9304         * tools/dbus-send.1: Likewise.
9305
9306 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9307
9308         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9309         for hangup and error after checking read so we won't discard
9310         pending data if both hangup and read are set.
9311
9312 2003-06-19  Philip Blundell  <philb@gnu.org>
9313
9314         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9315
9316         * tools/dbus-send.c: Accept both --system and --session.
9317
9318         * tools/dbus-monitor.c: Same here.
9319
9320 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9321
9322         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9323         from C++ (Patch by Miloslav Trmac).
9324
9325 2003-06-15  Joe Shaw  <joe@assbarn.com>
9326
9327         * configure.in: Check for socklen_t.
9328
9329         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9330
9331         * test/test-segfault.c: Add #include <sys/time.h>
9332
9333         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9334         dbus-launch needs it.
9335
9336 2003-06-09  Havoc Pennington  <hp@redhat.com>
9337
9338         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9339         SUN_LEN, it breaks abstract socket usage
9340
9341         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9342         starts of lines.
9343
9344 2003-06-04  Havoc Pennington  <hp@pobox.com>
9345
9346         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9347         using unix:abstract=/foo, and when listening in a tmpdir
9348         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9349
9350         * dbus/dbus-transport.c (_dbus_transport_open): support
9351         unix:abstract=/foo
9352
9353         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9354         support abstract sockets
9355
9356         * dbus/dbus-transport-unix.c
9357         (_dbus_transport_new_for_domain_socket): support abstract sockets
9358
9359         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9360         toggle as an argument, implement abstract namespace support
9361         (_dbus_listen_unix_socket): ditto
9362
9363         * configure.in: add --enable-abstract-sockets and implement
9364         a configure check for autodetection of the right value.
9365
9366 2003-06-01  Havoc Pennington  <hp@pobox.com>
9367
9368         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9369         in /tmp (though on Linux this will end up being useless,
9370         when we add abstract namespace support)
9371
9372         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9373         subst'ing it
9374
9375 2003-05-28  Colin Walters  <walters@verbum.org>
9376
9377         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9378
9379 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9380
9381         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9382
9383 2003-05-17  Colin Walters  <walters@gnu.org>
9384
9385         * tools/dbus-send.c: Don't exit with an error code if --help was
9386         passed.  Default to using the session bus instead of the system
9387         one.
9388
9389         * tools/dbus-launch.c: Ditto.
9390
9391         * tools/dbus-monitor.c: Ditto.
9392
9393         * tools/dbus-send.1: Update with new arguments.
9394
9395         * tools/dbus-launch.c: Emit code to export variables.  New
9396         arguments -s and -c to specify shell syntax, and a bit of code to
9397         autodetect syntax.  Also, allow specifying a program to run.
9398
9399         * tools/dbus-launch.1: Update with new arguments.
9400
9401         * tools/dbus-send.1: Ditto.
9402
9403         * tools/dbus-monitor.1: Ditto.
9404
9405 2003-05-17  Havoc Pennington  <hp@pobox.com>
9406
9407         * bus/config-parser.c (merge_included): merge in policies from
9408         child configuration file.
9409
9410         * bus/policy.c (bus_policy_merge): function to merge two policies
9411         together
9412
9413 2003-05-16  Havoc Pennington  <hp@redhat.com>
9414
9415         * dbus/dbus-connection.c: disable verbose lock spew
9416
9417         * tools/dbus-send.c: add --print-reply command line option
9418
9419         * tools/dbus-print-message.h (print_message): new util function
9420         shared by dbus-send and dbus-monitor
9421
9422         * tools/dbus-monitor.c (handler_func): exit on disconnect
9423
9424         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9425         disconnected, don't try to use the read_watch
9426
9427         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9428         so we can find this bug more easily
9429
9430 2003-05-16  Havoc Pennington  <hp@redhat.com>
9431
9432         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9433         NULL as DBusHashTable is annoyingly likely to do.
9434
9435 2003-05-16  Colin Walters  <walters@verbum.org>
9436
9437         * tools/dbus-monitor.c: Add --session argument and usage()
9438         function.
9439
9440         * tools/dbus-monitor.1: Update with new --session arg.
9441
9442         * bus/Makefile.am (install-data-hook): Create
9443         $(libdir)/dbus-1.0/services so that the session bus is happy.
9444
9445 2003-05-15  Havoc Pennington  <hp@redhat.com>
9446
9447         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9448         on non-x86. ifdef's are evil.
9449
9450 2003-05-15  Havoc Pennington  <hp@redhat.com>
9451
9452         * configure.in: 0.11
9453
9454         * NEWS: update
9455
9456         * bus/Makefile.am (initddir): apparently we are supposed to put
9457         init scripts in /etc/rc.d/init.d not /etc/init.d
9458
9459         * bus/Makefile.am: remove the "you must --enable-tests to make
9460         check" as it broke distcheck
9461
9462         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9463
9464 2003-05-13  James Willcox  <jwillcox@gnome.org>
9465
9466         * configure.in:
9467         * bus/activation.c: (bus_activation_service_created),
9468         (bus_activation_activate_service):
9469         * bus/driver.c: (bus_driver_send_service_deleted),
9470         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9471         (bus_driver_send_service_acquired),
9472         (bus_driver_send_welcome_message),
9473         (bus_driver_handle_list_services):
9474         * bus/session.conf.in:
9475         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9476         (dbus_bus_service_exists), (dbus_bus_activate_service):
9477         * dbus/dbus-bus.h:
9478
9479         Add some convenience API which lets you activate a service, and did a
9480         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9481         and dbus_message_get_args()
9482
9483 2003-05-11  Havoc Pennington  <hp@pobox.com>
9484
9485         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9486         calling _dbus_marshal_validate_arg() for every byte in a byte
9487         array, etc.
9488
9489         * dbus/dbus-message-handler.c: use atomic reference counting to
9490         reduce number of locks slightly; the global lock in here sucks
9491
9492         * dbus/dbus-connection.c
9493         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9494         update_dispatch_status that can be called with lock held; then use
9495         in a couple places to reduce locking/unlocking
9496         (dbus_connection_send): hold the lock over the whole function
9497         instead of acquiring it twice.
9498
9499         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9500
9501         * bus/connection.c (bus_connections_setup_connection): fix access
9502         to already-freed memory.
9503
9504         * dbus/dbus-connection.c: keep a little cache of linked list
9505         nodes, to avoid using the global linked list alloc lock in the
9506         normal send-message case. Instead we just use the connection lock
9507         that we already have to take.
9508
9509         * dbus/dbus-list.c (_dbus_list_find_last): new function
9510
9511         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9512         change to use a struct for the atomic type; fix docs,
9513         they return value before increment, not after increment.
9514
9515         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9516         (_dbus_string_append_8_aligned): new functions to try to
9517         microoptimize this operation.
9518         (reallocate_for_length): break this out of set_length(), to
9519         improve profile info, and also so we can consider inlining the
9520         set_length() part.
9521
9522         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9523         strings with some preallocation, cuts down on our calls to realloc
9524         a fair bit. Though if we can get the "move entire string to empty
9525         string" optimization below to kick in here, it would be better.
9526
9527         * dbus/dbus-string.c (_dbus_string_move): just call
9528         _dbus_string_move_len
9529         (_dbus_string_move_len): add a special case for moving
9530         an entire string into an empty string; we can just
9531         swap the string data instead of doing any reallocs.
9532         (_dbus_string_init_preallocated): new function
9533
9534 2003-05-11  Havoc Pennington  <hp@pobox.com>
9535
9536         Write a "test-profile" that does echo client-server with threads;
9537         profile reveals lock contention, memcpy/realloc of buffers, and
9538         UTF-8 validation as hot spots. 20% of lock contention eliminated
9539         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9540         contention is global mempool locks for GList and DBusList.
9541
9542         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9543         x86 implementation
9544
9545         * dbus/dbus-connection.c (struct DBusConnection): use
9546         dbus_atomic_t for the reference count
9547
9548         * dbus/dbus-message.c (struct DBusMessage): declare
9549         dbus_atomic_t values as volatile
9550
9551         * configure.in: code to detect ability to use atomic integer
9552         operations in assembly, from GLib patch
9553
9554         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9555         time, tired of it being wrong in threads and forked processes
9556
9557         * glib/test-profile.c: a little program to bounce messages back
9558         and forth between threads and eat CPU
9559
9560         * dbus/dbus-connection.c: add debug spew macros for debugging
9561         thread locks; include config.h at top; fix deadlock in
9562         dbus_connection_flush()
9563
9564 2003-05-08  Havoc Pennington  <hp@pobox.com>
9565
9566         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9567         data from getting written, and there wasn't a good reason to
9568         use _exit really.
9569
9570         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9571         dbus_verbose lines in test coverage
9572         (main): add list of functions sorted by # of untested blocks
9573         to the coverage report
9574
9575         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9576
9577         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9578
9579         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9580         extend test coverage
9581
9582         * test/data/auth/cancel.auth-script: test canceling an
9583         authentication
9584
9585         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9586         aren't used. in CVS history if we end up needing them.
9587
9588 2003-05-04  Havoc Pennington  <hp@pobox.com>
9589
9590         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9591         unit test
9592
9593         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9594         function, which assumed length was in # of strings, not bytes
9595
9596         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9597         missing coverage
9598
9599         * dbus/dbus-connection.c
9600         (_dbus_connection_queue_received_message): disable function for
9601         now, we are only using it in test mode
9602
9603         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9604         remove a mistaken FIXME
9605
9606 2003-05-04  Havoc Pennington  <hp@pobox.com>
9607
9608         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9609         unlock mutex on successful return, patch from Anders Gustafsson
9610
9611 2003-05-04  Havoc Pennington  <hp@pobox.com>
9612
9613         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9614         Anders Gustafsson
9615
9616 2003-05-04  Havoc Pennington  <hp@pobox.com>
9617
9618         * tools/dbus-launch.c: implement
9619
9620         * bus/main.c (main), bus/bus.c (bus_context_new):
9621         implement --print-pid and --fork
9622
9623 2003-05-03  Havoc Pennington  <hp@redhat.com>
9624
9625         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9626         the address had no value, and add to test suite. Fix and
9627         regression test from Miloslav Trmac
9628
9629 2003-05-03  Havoc Pennington  <hp@pobox.com>
9630
9631         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9632         watch is invalid when handled
9633
9634         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9635         dbus-launch utility to launch the bus from a shell script.  Didn't
9636         actually implement dbus-launch yet, it's just a placeholder still.
9637
9638 2003-05-03  Havoc Pennington  <hp@pobox.com>
9639
9640         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9641         daemon; also documents daemon config file, so replaces
9642         doc/config-file.txt. Corrected some stuff from config-file.txt in
9643         the process of moving it.
9644
9645 2003-05-03  Havoc Pennington  <hp@pobox.com>
9646
9647         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9648         add some man pages
9649
9650 2003-05-03  Colin Walters  <walters@verbum.org>
9651
9652         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9653         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9654
9655         * Makefile.am: Update to use new .pc versioning scheme.
9656
9657 2003-05-02  Havoc Pennington  <hp@redhat.com>
9658
9659         * bus/system.conf.in: allow send/receive to/from message bus
9660         service
9661
9662 2003-04-30  Havoc Pennington  <hp@redhat.com>
9663
9664         * configure.in: print a note when building with unit tests and
9665         without assertions
9666
9667 2003-04-30  Havoc Pennington  <hp@redhat.com>
9668
9669         * Makefile.am: add a check-local that complains if you didn't
9670         configure with --enable-tests
9671
9672 2003-04-29  Havoc Pennington  <hp@redhat.com>
9673
9674         * glib/dbus-gmain.c: docs cleanups
9675
9676         * dbus/dbus-types.h: add docs on int64 types
9677
9678         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9679         public API docs section
9680
9681 2003-04-29  Havoc Pennington  <hp@redhat.com>
9682
9683         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9684         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9685         parallel install API version, not with the D-BUS package version.
9686
9687         * HACKING: move some of README over here
9688
9689         * README: updates, and document API/ABI policy
9690
9691         * configure.in: reindentation
9692
9693 2003-04-29  Havoc Pennington  <hp@redhat.com>
9694
9695         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9696         to use this library" to be sure people have the right
9697         expectations.
9698
9699 2003-04-28  Havoc Pennington  <hp@redhat.com>
9700
9701         * configure.in: add --enable-docs which by default is auto yes if
9702         doxygen and db2html found, no otherwise; but can be forced on/off
9703
9704         * doc/Makefile.am: conditionalize whether to build docs on
9705         --enable-docs
9706
9707 2003-04-28  Havoc Pennington  <hp@redhat.com>
9708
9709         * configure.in: 0.10
9710
9711         * NEWS: update
9712
9713         * bus/system.conf.in: add <includedir>system.d</includedir>
9714
9715         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9716         username was provided but not uid
9717
9718         * bus/config-parser.c (struct BusConfigParser): keep track of
9719         whether the parser is toplevel or was included; change some
9720         of the error handling if it's included.
9721
9722 2003-04-27  Havoc Pennington  <hp@pobox.com>
9723
9724         Unbreak my code...
9725
9726         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9727         report correct status if we finish processing authentication
9728         inside this function.
9729
9730         * bus/activation.c (try_send_activation_failure): use
9731         bus_transaction_send_error_reply
9732
9733         * bus/connection.c (bus_connection_get_groups): return an error
9734         explaining the problem
9735
9736         * bus/bus.c (bus_context_check_security_policy): implement
9737         restriction here that inactive connections can only send the
9738         hello message. Also, allow bus driver to send anything to
9739         any recipient.
9740
9741         * bus/connection.c (bus_connection_complete): create the
9742         BusClientPolicy here instead of on-demand.
9743         (bus_connection_get_policy): don't return an error
9744
9745         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9746         sender field in message being replied to
9747
9748         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9749         causing it to return FALSE always
9750
9751         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9752         we checked sender rather than destination
9753
9754 2003-04-25  Havoc Pennington  <hp@redhat.com>
9755
9756         test suite is slightly hosed at the moment, will fix soon
9757
9758         * bus/connection.c (bus_connections_expire_incomplete): fix to
9759         properly disable the timeout when required
9760         (bus_connection_set_name): check whether we can remove incomplete
9761         connections timeout after we complete each connection.
9762
9763         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9764         probably still broken.
9765
9766         * bus/services.c (bus_registry_acquire_service): implement max
9767         number of services owned, and honor allow/deny rules on which
9768         services a connection can own.
9769
9770         * bus/connection.c (bus_connection_get_policy): report errors here
9771
9772         * bus/activation.c: implement limit on number of pending
9773         activations
9774
9775 2003-04-25  Havoc Pennington  <hp@redhat.com>
9776
9777         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9778         where we used >= 0 instead of != DBUS_UID_UNSET.
9779
9780 2003-04-25  Havoc Pennington  <hp@redhat.com>
9781
9782         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9783         were toggled without add/remove, fix from Anders Gustafsson
9784
9785 2003-04-24  Havoc Pennington  <hp@redhat.com>
9786
9787         * test/data/valid-config-files/basic.conf: add <limit> tags to
9788         this test
9789
9790         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9791         <limit> tag in configuration file.
9792
9793 2003-04-24  Havoc Pennington  <hp@redhat.com>
9794
9795         * bus/dispatch.c: somehow missed some name_is
9796
9797         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9798         (_dbus_timeout_set_interval): new
9799
9800         * bus/connection.c (bus_connections_setup_connection): record time
9801         when each connection is first set up, and expire them after the
9802         auth timeout passes.
9803
9804 2003-04-24  Havoc Pennington  <hp@redhat.com>
9805
9806         * dbus/dbus-message.c (dbus_message_name_is): rename
9807         (dbus_message_service_is): rename
9808         (dbus_message_sender_is): rename
9809         (dbus_message_get_service): rename
9810
9811 2003-04-24  Havoc Pennington  <hp@redhat.com>
9812
9813         * configure.in: add --enable-checks
9814
9815         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9816
9817         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9818         to use thread locks.
9819         (_dbus_connection_handler_destroyed_locked): move some private
9820         functions into proper docs group
9821
9822         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9823         _dbus_return_val_if_fail
9824
9825         Throughout: use dbus_return_if_fail
9826
9827 2003-04-23  James Willcox  <jwillcox@gnome.org>
9828
9829         * glib/dbus-glib.h:
9830         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9831         (dbus_connection_setup_with_g_main),
9832         (dbus_server_setup_with_g_main):
9833         * glib/test-dbus-glib.c: (main):
9834         * glib/test-thread-client.c: (main):
9835         * glib/test-thread-server.c: (new_connection_callback), (main):
9836         * tools/dbus-monitor.c: (main):
9837
9838         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9839         and dbus_server_setup_with_g_main().
9840
9841 2003-04-20  Havoc Pennington  <hp@pobox.com>
9842
9843         * doc/dbus-specification.sgml: document the restrictions on
9844         message and service names
9845
9846 2003-04-22  Havoc Pennington  <hp@redhat.com>
9847
9848         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9849         support, and do some code cleanups to share more code and
9850         speed up array marshal/demarshal.
9851
9852         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9853
9854         * configure.in: generate dbus-arch-deps.h
9855
9856         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9857         64-bit typecodes
9858
9859 2003-04-22  Havoc Pennington  <hp@redhat.com>
9860
9861         * test/data/valid-messages/opposite-endian.message: fix test
9862         to use proper type for rply field
9863
9864         * test/data/invalid-messages: add tests for below validation
9865
9866         * dbus/dbus-message.c (decode_header_data): validate field types,
9867         and validate that named fields are valid names
9868         (decode_name_field): consider messages in the
9869         org.freedesktop.Local. namespace to be invalid.
9870
9871         * dbus/dbus-string.c (_dbus_string_validate_name): new
9872
9873 2003-04-19  Havoc Pennington  <hp@pobox.com>
9874
9875         * bus/driver.c (bus_driver_handle_hello): check limits and
9876         return an error if they are exceeded.
9877
9878         * bus/connection.c: maintain separate lists of active and inactive
9879         connections, and a count of each. Maintain count of completed
9880         connections per user. Implement code to check connection limits.
9881
9882         * dbus/dbus-list.c (_dbus_list_unlink): export
9883
9884         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9885         number of bytes in the message queue for a connection
9886
9887 2003-04-18  Havoc Pennington  <hp@pobox.com>
9888
9889         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9890
9891         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9892         memleaks
9893
9894         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9895         on realloc be sure to update the pointer in the keyring
9896
9897         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9898         offset to avoid writing to unallocated memory
9899
9900         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9901         try the next mechanism, so we properly handle OOM
9902
9903         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9904         on OOM.
9905         (_dbus_keyring_new): fix OOM bug
9906         (_dbus_keyring_new_homedir): always set error; impose a maximum
9907         number of keys we'll load from the file, mostly to speed up the
9908         test suite and make its OOM checks more useful, but also for
9909         general sanity.
9910
9911         * dbus/dbus-auth.c (process_error_server): reject authentication
9912         if we get an error from the client
9913         (process_cancel): on cancel, send REJECTED, per the spec
9914         (process_error_client): send CANCEL if we get an error from the
9915         server.
9916
9917 2003-04-18  Havoc Pennington  <hp@pobox.com>
9918
9919         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9920         debug spew
9921
9922         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9923         handling problem
9924
9925         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9926         about DBUS_TEST_HOMEDIR once
9927
9928         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9929         the environment
9930
9931         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9932         config file so we test the right thing
9933
9934         Throughout: assorted docs improvements
9935
9936 2003-04-18  Havoc Pennington  <hp@pobox.com>
9937
9938         * glib/dbus-gmain.c: adapt to watch changes
9939
9940         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9941
9942         * dbus/dbus-server.h: remove dbus_server_handle_watch
9943
9944         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9945
9946         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9947         like DBusTimeout, so we don't need dbus_connection_handle_watch
9948         etc.
9949
9950 2003-04-17  Havoc Pennington  <hp@redhat.com>
9951
9952         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9953         database usage so it all goes via the DBusUserDatabase cache.
9954
9955 2003-04-17  Havoc Pennington  <hp@redhat.com>
9956
9957         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9958         there was an OOM watch we skipped, we always return TRUE so we
9959         iterate again to have a look at it again. Fixes test suite hang.
9960         Code rearrangement also lets us lose some memset and only iterate
9961         over callbacks once.
9962
9963         * bus/driver.c (bus_driver_handle_message): sense of test for
9964         reply was backward
9965
9966 2003-04-16  Havoc Pennington  <hp@pobox.com>
9967
9968         * doc/dbus-specification.sgml: make spec say serials are unsigned
9969
9970         * dbus/dbus-message.h: change message serials to unsigned
9971
9972         * dbus/dbus-connection.c: adapt to message serials being unsigned
9973
9974 2003-04-15  Havoc Pennington  <hp@pobox.com>
9975
9976         * bus/bus.c: create and keep around a shared DBusUserDatabase
9977         object.
9978
9979         * bus/connection.c (bus_connection_get_groups): don't cache
9980         groups for user in the connection object, since user database
9981         object now does that.
9982
9983 2003-04-16  Havoc Pennington  <hp@redhat.com>
9984
9985         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9986         list of size counters
9987         (_dbus_message_loader_putback_message_link): put back a popped link
9988
9989         * dbus/dbus-connection.c
9990         (dbus_connection_set_max_live_messages_size): rename
9991         max_received_size
9992         (dbus_connection_get_outgoing_size): get size of outgoing
9993         queue
9994         (_dbus_connection_set_connection_counter): remove this cruft
9995
9996 2003-04-14  Havoc Pennington  <hp@redhat.com>
9997
9998         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9999         caching, but at some point we might want to be able to use a
10000         different database.
10001
10002         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10003         SHA1 conf file to test the sha1 auth mechanism, since the regular
10004         test always uses EXTERNAL when available.
10005
10006         * configure.in,
10007         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10008         add conf file that requires use of sha1 auth
10009
10010 2003-04-13  Havoc Pennington  <hp@pobox.com>
10011
10012         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10013         from Philip Blundell to send messages and monitor them.
10014
10015 2003-04-13  Havoc Pennington  <hp@pobox.com>
10016
10017         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10018         callbacks
10019
10020         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10021         users
10022
10023         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10024         fix to only recover unused bytes if we're already authenticated
10025         (_dbus_transport_get_is_authenticated): fix to still mark us
10026         authenticated if there are unused bytes.
10027
10028         * bus/dispatch.c: implement security policy checking
10029
10030         * bus/connection.c (bus_transaction_send_from_driver): new
10031
10032         * bus/bus.c (bus_context_check_security_policy): new
10033
10034         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10035         now we just set the DBusError and it gets converted to an error
10036         reply.
10037
10038         * bus/connection.c (allow_user_function): enable code using actual
10039         data from the config file
10040
10041         * bus/policy.c (list_allows_user): handle wildcard rules for
10042         user/group connection perms
10043
10044 2003-04-13  Havoc Pennington  <hp@pobox.com>
10045
10046         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10047
10048         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10049
10050         * bus/policy.c (bus_policy_append_mandatory_rule)
10051         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10052         (bus_policy_append_group_rule): new functions
10053
10054 2003-04-12  Havoc Pennington  <hp@pobox.com>
10055
10056         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10057
10058         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10059         the pid/gid/uid, just for paranoia.
10060
10061         * test/break-loader.c (randomly_do_n_things): find a byte
10062         containing a type code, and randomly change it to a different
10063         type code.
10064
10065 2003-04-12  Havoc Pennington  <hp@pobox.com>
10066
10067         * bus/policy.h: change BusPolicy to be the thing from the config
10068         file, and rename old BusPolicy to BusClientPolicy
10069
10070         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10071         match change in how policy works
10072
10073         * dbus/dbus-internals.h: mark assert_not_reached as
10074         __attribute((noreturn))__
10075
10076 2003-04-11  Havoc Pennington  <hp@redhat.com>
10077
10078         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10079         the broadcast service. Use boolean return for ServiceExists.
10080
10081 2003-04-11  Havoc Pennington  <hp@redhat.com>
10082
10083         * configure.in: add another directory to look for qt in.
10084
10085 2003-04-11  Havoc Pennington  <hp@redhat.com>
10086
10087         * AUTHORS: add Colin Walters
10088
10089 2003-04-11  Havoc Pennington  <hp@redhat.com>
10090
10091         * NEWS: update
10092
10093         * configure.in: 0.9
10094
10095 2003-04-11  Havoc Pennington  <hp@redhat.com>
10096
10097         * bus/messagebus.in: remove pid file when stopping the
10098         message bus, since the bus won't have privileges to remove it
10099         itself.
10100
10101 2003-04-11  Havoc Pennington  <hp@redhat.com>
10102
10103         * bus/bus.c (bus_context_new): move credentials change after
10104         creating pidfile
10105
10106 2003-04-11  Havoc Pennington  <hp@pobox.com>
10107
10108         * test/decode-gcov.c: add "below average functions" to the
10109         coverage report, and change how some of the code works.
10110
10111         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10112         not in the coverage stats.
10113
10114         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10115         couple places so running the test suite doesn't result in megaspam.
10116
10117 2003-04-11  Havoc Pennington  <hp@pobox.com>
10118
10119         * bus/dispatch.c (check_existent_service_activation): accept a no
10120         memory error in a place we didn't before
10121
10122         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10123         in case the first one failed," since the test suite is less
10124         broken now.
10125
10126 2003-04-10  Havoc Pennington  <hp@pobox.com>
10127
10128         * bus/dispatch.c (check_segfault_service_activation): add test
10129         for launching an executable that just crashes.
10130
10131         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10132         don't leave a million cores. We'll see how portable this is.
10133
10134 2003-04-10  Havoc Pennington  <hp@pobox.com>
10135
10136         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10137         the possible parent failures before we fork, so that we don't
10138         fail to create a babysitter after creating the child.
10139
10140         * bus/activation.c (bus_activation_activate_service): kill child
10141         if we don't successfully complete the activation.
10142
10143 2003-04-10  Havoc Pennington  <hp@redhat.com>
10144
10145         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10146         the connection if it's disconnected
10147
10148         * bus/activation.c (bus_activation_service_created): use new
10149         transaction features to roll back removal of pending activation if
10150         we don't successfully create the service after all. Don't remove
10151         pending activation if the function fails.
10152
10153         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10154         (_dbus_list_insert_after_link): new code to facilitate
10155         services.c fixes
10156
10157         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10158         new functionality, so we can preallocate the ability to insert
10159         into a hash table.
10160
10161         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10162         allowing us to put custom hooks in a transaction to be used for
10163         cancelling said transaction
10164
10165         * doc/dbus-specification.sgml: add some discussion of secondary
10166         service owners, and disallow zero-length service names
10167
10168         * bus/services.c (bus_registry_acquire_service): new function,
10169         splits out part of bus_driver_handle_acquire_service() and fixes
10170         a bug where we didn't remove the service doing the acquiring
10171         from the secondary queue if we failed to remove the current owner
10172         from the front of the queue.
10173
10174 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10175
10176         * doc/dbus-specification.sgml:
10177         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10178
10179 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10180
10181         * bus/.cvsignore:
10182         * glib/.cvsignore:
10183         * test/.cvsignore:
10184         Added files to cvsignore
10185
10186         * dbus/dbus-message.h:
10187         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10188         Make get_named() take two out argument and return a boolean.
10189         (dbus_message_iter_get_args_valist):
10190         Update usage of get_named().
10191         (dbus_message_iter_append_byte):
10192         Fix typo
10193         (dbus_message_iter_append_named)
10194         Fix typo
10195         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10196         More tests.
10197
10198 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10199
10200         * dbus/dbus-marshal.[ch]:
10201         Add array_type_pos argument to _dbus_marshal_validate_arg.
10202         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10203
10204         * dbus/dbus-message.[ch]:
10205         Multi-dimensional arrays have full type specification in the
10206         outermost array. Iter code re-arranged to handle this.
10207         Added some more iter tests.
10208
10209         * doc/dbus-specification.sgml:
10210         Add me to authors.
10211         Remove old FIXME.
10212         Update new array encoding description.
10213         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10214
10215         * test/data/invalid-messages/array-with-mixed-types.message:
10216         * test/data/valid-messages/array-of-array-of-uint32.message:
10217         Change to the new array format.
10218
10219         * test/data/invalid-messages/too-short-dict.message:
10220         Fix bug in test.
10221
10222         * test/data/valid-messages/recursive-types.message:
10223         Fix up and extend test.
10224
10225 2003-04-10  Havoc Pennington  <hp@pobox.com>
10226
10227         * bus/dispatch.c: lots of fixes
10228
10229         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10230         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10231         that was crack, broke the test service.
10232
10233         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10234         handling to avoid piling up errors if we get a failure on the
10235         first address.
10236
10237         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10238         pid in assertion failures.
10239
10240         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10241         to some fixed size of file descriptor array. Don't return TRUE
10242         anytime a timeout exists, that led to lots of busy loop silliness
10243         in the tests.
10244
10245 2003-04-09  Havoc Pennington  <hp@redhat.com>
10246
10247         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10248         I'd checked this in earlier but hadn't.
10249
10250 2003-04-09  Havoc Pennington  <hp@redhat.com>
10251
10252         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10253         the activation test (man this is getting old!)
10254
10255 2003-04-09  Havoc Pennington  <hp@redhat.com>
10256
10257         * test/test-utils.c: use dispatch status function to fix this up
10258
10259         * bus/connection.c (connection_watch_callback): don't dispatch
10260         from here
10261         (connection_timeout_callback): don't dispatch from here
10262         (bus_connections_setup_connection): set the dispatch status function
10263         (bus_connection_disconnected): unset it
10264
10265         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10266         used to add a connection to be dispatched
10267         (_dbus_loop_iterate): do the dispatching at the end of each
10268         iteration
10269
10270         * dbus/dbus-connection.c
10271         (dbus_connection_set_dispatch_status_function): new function
10272         allowing us to fix up main loop usage
10273         (_dbus_connection_last_unref): free all the various function
10274         user data
10275         (dbus_connection_dispatch): call the DispatchStatusFunction
10276         whenever this function returns
10277         (dbus_connection_handle_watch): call DispatchStatusFunction
10278         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10279         (reply_handler_timeout): call DispatchStatusFunction
10280         (dbus_connection_flush): call DispatchStatusFunction
10281
10282 2003-04-09  Havoc Pennington  <hp@redhat.com>
10283
10284         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10285         a memory leak
10286
10287         * bus/dispatch.c (check_service_activated): fix bug in test
10288
10289         * dbus/dbus-mainloop.c (check_timeout): fix this up
10290
10291         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10292         verbose output so we can sort out output from different processes,
10293         e.g. in the activation case.
10294
10295 2003-04-08  Colin Walters  <walters@gnu.org>
10296
10297         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10298         the pid file.
10299         (bus_context_new): Set it.
10300         (bus_context_unref): Use it to delete the pid file.
10301
10302 2003-04-08  Havoc Pennington  <hp@redhat.com>
10303
10304         * test/data/invalid-messages/array-with-mixed-types.message:
10305         regression test that fails for the moment
10306
10307         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10308         tests for convenience
10309
10310         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10311         array of nil, it broke things.
10312
10313         * test/data/invalid-messages/array-of-nil.message: regression test
10314
10315         * test/data/valid-messages/array-of-array-of-uint32.message:
10316         happened to write this so added it to suite
10317
10318 2003-04-08  Havoc Pennington  <hp@redhat.com>
10319
10320         * bus/driver.c (bus_driver_handle_acquire_service): init
10321         retval/reply before checking name
10322
10323         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10324         recursion depth argument
10325
10326         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10327         in the public struct for future extension
10328
10329         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10330         typo
10331
10332         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10333         message
10334
10335         * doc/dbus-specification.sgml: fix typo
10336
10337 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10338
10339         Implemented recursive types, named types and new-style iters
10340
10341         * bus/driver.c:
10342         * glib/test-thread-client.c: (thread_func):
10343         * glib/test-thread-server.c: (handle_test_message):
10344         * test/test-service.c: (handle_echo):
10345         Update to new api
10346
10347         * dbus/Makefile.am:
10348         * dbus/dbus-dict.c:
10349         * dbus/dbus-dict.h:
10350         * dbus/dbus.h
10351         Remove DBusDict
10352
10353         * dbus/dbus-internals.c: (_dbus_type_to_string):
10354         Update for new types.
10355
10356         * dbus/dbus-marshal.[ch]:
10357         Implement recursive types and the new marshalling format.
10358         Remove hardcoded dict marshalling.
10359         Marshal named types.
10360
10361         * dbus/dbus-message-builder.c:
10362         Add BYTE_ARRAY.
10363         Remove references to old types
10364
10365         * dbus/dbus-message.[ch]:
10366         New non-refcounted iter API that supports recursive iters.
10367         Use iters for appending, including support for recursive
10368         iters.
10369         Add byte and named type support.
10370         Update everything to new marshalling formats.
10371         Add tests for new API.
10372
10373         * dbus/dbus-protocol.h:
10374         Remove old array types.
10375         Add types: BYTE, ARRAY, DICT, NAMED
10376
10377         * dbus/dbus-string.c:
10378         * dbus/dbus-sysdeps.c:
10379         Make parse_double locale safe.
10380
10381         * dbus/dbus-test-main.c:
10382         Call setlocale.
10383
10384         * dbus/dbus-test.c:
10385         Kill dict test
10386
10387         * doc/dbus-specification.sgml:
10388         Update spec
10389
10390         * test/data/incomplete-messages/missing-body.message:
10391         * test/data/invalid-messages/bad-boolean.message:
10392         * test/data/invalid-messages/bad-boolean-array.message:
10393         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10394         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10395         * test/data/invalid-messages/too-short-dict.message:
10396         * test/data/valid-messages/dict-simple.message:
10397         * test/data/valid-messages/dict.message:
10398         * test/data/valid-messages/emptiness.message:
10399         * test/data/valid-messages/lots-of-arguments.message:
10400         * test/data/valid-messages/no-padding.message:
10401         * test/data/valid-messages/recursive-types.message:
10402         Add missing NAME fields
10403         Fix up dicts & arrays
10404
10405         * test/data/invalid-messages/dict-with-nil-value.message:
10406         Removed, this is not invalid anymore.
10407
10408         * test/data/valid-messages/recursive-types.message:
10409         Add new test for deeply recursive types.
10410
10411 2003-04-07  Havoc Pennington  <hp@pobox.com>
10412
10413         * bus/driver.c (bus_driver_handle_acquire_service): return an
10414         error if you try to acquire a service that starts with ':'
10415
10416 2003-04-07  Havoc Pennington  <hp@redhat.com>
10417
10418         * doc/dbus-specification.sgml: require that base service names
10419         start with ':' and that the base service is created/deleted
10420         as first and last things a connection does on the bus
10421
10422         * bus/dispatch.c (check_existent_service_activation): lots more
10423         work on the activation test; it doesn't fully pass yet...
10424
10425         * test/test-service.c (main): fix so we don't memleak the
10426         connection to the message bus
10427         (filter_func): accept a message asking us to exit
10428
10429 2003-04-06  Havoc Pennington  <hp@pobox.com>
10430
10431         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10432         from Colin Walters
10433
10434         * configure.in: fixes to Qt detection from Colin Walters
10435
10436         * doc/Makefile.am: Only remove generated docbook dirs if they
10437         exist, from Colin Walters
10438
10439         * dbus/dbus-bus.c: change how we set well-known connections to
10440         NULL, so that it works if a single connection is stored in
10441         two well-known array slots.
10442
10443         * test/Makefile.am: remove a lot of stuff that isn't immediately
10444         useful, it's in CVS history if we want it.
10445
10446         * test/test-service.c: use dbus-mainloop instead of that
10447         watch.[hc] crack
10448
10449 2003-04-06  Havoc Pennington  <hp@pobox.com>
10450
10451         * dbus/Makefile.am: split lists of sources into stuff that goes in
10452         the library, util functions that go in the lib and are also used
10453         elsewhere, and util functions that are used in tests/daemon but
10454         don't go in the lib.
10455
10456         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10457         here so it can be used in test binaries also
10458
10459 2003-04-06  Havoc Pennington  <hp@pobox.com>
10460
10461         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10462         here in the parent process, so we can return an error if it
10463         fails. Also, move some of the code into the child so the parent
10464         is less hosed if we fail midway through.
10465
10466         * bus/bus.c (bus_context_new): move pidfile detection further up
10467         in the function, before we start overwriting sockets and such.
10468
10469         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10470
10471         * configure.in: add --with-system-pid-file and --with-system-socket
10472
10473 2003-04-06  Colin Walters  <walters@verbum.org>
10474
10475         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10476
10477         * bus/system.conf.in: Declare a pidfile.
10478
10479         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10480         create one (if appropriate).
10481
10482         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10483         (struct BusConfigParser) [pidfile]: New.
10484         (element_type_to_name, merge_included, start_busconfig_child)
10485         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10486         (bus_config_parser_unref): Free it.
10487         (bus_config_parser_get_pidfile): New function.
10488
10489         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10490
10491         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10492
10493         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10494
10495         * dbus/dbus-sysdeps.h: Prototype it.
10496
10497 2003-04-06  Havoc Pennington  <hp@pobox.com>
10498
10499         * bus/bus.c (bus_context_new): print the address in here, rather
10500         than in main(), because we need to do it before forking the daemon
10501
10502         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10503         on the service nonexistent error
10504
10505         * bus/driver.c (bus_driver_handle_acquire_service): set the
10506         sender on the AcquireService reply
10507
10508         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10509         server also listen on a UNIX socket so services can connect to it.
10510
10511 2003-04-06  Havoc Pennington  <hp@pobox.com>
10512
10513         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10514         so it detects deadlocks and also we actually init threads when
10515         debugging.
10516
10517 2003-04-06  Havoc Pennington  <hp@pobox.com>
10518
10519         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10520         save the domain socket name, and unlink it when we disconnect the
10521         server. Means that at least when we exit normally, we won't leave
10522         a bunch of junk in /tmp
10523
10524         * dbus/dbus-transport-unix.c
10525         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10526         memory management). (I was making a real change here but then
10527         didn't)
10528
10529 2003-04-06  Havoc Pennington  <hp@pobox.com>
10530
10531         * bus/bus.c (bus_context_new): fix wrong handling of
10532         server_data_slot_unref() in the error case.
10533
10534         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10535         "(condition) != 0" to _dbus_real_assert so that
10536         "_dbus_assert (pointer)" doesn't cause a warning
10537
10538         * bus/main.c (main): accept --print-address option to print out
10539         the message bus address
10540
10541         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10542
10543         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10544         "tmpdir" option to unix: address on client side
10545
10546         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10547         to unix: address
10548
10549         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10550         we can use to create sockets in the test suite.
10551
10552         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10553         cleanly. To be used for testing.
10554
10555         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10556
10557         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10558
10559         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10560         handle trying to call this when there's no servers active
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * NEWS: update
10565
10566         * configure.in: 0.8
10567
10568 2003-04-05  Havoc Pennington  <hp@pobox.com>
10569
10570         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10571         crash on startup. Need to get "try starting the daemon"
10572         in the test suite I guess. ;-)
10573
10574         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10575         tracked the number of open connections; it's better done in
10576         application-specific code as you want it to span all servers etc.
10577
10578 2003-04-05  Havoc Pennington  <hp@pobox.com>
10579
10580         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10581         patch from Colin Walters
10582
10583 2003-04-05  Havoc Pennington  <hp@pobox.com>
10584
10585         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10586         reality; in fact multiple mechanisms are allowed.
10587
10588         * dbus/dbus-internals.c (_dbus_real_assert)
10589         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10590         _dbus_assert_not_reached() into functions, so that they don't show
10591         up in basic block counts for test coverage, and don't use up as
10592         much disk space. Does mean slower execution speed though, so
10593         assumes --disable-asserts is the normal production case.
10594
10595 2003-04-05  Havoc Pennington  <hp@pobox.com>
10596
10597         * test/Makefile.am (dist-hook): also dist *.in files
10598
10599         * NEWS: update
10600
10601         * configure.in: 0.7
10602
10603 2003-04-05  Havoc Pennington  <hp@pobox.com>
10604
10605         * dbus/dbus-string.c: docs warning
10606
10607         * dbus/dbus-spawn.c: missing docs
10608
10609         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10610
10611 2003-04-05  Havoc Pennington  <hp@pobox.com>
10612
10613         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10614         magic from GLib
10615
10616         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10617         to -1 once we've reaped the babysitter
10618         (_dbus_babysitter_handle_watch): do as much work as we can, not
10619         just one go of it
10620
10621         * bus/activation.c: add code using DBusBabysitter so that we
10622         handle it when a service fails to start up properly.
10623         (bus_activation_service_created): don't remove the activation
10624         entries as we go, just let them get removed when we free the pending
10625         activation. Unref reply messages after sending them.
10626
10627 2003-04-05  Havoc Pennington  <hp@pobox.com>
10628
10629         * test/decode-gcov.c (main): print per-directory stats in the report
10630
10631         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10632
10633 2003-04-05  Havoc Pennington  <hp@pobox.com>
10634
10635         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10636
10637         * test/decode-gcov.c: hack up a little program to suck data
10638         out of gcov files. Yes this is sort of silly.
10639
10640         * configure.in: define something in config.h and do an
10641         AM_CONDITIONAL when gcov is enabled
10642
10643 2003-04-04  Havoc Pennington  <hp@redhat.com>
10644
10645         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10646         return a "babysitter" object that is used to monitor the status of
10647         the spawned process and reap it when required.
10648
10649         * test/test-segfault.c, test/test-exit.c,
10650         test/test-sleep-forever.c: binaries that do various lame things,
10651         used in the test suite.
10652
10653         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10654
10655 2003-04-03  Havoc Pennington  <hp@pobox.com>
10656
10657         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10658         in preparation for modifying it, dbus-sysdeps is getting
10659         a bit unmanageable.
10660
10661 2003-04-03  Havoc Pennington  <hp@redhat.com>
10662
10663         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10664         have multiple ones
10665
10666         * bus/*.[hc]: adapt to mainloop change
10667
10668 2003-04-03  Havoc Pennington  <hp@redhat.com>
10669
10670         * bus/activation.c (load_directory): fix up memleaks
10671         (bus_activation_entry_free): free the entry
10672
10673         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10674         we get one from the message bus; fix memleaks.
10675
10676         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10677
10678 2003-04-03  Havoc Pennington  <hp@pobox.com>
10679
10680         * bus/config-parser.c (bus_config_parser_unref): free
10681         list of mechanisms, bug discovered by test suite enhancements
10682         (putting system.conf and session.conf into suite)
10683
10684         * test/Makefile.am, test/test-service.c: add placeholder for a
10685         test service that we'll activate as part of test suite. Doesn't
10686         do anything yet.
10687
10688         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10689         setting NULL value, and use system malloc not dbus_malloc()
10690         when we have unavoidable memleakage.
10691
10692         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10693         didn't work, and support DBUS_BUS_ACTIVATION.
10694
10695         * bus/activation.c (child_setup): pass our well-known bus type to
10696         the child
10697
10698         * bus/config-parser.c: support <type> to specify well-known type
10699
10700         * doc/dbus-specification.sgml: document the env variables to
10701         locate well-known buses and find service activator
10702
10703 2003-04-02  Havoc Pennington  <hp@redhat.com>
10704
10705         * test/Makefile.am (all-local): add a rule to copy tests to
10706         builddir, so we can have generated tests. Use this to remove the
10707         silly hack for testing system.conf and session.conf. Will use this
10708         shortly to generate .service files pointing to test binaries.
10709
10710 2003-04-02  Havoc Pennington  <hp@redhat.com>
10711
10712         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10713         current alloc and needed new length, not max of the doubled
10714         allocation and needed new length. Also, when building tests,
10715         don't do the double-allocation stuff, just realloc every time.
10716
10717 2003-04-02  Havoc Pennington  <hp@redhat.com>
10718
10719         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10720         in error messages
10721         (_dbus_string_get_dirname): new
10722         (_dbus_sysdeps_test): new
10723         (_dbus_directory_open): include dirnames in error messages
10724
10725         * bus/config-parser.c: interpret <include> and <includedir> and
10726         <servicedir> relative to config file location if the given
10727         filename is not absolute.
10728
10729         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10730
10731 2003-04-02  Havoc Pennington  <hp@redhat.com>
10732
10733         * bus/connection.c (bus_transaction_send_error_reply): set sender
10734         service for the error, and unref the reply on success
10735
10736         * bus/activation.c: convert to use BusTransaction so OOM can be
10737         handled correctly
10738         (bus_activation_service_created): set sender of the message
10739
10740 2003-04-01  Havoc Pennington  <hp@redhat.com>
10741
10742         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10743         <includedir> (at least mostly)
10744
10745         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10746         first, then the user ID
10747
10748 2003-04-01  Havoc Pennington  <hp@pobox.com>
10749
10750         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10751         function
10752
10753         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10754
10755         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10756
10757         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10758         socket 0777, and unlink any existing socket.
10759
10760         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10761         the configuration file so specifies; set up auth mechanism
10762         restrictions
10763
10764         * bus/config-parser.c (bus_config_parser_content): add support
10765         for <fork> option and fill in code for <auth>
10766
10767         * bus/system.conf.in: add <fork/> to default configuration,
10768         and limit auth mechanisms to EXTERNAL
10769
10770         * doc/config-file.txt (Elements): add <fork>
10771
10772         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10773         (_dbus_change_identity): new function
10774
10775 2003-03-31  Havoc Pennington  <hp@redhat.com>
10776
10777         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10778         (_dbus_listen_unix_socket): fix off-by-one error in null
10779         termination spotted by Nalin
10780
10781 2003-03-31  Havoc Pennington  <hp@redhat.com>
10782
10783         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10784         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10785         having a real home directory available.
10786
10787 2003-03-31  Havoc Pennington  <hp@redhat.com>
10788
10789         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10790
10791         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10792
10793         * configure.in: add support for specifying a style of init script
10794         to install
10795
10796 2003-03-31  Havoc Pennington  <hp@redhat.com>
10797
10798         Fix some annoying DBusString API and fix all affected code.
10799
10800         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10801         max_length argument
10802         (_dbus_string_get_data): change to return string instead of using
10803         an out param
10804         (_dbus_string_get_const_data): ditto
10805         (_dbus_string_get_data_len): ditto
10806         (_dbus_string_get_const_data_len): ditto
10807
10808 2003-03-31  Havoc Pennington  <hp@redhat.com>
10809
10810         * bus/main.c (main): fix up the command line arguments to be nicer
10811
10812 2003-03-31  Havoc Pennington  <hp@redhat.com>
10813
10814         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10815         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10816         final location that lands in the config file
10817
10818         * bus/config-loader-expat.c (bus_config_load): fix type of
10819         XML_Parser variable
10820
10821         * doc/TODO: remove TODO item for dbus_bus_get()
10822
10823         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10824
10825 2003-03-31  Havoc Pennington  <hp@pobox.com>
10826
10827         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10828         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10829         argument since they are always client side
10830
10831         * dbus/dbus-server.c (dbus_server_get_address): new function
10832
10833         * bus/main.c (main): take the configuration file as an argument.
10834
10835         * test/data/valid-config-files/debug-allow-all.conf: new file to
10836         use with dispatch.c tests for example
10837
10838         * bus/test-main.c (main): require test data dir
10839
10840         * bus/bus.c (bus_context_new): change this to take a
10841         configuration file name as argument
10842
10843         * doc/config-file.txt (Elements): add <servicedir>
10844
10845         * bus/system.conf, bus/session.conf: new files
10846
10847         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10848         well-known socket if none set
10849
10850         * configure.in: create system.conf and session.conf
10851
10852 2003-03-30  Havoc Pennington  <hp@pobox.com>
10853
10854         * bus/config-parser.c: hacking
10855
10856         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10857         to shut down, since it could cause weirdness with the DBusList
10858         lock
10859
10860         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10861         link-oriented stack routines
10862         (alloc_link): free the mempool if the first alloc from it fails
10863
10864         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10865
10866         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10867         from GLib
10868         (_dbus_string_skip_white): new
10869
10870         * doc/config-file.txt (Elements): add <includedir>
10871
10872 2003-03-28  Havoc Pennington  <hp@pobox.com>
10873
10874         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10875         (_dbus_string_copy_data): new functions
10876
10877 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10878
10879         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10880         * dbus/dbus-bus.h:
10881         Add dbus_bus_get.
10882
10883         * dbus/dbus-memory.c:
10884         Fix a doc comment.
10885
10886 2003-03-28  Havoc Pennington  <hp@pobox.com>
10887
10888         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10889         I think it may have just been superstition. Not sure.
10890
10891         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10892         failures that were not being handled.
10893
10894         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10895
10896         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10897         row that will fail on out-of-memory.
10898
10899         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10900         function for testing out-of-memory handling.
10901
10902         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10903         allocation functions, they do map exactly to the expat ones.
10904
10905 2003-03-27  Havoc Pennington  <hp@redhat.com>
10906
10907         * bus/config-loader-libxml.c (bus_config_load): add another error
10908         check
10909
10910 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10911
10912         * doc/TODO:
10913         Add note about automatic service activation.
10914
10915         * doc/dbus-specification.sgml:
10916         Rename the specification and clarify a few things.
10917
10918 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10919
10920         * Doxyfile.in:
10921         * dbus/dbus-address.c:
10922         * dbus/dbus-dict.c:
10923         * dbus/dbus-marshal.c:
10924         * dbus/dbus-server-debug-pipe.c:
10925         * dbus/dbus-transport-unix.c:
10926         Fix documentation warnings.
10927
10928 2003-03-26  Havoc Pennington  <hp@pobox.com>
10929
10930         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10931         after every test so it's quick and easy to see which leaked, and
10932         so we test multiple dbus_shutdown() calls
10933
10934         * configure.in: change configure.in XML stuff to also support
10935         expat
10936
10937         * config-loader-libxml.c: some hacking
10938
10939         * config-loader-expat.c: some hacking
10940
10941         * config-parser.c: some hacking, plus tests
10942
10943 2003-03-25  Havoc Pennington  <hp@redhat.com>
10944
10945         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10946
10947         * configure.in: add --with-xml option to specify XML library,
10948         right now only libxml is supported.
10949
10950         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10951         nonworking code between home and work, still just stubs
10952
10953 2003-03-24  Havoc Pennington  <hp@redhat.com>
10954
10955         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10956         file
10957
10958         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10959         NULL argument for "message" if the error is a well-known one,
10960         fill in a generic message in this case.
10961
10962         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10963         favor of DBusError
10964
10965         * bus/test.c (bus_test_flush_bus): add
10966
10967         * bus/policy.c (bus_policy_test): test code stub
10968
10969 2003-03-24  Havoc Pennington  <hp@pobox.com>
10970
10971         * bus/connection.c (bus_connections_setup_connection): set up
10972         the "can this user connect" function, but it always returns
10973         TRUE until we have a config file parser so we can have a config
10974         file that allows connections.
10975
10976 2003-03-23  Havoc Pennington  <hp@pobox.com>
10977
10978         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10979         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10980         the mutex, so we can check for proper memory management
10981         and OOM handling.
10982
10983         * dbus/dbus-dataslot.c: remove the mutex from
10984         DBusDataSlotAllocator and lock it manually when using it,
10985         to simplify fitting it into the global slots framework.
10986
10987         * dbus/dbus-threads.c (init_static_locks): rework how we're
10988         handling global locks so they are easily shut down.
10989
10990         * bus/policy.c (bus_policy_append_rule): fix
10991
10992         * bus/test-main.c (main): check for memleaks
10993
10994         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10995         test suite check for memleaks
10996
10997         * dbus/dbus-memory.c: add support in test mode for tracking
10998         number of outstanding blocks
10999
11000 2003-03-23  Havoc Pennington  <hp@pobox.com>
11001
11002         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11003         policies code
11004
11005         * dbus/dbus-hash.h: add ULONG hash keys
11006
11007         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11008         (_dbus_get_group_id): new function
11009
11010 2003-03-20  Havoc Pennington  <hp@redhat.com>
11011
11012         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11013         new function
11014         (dbus_connection_get_unix_user): new function
11015
11016 2003-03-20  Havoc Pennington  <hp@pobox.com>
11017
11018         * bus/connection.c (bus_connection_send_oom_error): assert that
11019         message has a sender
11020         (connection_execute_transaction): ditto
11021         (bus_connection_preallocate_oom_error): fix to set the sender, and
11022         set recipient to the destination service, not the bus driver
11023
11024         * bus/policy.c: hacking
11025
11026         * dbus/dbus-message.c (dbus_message_service_is): new function
11027         (dbus_message_sender_is): new
11028
11029 2003-03-19  Havoc Pennington  <hp@redhat.com>
11030
11031         * bus/policy.c: start sketching code for policy restrictions on
11032         what connections can do.
11033
11034 2003-03-18  Havoc Pennington  <hp@redhat.com>
11035
11036         * doc/TODO: some notes on high-level todo items. Little nitpick
11037         stuff is all in @todo, so no need to add it here.
11038
11039         * doc/config-file.txt: some notes on how config file might look
11040
11041 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11042
11043         * configure.in: 0.6
11044
11045         * NEWS: Update.
11046
11047 2003-03-17  Havoc Pennington  <hp@redhat.com>
11048
11049         * dbus/dbus-internals.h: add gcc attributes so that
11050         our printf-style functions warn on bad arguments to
11051         format
11052
11053         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11054         format bug
11055
11056         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11057         printf format bug
11058
11059 2003-03-17  Havoc Pennington  <hp@redhat.com>
11060
11061         * bus/test-main.c (main): make it print something as it runs
11062         so make check doesn't look stuck
11063
11064         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11065         from CVS, now obsolete
11066
11067 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11068
11069         * bus/dispatch.c: (bus_dispatch):
11070         Refetch the service name since it may have been reallocated
11071         when dbus_message_set_sender was called.
11072
11073         * dbus/dbus-sysdeps.c: (_dbus_accept):
11074         Add address and address length variables and use them to stop
11075         valgrind from complaining.
11076
11077 2003-03-17  Havoc Pennington  <hp@pobox.com>
11078
11079         All tests pass, no memleaks, no valgrind complaints.
11080
11081         * bus/test.c: refcount handler_slot
11082
11083         * bus/connection.c (bus_connections_new): refcount
11084         connection_data_slot
11085
11086         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11087         bytes so that auth scripts pass.
11088
11089         * bus/dispatch.c: init message_handler_slot so it gets allocated
11090         properly
11091
11092         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11093
11094         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11095         dealloc server_pipe_hash when no longer used for benefit of
11096         leak checking
11097
11098         * dbus/dbus-auth.c (process_command): memleak fix
11099
11100         * bus/dispatch.c (check_hello_message): memleak fix
11101
11102 2003-03-16  Havoc Pennington  <hp@pobox.com>
11103
11104         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11105
11106 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11107
11108         * bus/activation.c (bus_activation_activate_service): Append
11109         the pending activation entry to the list of pending activations.
11110
11111 2003-03-16  Havoc Pennington  <hp@pobox.com>
11112
11113         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11114         connections
11115
11116         * dbus/dbus-address.c (create_entry): fix OOM handling when
11117         failing to alloc entry->method
11118
11119 2003-03-16  Havoc Pennington  <hp@pobox.com>
11120
11121         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11122         the watch
11123
11124         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11125         add some missing dbus_set_result
11126
11127         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11128         alloc the DBusMessageHandler
11129
11130         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11131         the transport here, since we call this from the finalizer; it
11132         resulted in a double-finalize.
11133
11134         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11135         where we tried to use transport->connection that was NULL,
11136         happened when transport was disconnected early on due to OOM
11137
11138         * bus/*.c: adapt to handle OOM for watches/timeouts
11139
11140         * dbus/dbus-transport-unix.c: port to handle OOM during
11141         watch handling
11142
11143         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11144         reference to unused bytes instead of a copy
11145
11146         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11147         out of memory
11148
11149         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11150         FALSE on OOM
11151
11152         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11153         of memory
11154
11155 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11156
11157         * doc/dbus-specification.sgml:
11158         Document reply message for ActivateService.
11159
11160 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11161
11162         * bus/activation.c: (bus_pending_activation_entry_free),
11163         (bus_pending_activation_free), (bus_activation_new),
11164         (bus_activation_unref), (bus_activation_service_created),
11165         (bus_activation_activate_service):
11166         * bus/activation.h:
11167         * bus/bus.c: (bus_context_new):
11168         * bus/desktop-file.c: (new_section):
11169         * bus/driver.c: (bus_driver_send_service_deleted),
11170         (bus_driver_handle_activate_service):
11171         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11172         * bus/services.h:
11173         * dbus/dbus-connection.c:
11174         (dbus_connection_send_with_reply_and_block):
11175         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11176         * dbus/dbus-protocol.h:
11177         Make activation work better. Now pending activations will be queued
11178         and the daemon won't try to activate services that are already registered.
11179
11180 2003-03-16  Havoc Pennington  <hp@pobox.com>
11181
11182         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11183         connection data
11184
11185         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11186         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11187
11188 2003-03-16  Havoc Pennington  <hp@pobox.com>
11189
11190         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11191         this. always run the test suite before commit...
11192
11193         * bus/*: adapt to DBusConnection API changes
11194
11195         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11196         requires renaming stuff to avoid dbus_connection_dispatch name
11197         conflict.
11198
11199         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11200         function
11201
11202         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11203         separate from _dbus_message_loader_return_buffer()
11204
11205         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11206         this, because it's now always broken to use; the number of
11207         messages in queue vs. the number still buffered by the message
11208         loader is undefined/meaningless. Should use
11209         dbus_connection_get_dispatch_state().
11210         (dbus_connection_dispatch): rename from
11211         dbus_connection_dispatch_message
11212
11213 2003-03-16  Havoc Pennington  <hp@pobox.com>
11214
11215         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11216         implementation
11217
11218 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11219
11220         * dbus/dbus-connection.c:
11221         (dbus_connection_send_with_reply_and_block):
11222         Decrease connection->n_incoming when removing an entry
11223         from the list.
11224         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11225         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11226         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11227         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11228         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11229         (dbus_dict_get_byte_array):
11230         Handle NULL arrays and strings. Also add support for byte arrays.
11231
11232         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11233         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11234         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11235         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11236         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11237         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11238         * dbus/dbus-marshal.h:
11239         Add support for marshalling and demarshalling empty arrays and strings.
11240
11241         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11242         (dbus_message_append_string_array),
11243         (dbus_message_iter_get_boolean),
11244         (dbus_message_iter_get_boolean_array),
11245         (dbus_message_iter_get_int32_array),
11246         (dbus_message_iter_get_uint32_array),
11247         (dbus_message_iter_get_double_array),
11248         (dbus_message_iter_get_byte_array),
11249         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11250         (check_message_handling):
11251         Add support for getting empty arrays and dicts.
11252
11253         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11254         Don't do any validation at all for now, that's better than just checking
11255         for ASCII.
11256
11257         * test/data/valid-messages/emptiness.message:
11258         New test message with lots of empty arrays.
11259
11260 2003-03-16  Havoc Pennington  <hp@pobox.com>
11261
11262         * dbus/dbus-connection.c
11263         (_dbus_connection_queue_received_message_link): new function that
11264         can't fail due to OOM
11265
11266         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11267         new function pops a message together with a list link
11268         containing it.
11269
11270         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11271         message queuing functions to avoid needing to alloc memory
11272
11273 2003-03-16  Havoc Pennington  <hp@pobox.com>
11274
11275         Oops - test code was only testing failure of around 30 of the
11276         mallocs in the test path, but it turns out there are 500+
11277         mallocs. I believe this was due to misguided linking setup such
11278         that there was one copy of dbus_malloc etc. in the daemon and one
11279         in the shared lib, and only daemon mallocs were tested. In any
11280         case, the test case now tests all 500+ mallocs, and doesn't pass
11281         yet, though there are lots of fixes in this patch.
11282
11283         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11284         this so that it doesn't need to allocate memory, since it
11285         has no way of indicating failure due to OOM (and would be
11286         annoying if it did).
11287
11288         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11289
11290         * bus/Makefile.am: rearrange to create two self-contained
11291         libraries, to avoid having libraries with overlapping symbols.
11292         that was resulting in weirdness, e.g. I'm pretty sure there
11293         were two copies of global static variables.
11294
11295         * dbus/dbus-internals.c: move the malloc debug stuff to
11296         dbus-memory.c
11297
11298         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11299         empty.
11300
11301         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11302
11303         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11304         on failure.
11305
11306         * bus/dispatch.c (bus_dispatch_add_connection): free
11307         message_handler_slot when no longer using it, so
11308         memory leak checkers are happy for the test suite.
11309
11310         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11311
11312         * bus/bus.c (new_connection_callback): disconnect in here if
11313         bus_connections_setup_connection fails.
11314
11315         * bus/connection.c (bus_connections_unref): fix to free the
11316         connections
11317         (bus_connections_setup_connection): if this fails, don't
11318         disconnect the connection, just be sure there are no side
11319         effects.
11320
11321         * dbus/dbus-string.c (undo_alignment): unbreak this
11322
11323         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11324         leaking
11325         (_dbus_auth_new): fix the order in which we free strings
11326         on OOM failure
11327
11328         * bus/connection.c (bus_connection_disconnected): fix to
11329         not send ServiceDeleted multiple times in case of memory
11330         allocation failure
11331
11332         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11333         get the base service name
11334         (dbus_bus_register_client): don't return base service name,
11335         instead store it on the DBusConnection and have an accessor
11336         function for it.
11337         (dbus_bus_register_client): rename dbus_bus_register()
11338
11339         * bus/dispatch.c (check_hello_message): verify that other
11340         connections on the bus also got the correct results, not
11341         just the one sending hello
11342
11343 2003-03-15  Havoc Pennington  <hp@pobox.com>
11344
11345         Make it pass the Hello handling test including all OOM codepaths.
11346         Now to do other messages...
11347
11348         * bus/services.c (bus_service_remove_owner): fix crash when
11349         removing owner from an empty list of owners
11350         (bus_registry_ensure): don't leave service in the list of
11351         a connection's owned services if we fail to put the service
11352         in the hash table.
11353
11354         * bus/connection.c (bus_connection_preallocate_oom_error): set
11355         error flag on the OOM error.
11356
11357         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11358         handle _dbus_transport_set_connection failure
11359
11360         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11361         to create watches up front and simply enable/disable them as
11362         needed.
11363         (unix_connection_set): this can now fail on OOM
11364
11365         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11366         of enabling/disabling a watch or timeout.
11367
11368         * bus/loop.c (bus_loop_iterate): don't touch disabled
11369         watches/timeouts
11370
11371         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11372
11373 2003-03-15  Havoc Pennington  <hp@pobox.com>
11374
11375         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11376         write useful test code, after all that futzing around ;-)
11377
11378         Test does not yet pass because we can't handle OOM in
11379         _dbus_transport_messages_pending (basically,
11380         dbus_connection_preallocate_send() does not prealloc the write
11381         watch). To fix this, I think we need to add new stuff to
11382         set_watch_functions, namely a SetEnabled function so we can alloc
11383         the watch earlier, then enable it later.
11384
11385         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11386         dbus-memory.c to the convenience lib
11387
11388         * bus/test.c: rename some static functions to keep them clearly
11389         distinct from stuff in connection.c. Handle client disconnection.
11390
11391 2003-03-14  Havoc Pennington  <hp@pobox.com>
11392
11393         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11394         transport, tests more of the real codepath. Set up clients
11395         with bus_setup_debug_client.
11396
11397         * bus/test.c (bus_setup_debug_client): function to set up debug
11398         "clients" on the main loop
11399
11400         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11401         support
11402
11403         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11404         server type
11405
11406         * dbus/dbus-server-debug.c: support a debug server based on pipes
11407
11408         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11409         (_dbus_close): new function
11410
11411         * configure.in: check for socketpair
11412
11413 2003-03-14  Havoc Pennington  <hp@redhat.com>
11414
11415         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11416         cheesy hack
11417
11418         * dbus/dbus-transport-debug.c: rework this a good bit to be
11419         less complicated. hopefully still works.
11420
11421         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11422         manually
11423
11424         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11425         after running it
11426
11427         * dbus/dbus-message.c (dbus_message_copy): rename from
11428         dbus_message_new_from_message, fix it up to copy
11429         all the message fields, add test case
11430
11431         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11432         not quite passing yet
11433
11434 2003-03-14  Havoc Pennington  <hp@pobox.com>
11435
11436         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11437         until no work remains" in test code. (the large diff here
11438         is just code movement, no actual changes)
11439
11440         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11441         1, no point waiting around for test code.
11442         (_dbus_server_debug_accept_transport): unref the timeout
11443         after adding it (right?)
11444
11445         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11446
11447 2003-03-13  Havoc Pennington  <hp@redhat.com>
11448
11449         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11450         out of memory
11451
11452         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11453         of memory
11454
11455         * dbus/dbus-connection.h: Make AddWatchFunction and
11456         AddTimeoutFunction return a bool so they can fail on out-of-memory
11457
11458         * bus/bus.c (bus_context_new): set up timeout handlers
11459
11460         * bus/connection.c (bus_connections_setup_connection): set up
11461         timeout handlers
11462
11463         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11464         can fail
11465
11466         * bus/bus.c (bus_context_new): adapt to changes
11467
11468         * bus/connection.c: adapt to changes
11469
11470         * test/watch.c: adapt to DBusWatch changes
11471
11472         * bus/dispatch.c (bus_dispatch_test): started adding this but
11473         didn't finish
11474
11475 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11476
11477         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11478
11479 2003-03-13  Havoc Pennington  <hp@pobox.com>
11480
11481         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11482         set up a test framework as for the library
11483
11484 2003-03-12  Havoc Pennington  <hp@pobox.com>
11485
11486         Throughout: purge global variables, introduce BusActivation,
11487         BusConnections, BusRegistry, etc. objects instead.
11488
11489         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11490         message bus object
11491
11492         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11493         going to redo this a bit differently I think
11494
11495 2003-03-12  Havoc Pennington  <hp@redhat.com>
11496
11497         Mega-patch that gets the message bus daemon initially handling
11498         out-of-memory. Work still needed. Also lots of random
11499         moving stuff to DBusError instead of ResultCode.
11500
11501         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11502
11503         * dbus/dbus-connection.c
11504         (dbus_connection_send_with_reply_and_block): use DBusError
11505
11506         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11507         DBusResultCode
11508
11509         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11510         code here, as the only failure possible is OOM.
11511
11512         * bus/connection.c (bus_connection_disconnect):
11513         rename bus_connection_disconnected as it's a notification only
11514
11515         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11516         "name" on get_args failure, should be done by get_args;
11517         don't disconnect client for bad args, just return an error.
11518         (bus_driver_handle_service_exists): ditto
11519
11520         * bus/services.c (bus_services_list): NULL-terminate returned array
11521
11522         * bus/driver.c (bus_driver_send_service_lost)
11523         (bus_driver_send_service_acquired): send messages from driver to a
11524         specific client to the client's unique name, not to the broadcast
11525         service.
11526
11527         * dbus/dbus-message.c (decode_header_data): reject messages that
11528         contain no name field
11529         (_dbus_message_get_client_serial): rename to
11530         dbus_message_get_serial and make public
11531         (_dbus_message_set_serial): rename from set_client_serial
11532         (_dbus_message_set_reply_serial): make public
11533         (_dbus_message_get_reply_serial): make public
11534
11535         * bus/connection.c (bus_connection_foreach): allow stopping
11536         iteration by returning FALSE from foreach function.
11537
11538         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11539         (dbus_connection_free_preallocated_send)
11540         (dbus_connection_preallocate_send): new API for sending a message
11541         without possibility of malloc failure.
11542         (dbus_connection_send_message): rename to just
11543         dbus_connection_send (and same for whole function family)
11544
11545         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11546
11547         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11548
11549         * bus/activation.c: handle/return errors
11550
11551         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11552
11553         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11554         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11555         (_dbus_result_from_errno): move to this file
11556
11557 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * dbus/dbus-marshal.c:
11560         (_dbus_marshal_set_string):
11561         Take a length argument so we can marshal the correct string
11562         length.
11563
11564         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11565         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11566         (_dbus_marshal_test):
11567         * dbus/dbus-marshal.h:
11568         Add support for marshalling and demarshalling dicts.
11569
11570         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11571         Add support for TYPE DICT.
11572
11573         * dbus/dbus-message.c: (set_string_field):
11574         Adjust header padding.
11575
11576         (dbus_message_append_args_valist), (dbus_message_append_dict),
11577         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11578         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11579         (check_message_handling), (check_have_valid_message):
11580         * dbus/dbus-message.h:
11581         Add functions for setting and getting dicts.
11582
11583         * dbus/dbus-protocol.h:
11584         Add DBUS_TYPE_DICT.
11585
11586         * dbus/dbus.h:
11587         Add dbus-dict.h
11588
11589         * doc/dbus-specification.sgml:
11590         Add information about how dicts are marshalled.
11591
11592         * test/data/invalid-messages/dict-with-nil-value.message:
11593         * test/data/invalid-messages/too-short-dict.message:
11594         * test/data/valid-messages/dict-simple.message:
11595         * test/data/valid-messages/dict.message:
11596         Add sample messages containing dicts.
11597
11598 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11599
11600         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11601
11602 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11603
11604         * dbus/Makefile.am:
11605         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11606         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11607         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11608         (dbus_dict_set_double), (dbus_dict_set_string),
11609         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11610         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11611         (dbus_dict_set_string_array), (_dbus_dict_test):
11612         * dbus/dbus-dict.h:
11613         Fix according to comments from Havoc.
11614
11615 2003-03-06  Michael Meeks  <michael@server.home>
11616
11617         * configure.in: if we don't have kde-config, disable have_qt.
11618
11619 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11620
11621         * dbus/Makefile.am:
11622         Add dbus-dict.[ch]
11623
11624         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11625         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11626         (dbus_dict_remove), (dbus_dict_get_value_type),
11627         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11628         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11629         (dbus_dict_put_double), (dbus_dict_put_string),
11630         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11631         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11632         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11633         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11634         (dbus_dict_get_double), (dbus_dict_get_string),
11635         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11636         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11637         (dbus_dict_get_string_array), (_dbus_dict_test):
11638         * dbus/dbus-dict.h:
11639         Add DBusDict implementation
11640
11641         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11642         * dbus/dbus-test.h:
11643         Add _dbus_dict_test
11644
11645 2003-03-04  Havoc Pennington  <hp@pobox.com>
11646
11647         * test/data/auth/*: adapt to changes
11648
11649         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11650         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11651         userid
11652
11653         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11654         more stuff from being in a context name, to make the protocol
11655         simpler to deal with
11656
11657         * dbus/dbus-errors.c (dbus_error_has_name): new function
11658         (dbus_error_is_set): new function
11659
11660         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11661         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11662
11663         * dbus/dbus-connection.c (dbus_connection_flush): also read
11664         messages during a flush operation
11665
11666         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11667
11668 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11669
11670         * configure.in: Check for gethostbyname on Solaris.
11671
11672         * dbus/dbus-transport.c: (_dbus_transport_open):
11673         Remove duplicate "tcp" entry.
11674
11675         * doc/dbus-specification.sgml:
11676         Clarify some things.
11677
11678 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11679
11680         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11681         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11682         (_dbus_keyring_test):
11683         * dbus/dbus-md5.c: (_dbus_md5_compute):
11684         * dbus/dbus-sha.c: (_dbus_sha_compute):
11685         Plug memory leaks.
11686
11687 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11688
11689         * README: Add some things.
11690
11691 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11692
11693         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11694         after case DBUS_TYPE_BOOELAN.
11695
11696 2003-03-02  Havoc Pennington  <hp@pobox.com>
11697
11698         * test/break-loader.c (randomly_set_extreme_ints): add test that
11699         sets really huge and small integers
11700
11701         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11702         that length of boolean array fits in the string, and that
11703         string has room for boolean value in single-bool case.
11704
11705         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11706         optional value to "ALIGN" command which is what to fill the
11707         alignment with.
11708
11709         * test/data/valid-messages/no-padding.message: add regression
11710         test for the message padding problem
11711
11712 2003-03-02  Havoc Pennington  <hp@pobox.com>
11713
11714         * dbus/dbus-message.c (decode_header_data): fix to always init
11715         message_padding, from Benjamin Dauvergne
11716
11717 2003-03-02  Havoc Pennington  <hp@pobox.com>
11718
11719         * configure.in: 0.5
11720
11721         * NEWS: Update.
11722
11723 2003-03-01  Joe Shaw  <joe@assbarn.com>
11724
11725         * configure.in: Check for "struct cmsgcred" and try to access its
11726         members for BSD-like unices.
11727
11728         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11729         _dbus_read_credentials_unix_socket().
11730         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11731         read() for reading the credential byte off the unix socket.  Use
11732         struct cmsgcred on systems that support it.
11733
11734 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11735
11736         * glib/Makefile.am:
11737         * configure.in:
11738         Make gthreads-2.0 dependency optional. Don't build thread test if
11739         its not found.
11740
11741 2003-02-27  Havoc Pennington  <hp@pobox.com>
11742
11743         * dbus/dbus-connection.c
11744         (dbus_connection_send_message_with_reply_and_block): fix doh!
11745         doh! doh! bug that resulted in never removing a reply from the
11746         queue, no wonder we called get_reply_serial so much ;-)
11747
11748         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11749         and client serial instead of demarshaling them every time
11750
11751 2003-02-27  Havoc Pennington  <hp@pobox.com>
11752
11753         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11754         more inlined, using dbus-string-private.h, speeds things up
11755         substantially
11756
11757         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11758         when freeing the string
11759         (_dbus_string_steal_data): fix for align offset
11760         (undo_alignment): new function
11761
11762 2003-02-26  Havoc Pennington  <hp@redhat.com>
11763
11764         All kinds of audit fixes from Owen, plus initial attempt to
11765         handle unaligned memory returned from malloc.
11766
11767         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11768         leave room for align_offset and nul byte
11769         (fixup_alignment): function to track an align_offset and
11770         ensure real->str is aligned
11771         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11772         to allow a nul byte plus align offset
11773         (_dbus_string_lock): fix overflow issue
11774         (_dbus_string_init_const_len): add assertions on sanity of len,
11775         assign allocated to be ALLOCATION_PADDING larger than len
11776         (set_length): fixup the overflow handling
11777         (_dbus_string_get_data_len): fix overflow in assertion
11778         (open_gap): detect overflow in size of gap to be opened
11779         (_dbus_string_lengthen): add overflow check
11780         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11781         (_dbus_string_append): add overflow check
11782         (_dbus_string_append_unichar): overflow
11783         (_dbus_string_delete): fix overflow in assertion
11784         (_dbus_string_copy_len): overflow in assertion
11785         (_dbus_string_replace_len): overflows in assertions
11786         (_dbus_string_find): change to implement in terms of
11787         _dbus_string_find_to
11788         (_dbus_string_find_to): assorted fixage
11789         (_dbus_string_equal_c_str): assert c_str != NULL,
11790         fix logic so the function works
11791         (_dbus_string_ends_with_c_str): fix overflow thingy
11792         (_dbus_string_base64_encode): overflow fix
11793         (_dbus_string_validate_ascii): overflow
11794         (_dbus_string_validate_nul): overflow
11795
11796 2003-02-26  Havoc Pennington  <hp@redhat.com>
11797
11798         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11799
11800 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11801
11802         * configure.in:
11803         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11804
11805         * dbus/dbus-connection.c:
11806         * dbus/dbus-connection.h:
11807         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11808         Add dbus_connection_set_wakeup_main_function and use it when queueing
11809         incoming and outgoing messages.
11810
11811
11812         * dbus/dbus-dataslot.c:
11813         Threadsafe usage of DBusDataSlotAllocator
11814
11815         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11816         dbus_new can fail.
11817
11818         * dbus/dbus-server-unix.c:
11819         Add todo comment
11820
11821         * glib/dbus-gmain.c:
11822         Implement the new wakeup functions for glib.
11823
11824         * glib/Makefile.am:
11825         * glib/test-thread-client.c:
11826         * glib/test-thread-server.c:
11827         * glib/test-thread.h:
11828         Initial cut at some thread test code. Not really done yet.
11829
11830 2003-02-26  Havoc Pennington  <hp@pobox.com>
11831
11832         * dbus/dbus-connection.c
11833         (dbus_connection_send_message_with_reply_and_block): fix crash
11834         where we ref'd the outgoing message instead of the returned reply
11835
11836         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11837         at the end of this function, so if we didn't need to read for
11838         authentication, we reinstall it for receiving messages
11839
11840         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11841         a NULL sender for peer-to-peer case
11842
11843         * dbus/dbus-transport-unix.c (check_read_watch): handle
11844         !authenticated case correctly
11845
11846         * glib/dbus-gmain.c: add support for DBusServer
11847
11848         * dbus/dbus-server.c: add data slot support
11849
11850         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11851         return values and handle errors
11852
11853         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11854         DBusConnection
11855
11856         * Doxyfile.in (INPUT): add glib subdir
11857
11858         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11859         setup_with_g_main instead of hookup_with_g_main; write docs
11860
11861 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11862
11863         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11864         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11865         * dbus/dbus-message.c: (dbus_message_append_boolean),
11866         (dbus_message_append_boolean_array),
11867         (dbus_message_get_args_valist), (_dbus_message_test):
11868         * dbus/dbus-message.h:
11869         * doc/dbus-specification.sgml:
11870         Various fixes as pointed out by Havoc.
11871
11872         * test/data/invalid-messages/bad-boolean-array.message:
11873         * test/data/invalid-messages/bad-boolean.message:
11874         Add invalid boolean value test cases.
11875
11876 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11877
11878         * dbus/dbus-internals.c: (_dbus_type_to_string):
11879         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11880         (_dbus_marshal_validate_arg):
11881         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11882         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11883         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11884         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11885         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11886         (dbus_message_iter_get_double),
11887         (dbus_message_iter_get_boolean_array), (message_iter_test):
11888         * dbus/dbus-message.h:
11889         * dbus/dbus-protocol.h:
11890         * doc/dbus-specification.sgml:
11891         * test/data/valid-messages/lots-of-arguments.message:
11892         Add support for boolean and boolean array types.
11893
11894 2003-02-23  Havoc Pennington  <hp@pobox.com>
11895
11896         * dbus/dbus-keyring.c: finish most of this implementation and
11897         simple unit test
11898
11899         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11900         these barf if the error isn't cleared to NULL
11901
11902         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11903         (_dbus_create_directory): new function
11904
11905         * dbus/dbus-errors.c (dbus_set_error): fix warning
11906
11907         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11908         (_dbus_string_hex_decode): new function
11909         (test_hex_roundtrip): test code
11910
11911         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11912
11913         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11914
11915         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11916         the save-to-temp/rename trick to atomically write the new file
11917         (_dbus_string_parse_uint): new function
11918
11919 2003-02-22  Havoc Pennington  <hp@pobox.com>
11920
11921         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11922
11923 2003-02-22  Havoc Pennington  <hp@pobox.com>
11924
11925         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11926         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11927
11928         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11929
11930         * dbus/test/data/sha-1: add US government test suite for SHA-1
11931
11932 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11933
11934         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11935         Make string arrays NULL-terminated.
11936
11937         * dbus/dbus-memory.c: (dbus_free_string_array):
11938         * dbus/dbus-memory.h:
11939         New function for freeing NULL-terminated string arrays.
11940
11941         * dbus/dbus-message-builder.c: (append_quoted_string),
11942         (_dbus_message_data_load):
11943         Add support for array types.
11944
11945         * dbus/dbus-message.c: (check_message_handling):
11946         Add more types as test cases.
11947
11948         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11949         (_dbus_string_parse_double):
11950         Add the start offset to the end offset.
11951
11952         * test/data/valid-messages/lots-of-arguments.message:
11953         New test message with lots of arguments.
11954
11955 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11956
11957         * dbus/dbus-message.c: (dbus_message_append_nil),
11958         (dbus_message_append_int32), (dbus_message_append_uint32),
11959         (dbus_message_append_double), (dbus_message_append_string),
11960         (dbus_message_append_int32_array),
11961         (dbus_message_append_uint32_array),
11962         (dbus_message_append_double_array),
11963         (dbus_message_append_byte_array),
11964         (dbus_message_append_string_array):
11965         Fix all out-of-memory handling in these functions.
11966
11967 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11968
11969         * dbus/dbus-message.c: (dbus_message_append_nil):
11970         Fix a silly.
11971
11972 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11973
11974         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11975         (dbus_message_append_nil), (dbus_message_append_int32_array),
11976         (dbus_message_append_uint32_array),
11977         (dbus_message_append_double_array),
11978         (dbus_message_append_byte_array),
11979         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11980         (dbus_message_iter_get_int32_array),
11981         (dbus_message_iter_get_uint32_array),
11982         (dbus_message_iter_get_double_array),
11983         (dbus_message_iter_get_byte_array),
11984         (dbus_message_iter_get_string_array):
11985
11986         * dbus/dbus-message.h:
11987         Add functions for appending and getting arrays.
11988
11989 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11990
11991         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11992         element size at least 8 bytes, fixes mempool tests on
11993         64-bit machines.
11994
11995 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11996
11997         * dbus/dbus-transport-unix.c (unix_do_iteration):
11998         Unlock the connection mutex during a blocking select call.
11999         Add todo about how we need a way to wake up the select.
12000
12001         * dbus/dbus-connection-internal.h:
12002         * dbus/dbus-connection.c:
12003         Add _dbus_connection_lock and _dbus_connection_unlock.
12004
12005 2003-02-19  Havoc Pennington  <hp@pobox.com>
12006
12007         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12008         Doxyfile.in, not Doxyfile
12009
12010         * dbus/dbus-keyring.c: do some hacking on this
12011
12012         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12013
12014         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12015         dbus_error_init
12016         (dbus_set_error): remove dbus_error_init, check for message ==
12017         NULL *before* we sprintf into it, and add @todo about including
12018         system headers in this file
12019
12020         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12021
12022         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12023
12024         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12025         get various bits of user information based on either username
12026         or user ID
12027         (_dbus_homedir_from_username): new function
12028
12029 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * configure.in:
12032         Add check for nonposix getpwnam_r
12033
12034         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12035         Align the pool element size to a sizeof (void *) boundary.
12036
12037         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12038         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12039         General Solaris fixes.
12040
12041         * test/data/valid-messages/simplest-manual.message:
12042         Explicitly state that we want little-endian packing.
12043
12044 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12045
12046         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12047
12048         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12049         Added to create a transport connecting using a tcp/ip socket.
12050
12051         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12052         to a tcp socket at given host and port.
12053         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12054         hostname and port.
12055
12056         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12057
12058         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12059         Added to create a server listening on a TCP/IP socket.
12060
12061 2003-02-19  Havoc Pennington  <hp@pobox.com>
12062
12063         Throughout: mop up all the Doxygen warnings and undocumented
12064         stuff.
12065
12066         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12067         to search any paths.
12068
12069         * dbus/dbus-threads.c: move global mutex initializers to
12070         dbus-internals.h, multiple prototypes was confusing doxygen
12071         besides being kind of ugly
12072
12073         * Doxyfile (PREDEFINED): have Doxygen define
12074         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12075         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12076         (do not abuse the feature! it's for stuff like the autogenerated
12077         macros in dbus-md5.c, not just for things you don't feel like
12078         documenting...)
12079
12080 2003-02-18  Havoc Pennington  <hp@pobox.com>
12081
12082         * dbus/dbus-string.c (_dbus_string_zero): new function
12083
12084         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12085         wrap it in some dbus-friendly API
12086
12087         * dbus/dbus-types.h: add 16-bit types
12088
12089 2003-02-18  Joe Shaw  <joe@assbarn.com>
12090
12091         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12092         credentials from our currently running process.
12093         (get_word): Fix a buglet where we were copying the entire length
12094         instead of relative to our position.
12095
12096         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12097         keys on the stack... it's 640k of data.
12098
12099         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12100         read the credentials byte off the socket, even if we don't have
12101         SO_PEERCRED.
12102         (_dbus_poll): Implement poll() using select() for systems which
12103         don't have it.
12104
12105         * glib/test-dbus-glib.c (main): Print out an error if no
12106         parameters are given.
12107
12108         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12109         can fallback to a secondary auth mechanism if the first fails.
12110
12111 2003-02-18  Havoc Pennington  <hp@pobox.com>
12112
12113         * AUTHORS: add Alex
12114
12115 2003-02-17  Havoc Pennington  <hp@pobox.com>
12116
12117         * doc/dbus-specification.sgml: lots of cosmetic
12118         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12119         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12120         s/server/bus/ (except in authentication section). Add a section
12121         "Message Bus Message Routing"
12122
12123 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12124
12125         Release 0.4
12126
12127         * NEWS: Update
12128
12129 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12130
12131         * doc/dbus-specification.sgml:
12132         Specification updates.
12133
12134 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12135
12136         * bus/activation.c: (bus_activation_init), (child_setup),
12137         (bus_activation_activate_service):
12138         * bus/activation.h:
12139         * bus/main.c: (main):
12140         Set DBUS_ADDRESS environment variable.
12141
12142         * dbus/dbus-errors.c: (dbus_set_error):
12143         Don't use va_copy since that's a C99 feature.
12144
12145         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12146         (_dbus_spawn_async):
12147         * dbus/dbus-sysdeps.h:
12148         Add child_setup_func to _dbus_spawn_async.
12149
12150         * doc/dbus-specification.sgml:
12151         Update specification.
12152
12153         * test/spawn-test.c: (setup_func), (main):
12154         Fix test.
12155
12156 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12157
12158         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12159         Added todo.
12160
12161 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12162
12163         * doc/.cvsignore:
12164         * doc/Makefile.am:
12165         * doc/dbus-test-plan.sgml:
12166         Add test plan document.
12167
12168         * test/Makefile.am:
12169         Fix distcheck.
12170
12171 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12172
12173         * dbus/dbus-message.c: (decode_header_data),
12174         (_dbus_message_loader_return_buffer):
12175         Set the header padding amount when loading a message.
12176
12177 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12178
12179         * bus/dispatch.c: (send_one_message):
12180         Only send broadcast messages to registered connections.
12181
12182         * dbus/dbus-message.c: (dbus_message_name_is):
12183         * dbus/dbus-message.h:
12184         New convenience function.
12185
12186         * dbus/dbus-transport-debug.c: (do_reading):
12187         Only dispatch one message per run.
12188
12189         * test/Makefile.am:
12190         * test/bus-test.c: (new_connection_callback), (die),
12191         (test_hello_client1_handler), (test_hello_client2_handler),
12192         (test_hello_replies), (main):
12193
12194         * test/bus-test-loop.[ch]:
12195         Add these.
12196
12197 2003-02-16  Havoc Pennington  <hp@pobox.com>
12198
12199         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12200         backward conditional
12201
12202 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12203
12204         * dbus/dbus-connection.c:
12205         Implement sent_message_with_reply. (with_reply_and block is still
12206         busted).
12207         Made dispatch_message not lose message if OOM.
12208
12209         * dbus/dbus-errors.h:
12210         Add NoReply error (for reply timeouts).
12211
12212 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12213
12214         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12215         Actually free keys and values when destroying hashtable.
12216
12217 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12218
12219         * dbus/dbus-auth.c: (client_try_next_mechanism):
12220         Plug a leak.
12221
12222         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12223         Return TRUE if there's no thread implementation around.
12224
12225         * glib/dbus-gmain.c: (free_source),
12226         (dbus_connection_hookup_with_g_main):
12227         Make sure to remove the GSource when the connection is finalized.
12228
12229 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12230
12231         * bus/dispatch.c: (bus_dispatch_message_handler):
12232         * dbus/dbus-errors.h:
12233         Return an error if someone tries to send a message to a service
12234         that doesn't exist.
12235
12236 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * bus/activation.c: (load_directory), (bus_activation_init),
12239         (bus_activation_activate_service):
12240         * bus/activation.h:
12241         * bus/driver.c:
12242         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12243         More work on the activation handling.
12244
12245         * dbus/dbus-errors.h:
12246         Add some error messages
12247
12248         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12249         * dbus/dbus-message.h:
12250         New function that creates an error message.
12251
12252         * dbus/dbus-protocol.h:
12253         Add ACTIVATE_SERVER message.
12254
12255         * dbus/dbus-server-unix.c: (unix_handle_watch),
12256         (_dbus_server_new_for_domain_socket):
12257         Call _dbus_fd_set_close_on_exec.
12258
12259         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12260         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12261         (_dbus_fd_set_close_on_exec):
12262         * dbus/dbus-sysdeps.h:
12263         Add _dbus_fd_set_close_on exec function. Also add function that checks
12264         that all open fds are set to close-on-exec and warns otherwise.
12265
12266         * dbus/dbus-transport-unix.c:
12267         (_dbus_transport_new_for_domain_socket):
12268         Call _dbus_fd_set_close_on_exec.
12269
12270 2003-02-16  Havoc Pennington  <hp@pobox.com>
12271
12272         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12273         allow people to avoid setting SIGPIPE to SIG_IGN
12274         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12275         we've been asked not to
12276
12277 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12278
12279         * dbus/dbus-list.c: (_dbus_list_append_link),
12280         (_dbus_list_prepend_link):
12281         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12282         (dbus_realloc):
12283         Warning fixes.
12284
12285 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12286
12287         * bus/Makefile.am:
12288         * bus/activation.c: (bus_activation_entry_free),
12289         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12290         * bus/activation.h:
12291         * bus/main.c: (main):
12292         Add simple activation support, doesn't work yet though.
12293
12294 2003-02-15   Zack Rusin  <zack@kde.org>
12295
12296         * qt/dbus-qthread.cpp:  small casting fix
12297
12298 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12299
12300         * dbus/dbus-errors.c: (dbus_set_error):
12301         * dbus/dbus-errors.h:
12302         Add a few errors and make dbus_set_error void.
12303
12304         * dbus/dbus-sysdeps.c:
12305         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12306         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12307         * dbus/dbus-sysdeps.h:
12308         Add _dbus_spawn_async.
12309
12310         * test/spawn-test.c: (main):
12311         Test for _dbus_spawn_async.
12312
12313 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12314
12315         * dbus/dbus-internals.h:
12316         Fix build without tests.
12317
12318         * dbus/dbus-list.c: (alloc_link):
12319         Fix a segfault when a malloc fails.
12320
12321         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12322         (dbus_malloc0), (dbus_realloc):
12323         Add support for malloc debugging.
12324
12325 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12326
12327         * dbus/dbus-threads.c:
12328         * dbus/dbus-threads.h:
12329         Add condvars. Remove static mutext from API.
12330         Implement static mutexes by initializing them from threads_init.
12331
12332         * glib/dbus-gthread.c:
12333         * qt/dbus-qthread.cpp:
12334         Update with the thread api changes.
12335
12336
12337         * dbus/dbus-list.c:
12338         * dbus/dbus-list.h:
12339         Turn StaticMutex into normal mutex + init function.
12340         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12341         _dbus_list_append_link, _dbus_list_prepend_link
12342
12343
12344         * dbus/dbus-sysdeps.c:
12345         * dbus/dbus-sysdeps.h:
12346         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12347         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12348
12349         * dbus/dbus-protocol.h:
12350         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12351
12352         * dbus/dbus-message.c:
12353         Make ref/unref atomic.
12354         Fix some docs.
12355
12356         * dbus/dbus-connection-internal.h:
12357         * dbus/dbus-connection.c:
12358         * dbus/dbus-connection.h:
12359         Make threadsafe.
12360         Change _peek to _borrow,_return & _steal_borrowed.
12361         Change disconnect callback to event.
12362         Make dbus_connection_dispatch_messages reentrant.
12363
12364         * dbus/dbus-transport.c:
12365         Don't ref the connection on calls to the transport
12366         implementation.
12367
12368         * dbus/dbus-message-handler.c:
12369         Make threadsafe.
12370
12371         * glib/dbus-gmain.c:
12372         Don't use peek_message anymore
12373
12374         * test/Makefile.am:
12375         * test/debug-thread.c:
12376         * test/debug-thread.h:
12377         Simple thread implementation that asserts() on deadlocks in
12378         single-threaded code.
12379
12380         * test/bus-test.c:
12381         (main) Call debug_threads_init.
12382
12383         * test/watch.c:
12384         Use disconnect message instead of disconnect callback.
12385
12386         * bus/connection.c:
12387         * bus/connection.h:
12388         Don't call dbus_connection_set_disconnect_function. Instead export
12389         bus_connection_disconnect.
12390
12391         * bus/dispatch.c:
12392         Call bus_connection_disconnect when we get a disconnected message.
12393
12394 2003-02-15  Havoc Pennington  <hp@pobox.com>
12395
12396         * dbus/dbus-message.c (dbus_message_new): fool around with the
12397         docs
12398
12399 2003-02-14  Havoc Pennington  <hp@pobox.com>
12400
12401         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12402
12403         * dbus/dbus-memory.c: fail if the debug functions indicate we
12404         should
12405
12406         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12407         (_dbus_decrement_fail_alloc_counter): debug functions to
12408         simulate memory allocation failures
12409
12410 2003-02-14  Havoc Pennington  <hp@pobox.com>
12411
12412         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12413         to DBusError
12414
12415 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12416
12417         * bus/driver.c: (bus_driver_handle_hello):
12418         * bus/driver.h:
12419         * bus/services.c: (bus_service_lookup):
12420         Reorder message sending so we get a more sane order.
12421
12422         * test/bus-test.c: (message_handler):
12423         Fix tyop.
12424
12425 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12426
12427         * bus/driver.c: (bus_driver_send_service_deleted),
12428         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12429         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12430         (bus_driver_send_welcome_message),
12431         (bus_driver_handle_list_services),
12432         (bus_driver_handle_acquire_service),
12433         (bus_driver_handle_service_exists):
12434         * dbus/dbus-bus.c: (dbus_bus_register_client),
12435         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12436         * dbus/dbus-errors.c: (dbus_result_to_string):
12437         * dbus/dbus-errors.h:
12438         * dbus/dbus-message.c: (dbus_message_append_args),
12439         (dbus_message_append_args_valist), (dbus_message_get_args),
12440         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12441         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12442         (dbus_message_iter_get_byte_array),
12443         (dbus_message_iter_get_string_array), (message_iter_test),
12444         (check_message_handling), (_dbus_message_test):
12445         * dbus/dbus-message.h:
12446         * test/bus-test.c: (main):
12447         Change fields to arguments in messages, so that they won't be
12448         confused with header fields.
12449
12450         * glib/test-dbus-glib.c: (main):
12451         Remove append_fields from hello message.
12452
12453 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12454
12455         * dbus/dbus-errors.c:
12456         * dbus/dbus-message.c:
12457         * dbus/dbus-string.c:
12458         Documentation fixes.
12459
12460 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12461
12462         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12463         (remove_timeout):
12464         Implement support for timeouts in dbus-glib.
12465
12466 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12467
12468         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12469         * dbus/dbus-message.c: (process_test_subdir):
12470         * test/break-loader.c: (find_breaks_based_on):
12471         Plug some memory leaks.
12472
12473 2003-02-13  Richard Hult  <rhult@codefactory.se>
12474
12475         * bus/main.c: Fix build.
12476
12477         * dbus/dbus-errors.h:
12478         * dbus/dbus-errors.c: Fix copyright for Anders.
12479
12480 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12481
12482         * bus/Makefile.am:
12483         Add utils.[ch]
12484
12485         * bus/connection.c: (bus_connection_foreach):
12486         Fix a warning.
12487
12488         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12489         (unescape_string), (new_section), (parse_section_start),
12490         (parse_key_value), (report_error), (bus_desktop_file_load),
12491         (bus_desktop_file_get_string):
12492         * bus/desktop-file.h:
12493         Use DBusError for error reporting.
12494
12495         * bus/dispatch.c: (send_one_message),
12496         (bus_dispatch_message_handler):
12497         * bus/driver.c: (bus_driver_send_service_deleted),
12498         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12499         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12500         (bus_driver_send_welcome_message),
12501         (bus_driver_handle_list_services),
12502         (bus_driver_handle_acquire_service),
12503         (bus_driver_handle_service_exists):
12504         * bus/loop.c: (bus_loop_run):
12505         * bus/main.c:
12506         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12507
12508         * bus/utils.c: (bus_wait_for_memory):
12509         * bus/utils.h:
12510         New files with general utility functions.
12511
12512         * dbus/dbus-internals.h:
12513         Remove _DBUS_HANDLE_OOM.
12514
12515 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12516
12517         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12518         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12519         * dbus/dbus-errors.h:
12520         Add DBusError structure.
12521
12522 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12523
12524         * test/data/valid-messages/standard-acquire-service.message:
12525         * test/data/valid-messages/standard-hello.message:
12526         * test/data/valid-messages/standard-list-services.message:
12527         * test/data/valid-messages/standard-service-exists.message:
12528         Add some standard messages.
12529
12530 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12531
12532         * bus/driver.c: (bus_driver_send_welcome_message),
12533         (bus_driver_handle_list_services),
12534         (bus_driver_handle_acquire_service),
12535         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12536         Update for API changes in libdbus.
12537
12538         * dbus/dbus-message.c: (dbus_message_new_reply):
12539         * dbus/dbus-message.h:
12540         Remove the name argument. The spec states that replies shouldn't
12541         have a name.
12542
12543 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12544
12545         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12546         (report_error), (bus_desktop_file_load), (lookup_section),
12547         (lookup_line), (bus_desktop_file_get_raw),
12548         (bus_desktop_file_get_string):
12549         * bus/desktop-file.h:
12550         Some fixes, and new functions for getting a key value from a section.
12551
12552 2003-02-13  Havoc Pennington  <hp@pobox.com>
12553
12554         * test/data/auth/fail-after-n-attempts.auth-script: new test
12555
12556         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12557         reject the client.
12558
12559 2003-02-13  Havoc Pennington  <hp@pobox.com>
12560
12561         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12562         dbus_credentials_match were backward
12563
12564         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12565         NO_CREDENTIALS and ROOT_CREDENTIALS
12566
12567         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12568         into here. Never process more commands after we've reached an
12569         end state; store further data as unused bytes.
12570
12571         * test/data/auth/*: add more auth tests
12572
12573         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12574         command to match exact string and EXPECT_UNUSED to match unused
12575         bytes
12576
12577         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12578
12579 2003-02-12  Havoc Pennington  <hp@pobox.com>
12580
12581         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12582         \r off of popped lines
12583
12584         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12585         scripts
12586
12587         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12588         SEND, append \r\n
12589
12590 2003-02-12  Havoc Pennington  <hp@pobox.com>
12591
12592         * dbus/Makefile.am: remove break-loader from the build, since it
12593         moved.
12594
12595         * configure.in: add --enable-gcov to turn on coverage profiling
12596         flags and disable optimization
12597
12598 2003-02-10  Havoc Pennington  <hp@pobox.com>
12599
12600         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12601         initial cut at test framework for DBusAuth from laptop.
12602         Doesn't quite work yet but it compiles and I need to get
12603         it off the 266mhz laptop. ;-)
12604
12605         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12606         fix a memleak in error case
12607
12608 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12609
12610         * bus/Makefile.am:
12611         * bus/desktop-file.c:
12612         * bus/desktop-file.h:
12613         Add a desktop file parser.
12614
12615 2003-02-11  Zack Rusin  <zack@kde.org>
12616
12617         * qt/message.[h|cpp]: sample implementation
12618         of the KDE wrapper for DBusMessage
12619
12620 2003-02-09  Zack Rusin  <zack@kde.org>
12621
12622         * test/bus-test.c: make_it_compile
12623         * doc/dbus-specification.sgml: minimal semantic fix
12624
12625 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12626
12627         Release 0.3
12628
12629         * NEWS: Update
12630
12631 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12632
12633         * dbus/Makefile.am:
12634         * dbus/dbus-break-loader.c:
12635         * test/Makefile.am:
12636         * test/break-loader.c:
12637         Move dbus-break-loader to test/ and rename it to break-loader.
12638
12639 2003-02-02  Havoc Pennington  <hp@pobox.com>
12640
12641         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12642         for code to manage cookies in your home directory
12643
12644         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12645
12646         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12647         to authenticate, then disconnect the client.
12648
12649 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12650
12651         * dbus/dbus-message.c (dbus_message_append_fields):
12652         Correct docs.
12653
12654 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * doc/dbus-specification.sgml:
12657         Update address format section.
12658
12659 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12660
12661         * test/Makefile.am:
12662         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12663         (message_handler), (new_connection_callback), (loop_quit),
12664         (loop_run), (main):
12665         Add bus test.
12666
12667 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12668
12669         * bus/driver.c: (bus_driver_handle_service_exists):
12670         Simplify the code a bit.
12671
12672         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12673         Fix a silly.
12674
12675 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12676
12677         * bus/Makefile.am:
12678         Add libdbus-daemon.la and link to it.
12679
12680 2003-02-01  James Willcox  <jwillcox@gnome.org>
12681
12682         * bus/driver.c: (bus_driver_handle_own_service):
12683         Actually include the service reply code in the message.
12684
12685 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12686
12687         * bus/driver.c: (bus_driver_handle_service_exists):
12688         Don't unref the incoming message.
12689
12690 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12691
12692         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12693
12694 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12695
12696         * dbus/dbus-server.c: (dbus_server_listen):
12697         * dbus/dbus-transport.c: (_dbus_transport_open):
12698         ifdef out the calls to the debug transport and server.
12699
12700 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12701
12702         * dbus/dbus-watch.c (dbus_watch_get_flags):
12703         Add note in the docs that ERROR or HANGUP won't be returned
12704         and are assumed always on.
12705
12706         * glib/dbus-gmain.c (add_watch):
12707         Always add IO_ERR | IO_HUP
12708
12709         * dbus/dbus-message.h:
12710         Add semicolon after dbus_message_iter_get_string_array().
12711         Makes qt code build again
12712
12713 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12714
12715         * bus/driver.c: (create_unique_client_name),
12716         (bus_driver_handle_hello):
12717         Don't take a name, just use a numeric id to identify
12718         each client.
12719
12720         * dbus/Makefile.am:
12721         * dbus/dbus-bus.c: (dbus_bus_register_client),
12722         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12723         * dbus/dbus-bus.h:
12724         Add new convenience functions for communicating with the bus.
12725
12726         * dbus/dbus-message.h:
12727
12728         * dbus/dbus-protocol.h:
12729         Fix a typo.
12730
12731 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12732
12733         * dbus/dbus-message.c (dbus_message_append_fields):
12734         Add some more doc comments.
12735
12736 2003-02-01  Havoc Pennington  <hp@pobox.com>
12737
12738         * dbus/dbus-break-loader.c (randomly_modify_length): change
12739         a 4-byte value in the message as if it were a length
12740
12741         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12742         execute bit on saved files
12743
12744 2003-02-01  Havoc Pennington  <hp@pobox.com>
12745
12746         * dbus/dbus-break-loader.c (main): new program to find messages
12747         that break the loader.
12748
12749         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12750         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12751
12752         * dbus/dbus-string.c (_dbus_string_set_byte): new
12753
12754 2003-01-31  Havoc Pennington  <hp@pobox.com>
12755
12756         * dbus/dbus-message.c: refactor the test code to be more general,
12757         in preparation for writing a "randomly permute test cases to
12758         try to break the loader" program.
12759
12760 2003-01-31  Havoc Pennington  <hp@pobox.com>
12761
12762         * doc/dbus-specification.sgml: work on the specification
12763
12764         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12765         the protocol version of the message.
12766
12767         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12768         no longer specifies that.
12769         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12770         1/2/3/4)
12771
12772         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12773         "break" for DBUS_TYPE_NIL, remove @todo
12774
12775 2003-01-31  Havoc Pennington  <hp@pobox.com>
12776
12777         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12778         just set_is_error/get_is_error as this is a commonly-used
12779         function, and write docs.
12780
12781 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12782
12783         * dbus/dbus-address.c: (dbus_address_entry_free):
12784         Free key and value lists.
12785
12786         * dbus/dbus-internals.c: (_dbus_type_to_string):
12787         Add the types we didn't have.
12788
12789         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12790         (_dbus_marshal_validate_arg):
12791         Add NIL types.
12792
12793         * dbus/dbus-message.c: (dbus_message_set_sender):
12794         Remove todo about being able to set sender to NULL.
12795
12796         (dbus_message_set_is_error_reply),
12797         (dbus_message_get_is_error_reply):
12798         * dbus/dbus-message.h:
12799         New functions.
12800
12801         * dbus/dbus-protocol.h:
12802         Add error reply flag.
12803
12804         * test/data/valid-messages/opposite-endian.message:
12805         Add NIL type to test.
12806
12807 2003-01-31  Havoc Pennington  <hp@pobox.com>
12808
12809         * doc/dbus-specification.sgml: fully specify the header.  Add
12810         flags and major protocol version, and change header/body len to
12811         unsigned.
12812
12813         * dbus/dbus-message-builder.c (append_saved_length): append length
12814         as uint32
12815
12816         * dbus/dbus-message.c (dbus_message_create_header): change header
12817         length and body length to unsigned. Add the new fields from the
12818         spec
12819         (_dbus_message_loader_return_buffer): unsigned header/body len
12820
12821 2003-01-30  Havoc Pennington  <hp@pobox.com>
12822
12823         * dbus/dbus-auth.c: rework to use only REJECTED, no
12824         MECHANISMS
12825
12826         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12827         use REJECTED, suggested by Mark McLoughlin
12828
12829 2003-01-30  Havoc Pennington  <hp@pobox.com>
12830
12831         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12832         a better way to report errors here. e.g.  "unix address lacks
12833         path" or something. also "no such file" when the path doesn't
12834         exist, etc.
12835
12836         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12837         leaking list nodes
12838         (dbus_parse_address): add @todo about documenting address format,
12839         and allowing , and ; to be escaped
12840
12841 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12842
12843         * dbus/Makefile.am:
12844         Add dbus-address.[ch]
12845
12846         * dbus/dbus-address.c: (dbus_address_entry_free),
12847         (dbus_address_entries_free), (create_entry),
12848         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12849         (dbus_parse_address), (_dbus_address_test):
12850         * dbus/dbus-address.h:
12851         New files for dealing with address parsing.
12852
12853         * dbus/dbus-connection.c:
12854         Document timeout functions.
12855
12856         * dbus/dbus-message.c:
12857         Document dbus_message_new_from_message.
12858
12859         * dbus/dbus-server-debug.c:
12860         Document.
12861
12862         * dbus/dbus-server.c: (dbus_server_listen):
12863         Parse address and use correct server implementation.
12864
12865         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12866         * dbus/dbus-string.h:
12867         New function with test.
12868
12869         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12870         * dbus/dbus-test.h:
12871         Add address tests.
12872
12873         * dbus/dbus-transport-debug.c:
12874         Document.
12875
12876         * dbus/dbus-transport.c: (_dbus_transport_open):
12877         Parse address and use correct transport implementation.
12878
12879 2003-01-30  Havoc Pennington  <hp@pobox.com>
12880
12881         * dbus/dbus-message.c: use message->byte_order instead of
12882         DBUS_COMPILER_BYTE_ORDER throughout.
12883         (dbus_message_create_header): pad header to align the
12884         start of the body of the message to 8-byte boundary
12885
12886         * dbus/dbus-marshal.h: make all the demarshalers take const
12887         DBusString arguments.
12888
12889         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12890         validate message args here, so we don't have to do slow validation
12891         later, and so we catch bad messages as they are incoming. Also add
12892         better checks on header_len and body_len. Also fill in
12893         message->byte_order
12894
12895         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12896         implemented properly)
12897         (_dbus_string_validate_nul): new function to check all-nul
12898
12899         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12900         get_arg_end_pos and remove all validation
12901         (_dbus_marshal_validate_arg): actually do validation here.
12902
12903 2003-01-29  Havoc Pennington  <hp@pobox.com>
12904
12905         * dbus/dbus-message.c (check_message_handling): fix assertion
12906         failure on set_client_serial
12907
12908 2003-01-28  Havoc Pennington  <hp@pobox.com>
12909
12910         * dbus/dbus-server-debug.c: Add doc section comments
12911
12912         * dbus/dbus-transport-debug.c: add doc section comments
12913
12914 2003-01-28  Havoc Pennington  <hp@redhat.com>
12915
12916         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12917         the reverse order from how I had it
12918         (_dbus_string_base64_encode): reverse encoding order. I was
12919         basically byteswapping everything during encoding.
12920
12921 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12922
12923         * dbus/dbus-connection-internal.h:
12924         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12925         (_dbus_connection_remove_timeout):
12926         Add functions for adding and removing timeouts.
12927
12928         * dbus/dbus-message.c: (dbus_message_new_from_message):
12929         Add new function that takes a message and creates an exact
12930         copy of it, but with the refcount set to 1.
12931         (check_message_handling):
12932         Fix build error.
12933
12934         * dbus/dbus-server-protected.h:
12935         * dbus/dbus-server.c: (_dbus_server_init_base),
12936         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12937         (dbus_server_set_timeout_functions):
12938         (_dbus_server_remove_timeout):
12939         New functions so that a server can add and remove timeouts.
12940
12941         (dbus_server_listen):
12942         Add commented out call to dbus_server_debug_new.
12943
12944         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12945         Actually set the handler, doh.
12946
12947         * dbus/dbus-transport.c: (_dbus_transport_open):
12948         Add commented out call to dbus_transport_debug_client_new.
12949
12950         * dbus/Makefile.am:
12951         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12952
12953 2003-01-28  Havoc Pennington  <hp@pobox.com>
12954
12955         * dbus/dbus-message.c (check_message_handling): function to check
12956         on the loaded message, iterates over it etc.
12957
12958 2003-01-28  Havoc Pennington  <hp@pobox.com>
12959
12960         * test/Makefile.am (dist-hook): fix make distdir
12961
12962         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12963
12964 2003-01-27  Havoc Pennington  <hp@pobox.com>
12965
12966         * dbus/dbus-mempool.c (time_for_size): replace printf with
12967         _dbus_verbose
12968
12969         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12970         empty lines; fix the SAVE_LENGTH stuff to be
12971         START_LENGTH/END_LENGTH so it actually works; couple other
12972         bugfixes
12973
12974         * test/Makefile.am (dist-hook): add dist-hook for .message files
12975
12976         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12977         can be constant or locked.
12978         (_dbus_string_free): allow freeing a const string as
12979         documented/intended
12980
12981         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12982
12983         * dbus/dbus-test-main.c (main): take an argument which is the
12984         directory containing test data
12985
12986         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12987         argument to this and load all the messages in test/data/
12988         checking that they can be loaded or not loaded as appropriate.
12989
12990 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12991
12992         * bus/dispatch.c: (bus_dispatch_message_handler):
12993         Dispatch messages sent to services.
12994
12995         * bus/driver.c: (bus_driver_send_service_deleted),
12996         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12997         (bus_driver_send_service_acquired):
12998         Add helper functions for sending service related messages.
12999
13000         (bus_driver_send_welcome_message):
13001         Send HELLO_REPLY instead of WELCOME.
13002
13003         (bus_driver_handle_list_services):
13004         Send LIST_SERVICES_REPLY instead of SERVICES.
13005
13006         (bus_driver_handle_own_service),
13007         (bus_driver_handle_service_exists):
13008         New message handlers.
13009
13010         (bus_driver_handle_message):
13011         Invoke new message handlers.
13012
13013         (bus_driver_remove_connection):
13014         Don't remove any services here since that's done automatically
13015         by bus_service_remove_owner now.
13016
13017         * bus/driver.h:
13018         New function signatures.
13019
13020         * bus/services.c: (bus_service_add_owner):
13021         Send ServiceAcquired message if we're the only primary owner.
13022
13023         (bus_service_remove_owner):
13024         Send ServiceAcquired/ServiceLost messages.
13025
13026         (bus_service_set_prohibit_replacement),
13027         (bus_service_get_prohibit_replacement):
13028         Functions for setting prohibit replacement.
13029
13030         (bus_service_has_owner):
13031         New function that checks if a connection is in the owner queue of
13032         a certain service.
13033
13034         * bus/services.h:
13035         Add new function signatures.
13036
13037         * dbus/dbus-list.c: (_dbus_list_test):
13038         Add tests for _dbus_list_remove_last and traversing the list backwards.
13039
13040         * dbus/dbus-list.h:
13041         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13042         go any further, so return NULL then.
13043
13044         * dbus/dbus-protocol.h:
13045         Add new messages, service flags and service replies.
13046
13047 2003-01-26  Havoc Pennington  <hp@pobox.com>
13048
13049         * dbus/dbus-message-builder.c: implement, completely untested.
13050
13051         * test/data/*: add data to be used in testing.
13052         ".message" files are our simple loadable text format.
13053         ".message-raw" will be binary dumps of messages.
13054
13055         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13056
13057 2003-01-26  Havoc Pennington  <hp@pobox.com>
13058
13059         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13060
13061         * dbus/dbus-errors.c (dbus_result_to_string): add
13062         file errors
13063
13064         * dbus/dbus-message-builder.c: new file, will contain code to load
13065         up messages from files. Not implemented yet.
13066
13067 2003-01-26  Havoc Pennington  <hp@pobox.com>
13068
13069         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13070         the sender by setting to NULL
13071
13072 2003-01-26  Havoc Pennington  <hp@pobox.com>
13073
13074         The unit tests pass, but otherwise untested.  If it breaks, the
13075         tests should have been better. ;-)
13076
13077         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13078         the connection.
13079
13080         * dbus/dbus-message.c: redo everything so we maintain
13081         message->header as the only copy of the various fields.
13082         This avoids the possibility of out-of-memory in some cases,
13083         for example dbus_message_lock() can't run out of memory anymore,
13084         and avoids extra copying. Figured I may as well go ahead and do
13085         this since it was busted for dbus_message_lock to not return
13086         failure on OOM, and dbus_message_write_header was totally
13087         unchecked for OOM. Also fixed some random other bugs.
13088
13089         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13090         that strings are nul-terminated. Also, end_pos can be equal
13091         to string length just not greater than, I think.
13092         (_dbus_marshal_set_int32): new function
13093         (_dbus_marshal_set_uint32): new function
13094         (_dbus_marshal_set_string): new function
13095
13096         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13097         a warning, init timeout_list to NULL
13098         (dbus_connection_send_message): don't use uninitialized variable
13099         "serial"
13100
13101         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13102
13103 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13104
13105         * bus/driver.c: (bus_driver_handle_hello),
13106         (bus_driver_send_welcome_message):
13107         Plug leaks
13108
13109 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13110
13111         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13112         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13113         (dbus_connection_unref):
13114         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13115         * dbus/dbus-message.c: (dbus_message_unref),
13116         Plug memory leaks.
13117
13118         (dbus_message_get_fields):
13119         Remove debugging printout.
13120
13121         (_dbus_message_loader_return_buffer):
13122         Don't store the header string.
13123
13124         (_dbus_message_test):
13125         Plug leaks.
13126
13127 2003-01-26  Richard Hult  <rhult@codefactory.se>
13128
13129         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13130         the file descriptor list, since it can change under us.
13131
13132 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13133
13134         * glib/dbus-gmain.c: (dbus_connection_prepare),
13135         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13136         (remove_watch), (dbus_connection_hookup_with_g_main):
13137         Rewrite the glib handling to use its own GSource instead of a
13138         GIOChannel so we can catch messages put in the queue while waiting
13139         for a reply.
13140
13141 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * bus/Makefile.am:
13144         * bus/connection.c: (connection_disconnect_handler),
13145         (connection_watch_callback), (bus_connection_setup):
13146         * bus/dispatch.c: (send_one_message),
13147         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13148         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13149         * bus/dispatch.h:
13150         * bus/driver.c: (bus_driver_send_service_deleted),
13151         (bus_driver_send_service_created), (bus_driver_handle_hello),
13152         (bus_driver_send_welcome_message),
13153         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13154         (bus_driver_handle_message):
13155         * bus/driver.h:
13156         Refactor code, put the message dispatching in its own file. Use
13157         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13158         is disconnected.
13159
13160 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13161
13162         * dbus/dbus-internals.h:
13163         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13164
13165         * dbus/dbus-message.c: (dbus_message_get_sender):
13166         * dbus/dbus-message.h:
13167         Implement dbus_message_get_sender.
13168
13169         * dbus/dbus-protocol.h:
13170         Add message and service defines.
13171
13172 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13173
13174         * dbus/dbus-connection.c: (dbus_connection_send_message):
13175         * dbus/dbus-message-internal.h:
13176         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13177         (dbus_message_write_header):
13178         Remove _dbus_messag_unlock and don't set the client serial on a
13179         message if one already exists.
13180
13181 2003-01-24  Havoc Pennington  <hp@pobox.com>
13182
13183         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13184         list_pool
13185
13186         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13187         on OOM
13188
13189 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13190
13191         * dbus/dbus-list.c: (alloc_link), (free_link):
13192         Use a memory pool for the links.
13193
13194 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13195
13196         * bus/connection.c: (bus_connection_foreach):
13197         * bus/connection.h:
13198         Add new bus_connection_foreach function.
13199
13200         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13201         Add function that broadcasts a message to all clients.
13202
13203         (bus_driver_send_service_created), (bus_driver_handle_hello),
13204         (bus_driver_send_welcome_message),
13205         (bus_driver_handle_list_services), (bus_driver_message_handler):
13206         Implement functions that take care of listing services, and notifying
13207         clients when new services are created.
13208
13209         * bus/services.c: (bus_services_list):
13210         * bus/services.h:
13211         Add new function that returns an array of strings with the currently
13212         registered services.
13213
13214         * glib/dbus-glib.h:
13215         * glib/dbus-gmain.c:
13216         Update copyright year.
13217
13218 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13219
13220         * dbus/dbus-connection.c: (dbus_connection_send_message):
13221         Unlock the message in case it was sent earlier.
13222
13223         (dbus_connection_send_message_with_reply_and_block):
13224         Remove the reply message from the list.
13225
13226         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13227         Set array_len and new_pos correctly.
13228
13229         (_dbus_marshal_test):
13230         Remove debug output.
13231
13232         * dbus/dbus-message-internal.h:
13233         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13234         New function that returns the reply serial.
13235
13236         (_dbus_message_unlock):
13237         New function that unlocks a message and resets its header.
13238
13239         (dbus_message_append_string_array),
13240         (dbus_message_get_fields_valist),
13241         (dbus_message_iter_get_field_type),
13242         (dbus_message_iter_get_string_array),
13243         (dbus_message_get_fields),
13244         (dbus_message_append_fields_valist):
13245         Handle string arrays.
13246
13247         (dbus_message_set_sender):
13248         Make this function public since the bus daemon needs it.
13249
13250         (decode_header_data):
13251         Set the reply serial to -1 initially.
13252
13253         * dbus/dbus-message.h:
13254         Add dbus_message_set_sender.
13255
13256 2003-01-24  Havoc Pennington  <hp@pobox.com>
13257
13258         * doc/dbus-specification.sgml: add some stuff
13259
13260 2003-01-22  Havoc Pennington  <hp@pobox.com>
13261
13262         * doc/dbus-specification.sgml: Start to document the protocol.
13263
13264 2003-01-22  Havoc Pennington  <hp@pobox.com>
13265
13266         * dbus/dbus-connection.c
13267         (dbus_connection_send_message_with_reply_and_block): add some @todo
13268
13269         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13270
13271 2003-01-21  Havoc Pennington  <hp@pobox.com>
13272
13273         (patch untested because can't compile)
13274
13275         * bus/driver.c (create_unique_client_name): make this function
13276         never recycle client names. Also, caller should initialize
13277         the DBusString.
13278
13279         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13280
13281 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13282
13283         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13284         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13285         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13286         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13287         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13288         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13289         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13290         * dbus/dbus-marshal.h:
13291         * dbus/dbus-protocol.h:
13292         Add support for marshalling and demarshalling integer, double
13293         and string arrays.
13294
13295 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13296
13297         * bus/Makefile.am:
13298         Add driver.[ch]
13299
13300         * bus/connection.c: (connection_disconnect_handler):
13301         Remove the connection from the bus driver's list.
13302
13303         (connection_watch_callback): Dispatch messages.
13304
13305         (free_connection_data): Free connection name.
13306
13307         (bus_connection_setup): Add connection to the bus driver's list.
13308         (bus_connection_remove_owned_service):
13309         (bus_connection_set_name), (bus_connection_get_name):
13310         Add functions for setting and getting the connection's name.
13311
13312         * bus/connection.h:
13313         Add function headers.
13314
13315         * bus/driver.c: (create_unique_client_name),
13316         (bus_driver_handle_hello_message),
13317         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13318         (bus_driver_add_connection), (bus_driver_remove_connection):
13319         * bus/driver.h:
13320         * bus/main.c:
13321         * bus/services.c: (bus_service_free):
13322         * bus/services.h:
13323         New file that handles communication and registreation with the bus
13324         itself.
13325
13326 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13327
13328         * dbus/dbus-connection.c: (dbus_connection_send_message):
13329         Add a new client_serial parameter.
13330
13331         (dbus_connection_send_message_with_reply):
13332         Remove a @todo since we've implemented the blocking function.
13333
13334         (dbus_connection_send_message_with_reply_and_block):
13335         New function that sends a message and waits for a reply and
13336         then returns the reply.
13337
13338         * dbus/dbus-connection.h:
13339         Add new functions.
13340
13341         * dbus/dbus-errors.c: (dbus_result_to_string):
13342         * dbus/dbus-errors.h:
13343         Add new DBUS_RESULT.
13344
13345         * dbus/dbus-message-internal.h:
13346         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13347         (_dbus_message_set_sender), (dbus_message_write_header),
13348         (dbus_message_new_reply), (decode_header_data),
13349         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13350         * dbus/dbus-message.h:
13351         Add new functions that set the reply serial and sender.
13352         Also marshal and demarshal them correctly and add test.
13353
13354         * dbus/dbus-protocol.h:
13355         Add new DBUS_MESSAGE_TYPE_SENDER.
13356
13357         * glib/dbus-glib.h:
13358         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13359         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13360         (dbus_connection_hookup_with_g_main):
13361         * glib/test-dbus-glib.c: (main):
13362         Rewrite to use GIOChannel and remove the GSource crack.
13363
13364         * test/echo-client.c: (main):
13365         * test/watch.c: (check_messages):
13366         Update for changed APIs
13367
13368 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13369
13370         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13371
13372         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13373         Create a DBusTimeoutList.
13374         (dbus_connection_set_timeout_functions): Add new function to
13375         set timeout callbacks
13376
13377         * dbus/dbus-connection.h: Add public DBusTimeout API.
13378
13379         * dbus/dbus-message.c: (dbus_message_get_service):
13380         * dbus/dbus-message.h:  New function.
13381
13382         * dbus/dbus-server.c: Fix small doc typo.
13383
13384         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13385
13386 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13387
13388         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13389         of the string, just as long as specified.
13390
13391 2003-01-19  Havoc Pennington  <hp@pobox.com>
13392
13393         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13394         new function
13395
13396         * dbus/dbus-server.c (dbus_server_set_max_connections)
13397         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13398         keep track of current number of connections, and add API for
13399         setting a max (but haven't implemented enforcing the max yet)
13400
13401 2003-01-18  Havoc Pennington  <hp@pobox.com>
13402
13403         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13404         reading/writing if read_watch != NULL or write_watch != NULL.
13405
13406         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13407         the message loader code to actually load message->header and
13408         message->body into the newly-created message.
13409
13410         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13411         in OOM case
13412
13413         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13414         (dbus_connection_get_max_message_size)
13415         (dbus_connection_set_max_live_messages_size)
13416         (dbus_connection_get_max_live_messages_size): implement some
13417         resource limitation functions
13418
13419         * dbus/dbus-resources.c: new file implementing some of the
13420         resource limits stuff
13421
13422         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13423         missing docs, add @todo to handle OOM etc.
13424
13425         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13426         docs
13427
13428 2003-01-18  Havoc Pennington  <hp@pobox.com>
13429
13430         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13431         connection if it hasn't been already.
13432
13433         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13434         replace with DisconnectFunction.
13435
13436 2003-01-18  Havoc Pennington  <hp@pobox.com>
13437
13438         Building --disable-verbose-mode --disable-asserts --disable-tests
13439         cuts the library from 112K to 45K or so
13440
13441         * configure.in: check for varargs macro support,
13442         add --enable-verbose-mode, --enable-asserts.
13443
13444         * dbus/dbus-internals.h (_dbus_assert): support
13445         DBUS_DISABLE_ASSERT
13446         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13447
13448 2003-01-18  Havoc Pennington  <hp@pobox.com>
13449
13450         * dbus/dbus-test.c: include config.h so that tests actually run
13451
13452         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13453         so the failure mode when that assumption fails will be plenty
13454         obvious.
13455
13456 2003-01-18  Havoc Pennington  <hp@pobox.com>
13457
13458         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13459
13460         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13461         the distribution
13462
13463         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13464         since we don't want to use those in make check
13465
13466 2003-01-15  Havoc Pennington  <hp@redhat.com>
13467
13468         Release 0.2
13469
13470         * NEWS: update
13471
13472 2003-01-15  Havoc Pennington  <hp@redhat.com>
13473
13474         * test/Makefile.am: fix so that test source code ends up in the
13475         distribution on make distcheck
13476
13477 2003-01-15  Havoc Pennington  <hp@redhat.com>
13478
13479         Release 0.1.
13480
13481         * NEWS: update
13482
13483 2003-01-15  Havoc Pennington  <hp@redhat.com>
13484
13485         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13486         fix build when --disable-tests
13487
13488         * Makefile.am (EXTRA_DIST): put HACKING in here
13489
13490         * HACKING: document procedure for making a tarball release.
13491
13492 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13493
13494         * bus/connection.c: (connection_error_handler),
13495         (bus_connection_setup):
13496         * bus/main.c: (main):
13497         Make sure that the DBusConnectionData struct is NULLed
13498         out to prevent a segfault.
13499
13500         * dbus/dbus-errors.c: (dbus_result_to_string):
13501         * dbus/dbus-errors.h:
13502         * dbus/dbus-message.c: (dbus_message_get_fields),
13503         (dbus_message_get_fields_valist), (_dbus_message_test):
13504         * dbus/dbus-message.h:
13505         Make dbus_message_get_fields return a result code so we can
13506         track invalid fields as well as oom.
13507
13508 2003-01-11  Havoc Pennington  <hp@pobox.com>
13509
13510         * configure.in: change --enable-test/--enable-ansi action-if-given
13511         to enable_foo=$enableval instead of enable_foo=yes
13512
13513 2003-01-08  Havoc Pennington  <hp@pobox.com>
13514
13515         * dbus/dbus-string.c (_dbus_string_align_length): new function
13516
13517         * dbus/dbus-test-main.c: move main() for test app here
13518         * dbus/dbus-test.c
13519         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13520         symbol to run tests, because dbus-test isn't in the main
13521         library
13522
13523         Code review nitpicks.
13524
13525         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13526         for people with narrow emacs ;-). Assert client_serial was filled
13527         in. Assert message->name != NULL.
13528         (dbus_message_append_fields): have "first_field_type" arg separate
13529         from va list, needed for C++ binding that also uses varargs IIRC
13530         and helps with type safety
13531         (dbus_message_new): add @todo about using DBusString to store
13532         service/name internally
13533         (dbus_message_new): don't leak ->service and ->name on OOM later
13534         in the function
13535         (dbus_message_unref): free the service name
13536         (dbus_message_get_fields): same change to varargs
13537         i.e. first_field_type
13538         (_dbus_message_loader_return_buffer): assert that the message data
13539         is aligned (if not it's a bug in our code). Put in verbose griping
13540         about why we set corrupted = TRUE.
13541         (decode_header_data): add FIXME that char* is evil.  Was going to
13542         add FIXME about evil locale-specific string.h strncmp, but just
13543         switched to wacky string-as-uint32 optimization. Move check for
13544         "no room for field name" above get_const_data_len() to avoid
13545         assertion failure in get_const_data_len if we have trailing 2
13546         bytes or the like. Check for service and name fields being
13547         provided twice. Don't leak service/name on error. Require field
13548         names to be aligned to 4 bytes.
13549
13550         * dbus/dbus-marshal.c: move byte swap stuff to header
13551         (_dbus_pack_int32): uscore-prefix
13552         (_dbus_unpack_int32): uscore-prefix
13553         (_dbus_unpack_uint32): export
13554         (_dbus_demarshal_string): add @todo complaining about use of
13555         memcpy()
13556         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13557         handling allowing corrupt data to go unchecked
13558
13559 2003-01-08  Havoc Pennington  <hp@redhat.com>
13560
13561         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13562         to the select() as needed for authentication. (should be using
13563         _dbus_poll() not select, but for another day)
13564
13565         * dbus/dbus.h: include dbus/dbus-protocol.h
13566
13567 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13570         dbus-connection.h
13571
13572 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13573
13574         * dbus/dbus-internals.c: (_dbus_type_to_string):
13575         New function that returns a string describing a type.
13576
13577         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13578         * dbus/dbus-marshal.h:
13579         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13580         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13581         (dbus_message_iter_get_byte_array):
13582         * dbus/dbus-message.h:
13583         Add new convenience functions for appending and getting message fields.
13584         Also add demarshalling routines for byte arrays.
13585
13586 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13587
13588         * dbus/dbus-connection-internal.h:
13589         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13590         (_dbus_connection_get_next_client_serial),
13591         (dbus_connection_send_message):
13592         * dbus/dbus-internals.h:
13593         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13594         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13595         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13596         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13597         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13598         (_dbus_verbose_bytes), (_dbus_marshal_test):
13599         * dbus/dbus-marshal.h:
13600         * dbus/dbus-message-internal.h:
13601         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13602         (dbus_message_write_header), (_dbus_message_lock),
13603         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13604         (dbus_message_get_name), (dbus_message_append_int32),
13605         (dbus_message_append_uint32), (dbus_message_append_double),
13606         (dbus_message_append_string), (dbus_message_append_byte_array),
13607         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13608         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13609         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13610         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13611         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13612         (decode_header_data), (_dbus_message_loader_return_buffer),
13613         (message_iter_test), (_dbus_message_test):
13614         * dbus/dbus-message.h:
13615         * dbus/dbus-protocol.h:
13616         * dbus/dbus-test.c: (main):
13617         * dbus/dbus-test.h:
13618         * glib/test-dbus-glib.c: (message_handler), (main):
13619         * test/echo-client.c: (main):
13620         * test/watch.c: (check_messages):
13621         Make messages sendable and receivable for real.
13622
13623 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13624
13625         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13626         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13627         * dbus/dbus-message.c: (dbus_message_append_int32),
13628         (dbus_message_append_uint32), (dbus_message_append_double),
13629         (dbus_message_append_string), (dbus_message_append_byte_array):
13630         Handle OOM restoration.
13631
13632 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13635         (_dbus_demarshal_string), (_dbus_marshal_test):
13636         * dbus/dbus-marshal.h:
13637         * dbus/dbus-message.c: (dbus_message_get_name),
13638         Document these functions.
13639
13640         (dbus_message_append_int32), (dbus_message_append_uint32),
13641         (dbus_message_append_double), (dbus_message_append_string),
13642         (dbus_message_append_byte_array):
13643         * dbus/dbus-message.h:
13644         Add functions for adding message fields of different types.
13645
13646         * dbus/dbus-protocol.h:
13647         Add the different types.
13648
13649 2003-01-05  Havoc Pennington  <hp@pobox.com>
13650
13651         * bus/connection.c: implement routines for handling connections,
13652         first thing is keeping a list of owned services on each connection
13653         and setting up watches etc.
13654
13655         * bus/services.c: implement a mapping from service names to lists
13656         of connections
13657
13658         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13659
13660         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13661         to use static mutexes for global data
13662
13663         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13664         collection of functions to set/get application-specific data
13665         on the DBusConnection.
13666
13667 2003-01-04  Havoc Pennington  <hp@pobox.com>
13668
13669         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13670         (_dbus_poll): new function
13671
13672         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13673         copied from GLib
13674
13675         * bus/loop.c: initial code for the daemon main loop
13676
13677 2003-01-04  Havoc Pennington  <hp@pobox.com>
13678
13679         * test/watch.c (error_handler): make it safe if the error handler
13680         is called multiple times (if we s/error handler/disconnect
13681         handler/ we should just guarantee it's called only once)
13682
13683         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13684         error handler on disconnect (it's quite possible we should
13685         just change the error handler to a "disconnect handler," I'm
13686         not sure we have any other meaningful errors)
13687
13688         * configure.in: check for getpwnam_r
13689
13690         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13691         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13692         mechanism as in SASL spec, using socket credentials
13693
13694         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13695         (_dbus_send_credentials_unix_socket): new function
13696
13697         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13698         dbus_accept()
13699         (_dbus_write): only check errno if <0 returned
13700         (_dbus_write_two): ditto
13701
13702 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13703
13704         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13705         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13706         (_dbus_marshal_test):
13707         * dbus/dbus-marshal.h:
13708         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13709         to _dbus_marshal_utf8_string. Also fix some tests.
13710
13711 2002-12-28  Harri Porten  <porten@kde.org>
13712
13713         * configure.in: added check for C++ compiler and a very cheesy
13714         check for the Qt integration
13715
13716         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13717
13718         * qt/Makefile.am: added
13719
13720         * qt/.cvsignore: added
13721
13722         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13723         latter, added #ifdef QT_THREAD_SUPPORT guard.
13724
13725         * dbus/Makefile.am: added missing headers for make dist
13726
13727 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13728
13729         * dbus/Makefile.am: fixup export-symbols-regex.
13730
13731 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13732
13733         * acinclude.m4: Add this file and put the
13734         PKG_CHECK_MODULE macro in it.
13735
13736 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13737
13738         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13739         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13740         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13741         (_dbus_marshal_test):
13742         Make the demarshalling routines align the pos argument.
13743         Add string marshalling tests and fix the obvious bugs
13744         discovered.
13745
13746 2002-12-26  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-auth.c: fixes fixes fixes
13749
13750         * dbus/dbus-transport-unix.c: wire up support for
13751         encoding/decoding data on the wire
13752
13753         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13754         (_dbus_auth_decode_data): append to target string
13755         instead of nuking it.
13756
13757 2002-12-26  Havoc Pennington  <hp@pobox.com>
13758
13759         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13760         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13761         doh
13762
13763         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13764         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13765         now). Main point is because I wanted unpack_uint32 to implement
13766         _dbus_verbose_bytes
13767         (_dbus_verbose_bytes): new function
13768
13769         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13770
13771         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13772         mechanism to handle a corrupt message stream
13773         (_dbus_message_loader_new): fix preallocation to only prealloc,
13774         not prelengthen
13775
13776         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13777         (_dbus_string_test): enhance tests for copy/move and fix the
13778         functions
13779
13780         * dbus/dbus-transport-unix.c: Hold references in more places to
13781         avoid reentrancy problems
13782
13783         * dbus/dbus-transport.c: ditto
13784
13785         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13786         leak reference count in no-message case
13787
13788         * test/watch.c (do_mainloop): handle adding/removing watches
13789         during iteration over the watches. Also, ref the connection/server
13790         stored on a watch, so we don't try to mangle a destroyed one.
13791
13792         * dbus/dbus-transport-unix.c (do_authentication): perform
13793         authentication
13794
13795         * dbus/dbus-auth.c (get_state): add a state
13796         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13797         (_dbus_auth_get_unused_bytes): append the unused bytes
13798         to the passed in string, rather than prepend
13799
13800         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13801         the auth conversation DBusAuth
13802
13803         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13804         (_dbus_transport_new_for_domain_socket): when creating a
13805         transport, pass in whether it's a client-side or server-side
13806         transport so we know which DBusAuth to create
13807
13808 2002-12-03  Havoc Pennington  <hp@pobox.com>
13809
13810         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13811         _after_ finalizing the derived members
13812         (unix_connection_set): unref watch if we fail to add it
13813
13814         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13815         transport first, so that the connection owned by the
13816         transport will be valid as the transport finalizes.
13817
13818         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13819         if necessary, and remove watches from the connection.
13820
13821         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13822
13823 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13824
13825         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13826         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13827         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13828         (_dbus_marshal_test):
13829         * dbus/dbus-marshal.h:
13830         Add string marshal functions and have the demarshal functions
13831         return the new position.
13832
13833 2002-12-25  Havoc Pennington  <hp@pobox.com>
13834
13835         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13836         it is a simple protocol that just maps directly to SASL.
13837
13838         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13839         initial implementation, not actually used yet.
13840
13841         * dbus/dbus-string.c (_dbus_string_find): new function
13842         (_dbus_string_equal): new function
13843         (_dbus_string_base64_encode): new function
13844         (_dbus_string_base64_decode): new function
13845
13846 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * dbus/Makefile.am:
13849         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13850         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13851         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13852         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13853         * dbus/dbus-marshal.h:
13854         * dbus/dbus-protocol.h:
13855         * dbus/dbus-test.c: (main):
13856         * dbus/dbus-test.h:
13857         Add un-optimized marshalling/demarshalling routines.
13858
13859 2002-12-25  Harri Porten  <porten@kde.org>
13860
13861         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13862
13863 2002-12-24  Zack Rusin  <zack@kde.org>
13864
13865         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13866         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13867         main loop stuff
13868
13869 2002-12-24  Havoc Pennington  <hp@pobox.com>
13870
13871         * glib/dbus-gthread.c: fix include
13872
13873         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13874         I think glib API needs to change, though, as you don't
13875         want to use DBusMessageFunction, you want to use the
13876         DBusMessageHandler object. Probably
13877         dbus_connection_open_with_g_main_loop()
13878         and dbus_connection_setup_g_main_loop() or something like that
13879         (but think of better names...) that just create a connection
13880         that has watch/timeout functions etc. already set up.
13881
13882         * dbus/dbus-connection.c
13883         (dbus_connection_send_message_with_reply): new function just to
13884         show how the message handler helps us deal with replies.
13885
13886         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13887
13888         * dbus/dbus-string.c (_dbus_string_test): free a string that
13889         wasn't
13890
13891         * dbus/dbus-hash.c: use memory pools for the hash entries
13892         (rebuild_table): be more paranoid about overflow, and
13893         shrink table when we can
13894         (_dbus_hash_test): reduce number of sprintfs and write
13895         valid C89. Add tests for case where we grow and then
13896         shrink the hash table.
13897
13898         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13899
13900         * dbus/dbus-connection.c (dbus_connection_register_handler)
13901         (dbus_connection_unregister_handler): new functions
13902
13903         * dbus/dbus-message.c (dbus_message_get_name): new
13904
13905         * dbus/dbus-list.c: fix docs typo
13906
13907         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13908         an object representing a handler for messages.
13909
13910 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13911
13912         * glib/dbus-glib.h:
13913         * glib/dbus-gthread.c: (dbus_gthread_init):
13914         Don't use the gdbus prefix for public functions.
13915
13916 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13917
13918         * Makefile.am:
13919         * configure.in:
13920         Add GLib checks and fixup .pc files
13921
13922         * glib/Makefile.am:
13923         * glib/dbus-glib.h:
13924         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13925         (gdbus_connection_check), (gdbus_connection_dispatch),
13926         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13927         (dbus_connection_gsource_new):
13928         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13929         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13930         * glib/test-dbus-glib.c: (message_handler), (main):
13931         Add GLib support.
13932
13933 2002-12-15  Harri Porten  <porten@kde.org>
13934
13935         * autogen.sh: check for libtoolize before attempting to use it
13936
13937         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13938         struct.
13939
13940         * .cvsignore: ignore more stamp files
13941
13942         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13943
13944         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13945         without make install.
13946
13947 2002-12-15  Havoc Pennington  <hp@pobox.com>
13948
13949         * dbus/dbus-threads.c: add thread stubs that a higher library
13950         layer can fill in. e.g. the GLib wrapper might fill them in with
13951         GThread stuff. We still need to use this thread API to
13952         thread-safe-ize the library.
13953
13954 2002-12-12  Havoc Pennington  <hp@pobox.com>
13955
13956         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13957         below new interfaces and include fewer system headers.
13958
13959         * dbus/dbus-sysdeps.c (_dbus_read): new function
13960         (_dbus_write): new function
13961         (_dbus_write_two): new function
13962         (_dbus_connect_unix_socket): new function
13963         (_dbus_listen_unix_socket): new function
13964
13965         * dbus/dbus-message-internal.h: change interfaces to use
13966         DBusString
13967
13968 2002-12-11  Havoc Pennington  <hp@pobox.com>
13969
13970         * dbus/dbus-types.h: add dbus_unichar
13971
13972         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13973
13974         * dbus/dbus-connection.c (dbus_connection_send_message): return
13975         TRUE on success
13976
13977         * dbus/dbus-transport.c: include dbus-watch.h
13978
13979         * dbus/dbus-connection.c: include dbus-message-internal.h
13980
13981         * HACKING: add file with coding guidelines stuff.
13982
13983         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13984         handling here, for security purposes (as in vsftpd). Not actually
13985         using this class yet.
13986
13987         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13988         system/libc usage here, as in vsftpd, for ease of auditing (and
13989         should also simplify portability). Haven't actually moved all the
13990         system/libc usage into here yet.
13991
13992 2002-11-25  Havoc Pennington  <hp@pobox.com>
13993
13994         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13995         always print the first verbose message.
13996
13997 2002-11-24  Havoc Pennington  <hp@pobox.com>
13998
13999         * test/echo-client.c, test/echo-server.c: cheesy test
14000         clients.
14001
14002         * configure.in (AC_CHECK_FUNCS): check for writev
14003
14004         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14005         function
14006
14007         * dbus/dbus-list.c (_dbus_list_foreach): new function
14008
14009         * dbus/dbus-internals.c (_dbus_verbose): new function
14010
14011         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14012         representing a server that listens for connections.
14013
14014         * dbus/.cvsignore: create
14015
14016         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14017         public API for reporting errors
14018
14019         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14020         public object representing a connection that
14021         sends/receives messages. (Same object used for
14022         both client and server.)
14023
14024         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14025         Basic abstraction for different kinds of stream
14026         that we might read/write messages from.
14027
14028 2002-11-23  Havoc Pennington  <hp@pobox.com>
14029
14030         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14031         _DBUS_INT_MAX
14032
14033         * dbus/dbus-test.c (main): add list test, and include
14034         dbus-test.h as intended
14035
14036         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14037         (_dbus_hash_table_remove_int): return value indicates
14038         whether the entry existed to remove
14039
14040         * dbus/dbus-list.c: add linked list utility class,
14041         with docs and tests
14042
14043         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14044         array sometimes.
14045
14046 2002-11-23  Havoc Pennington  <hp@pobox.com>
14047
14048         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14049         DBUS_END_DECLS to nothing, that should fix this once and for all
14050
14051         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14052
14053         * dbus/dbus-message.c, dbus/dbus-hash.c:
14054         add some missing @brief
14055
14056 2002-11-23  Havoc Pennington  <hp@pobox.com>
14057
14058         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14059         to avoid confusing Doxygen
14060
14061         * dbus/dbus-hash.c: @} not }@
14062
14063         * dbus/dbus-message.c (struct DBusMessage): split out
14064         internals docs
14065
14066 2002-11-23  Havoc Pennington  <hp@pobox.com>
14067
14068         * configure.in: pile on more warning flags if using gcc
14069
14070         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14071         to document static functions
14072
14073         * configure.in: add summary to end of configure so it
14074         looks nice and attractive
14075
14076         * dbus/dbus-hash.c: finish implementation and write unit
14077         tests and docs
14078
14079         * configure.in: add --enable-tests to enable unit tests
14080
14081         * dbus/dbus-test.c: test program to run unit tests
14082         for all files in dbus/*, initially runs a test for
14083         dbus-hash.c
14084
14085         * dbus/dbus-internals.h: file to hold some internal utility stuff
14086
14087 2002-11-22  Havoc Pennington  <hp@redhat.com>
14088
14089         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14090         "ported" away from Tcl
14091
14092         * dbus/dbus-types.h: header for types such as dbus_bool_t
14093
14094 2002-11-22  Havoc Pennington  <hp@redhat.com>
14095
14096         * dbus/dbus.h: fixups for doc warnings
14097
14098         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14099         macros
14100         (QUIET): make it quiet so we can see warnings
14101
14102         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14103
14104 2002-11-22  Havoc Pennington  <hp@redhat.com>
14105
14106         * Makefile.am: include "Doxyfile" target in all-local
14107
14108         * configure.in: generate the Doxyfile
14109
14110         * Doxyfile.in: move Doxyfile here, so we can use
14111         configure to generate a Doxyfile with the right
14112         version number etc.
14113
14114 2002-11-22  Havoc Pennington  <hp@redhat.com>
14115
14116         * dbus/dbus-message.c: move inline docs into .c file
14117
14118         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14119         so all docs are under doc/
14120         (MAN_EXTENSION): generate man pages. Use extension
14121         ".3dbus" which matches ".3qt" on my system,
14122         I guess this is OK, I don't know really.
14123         (FILE_PATTERNS): look for .c files not .h, makes sense
14124         for plain C I think
14125
14126 2002-11-22  Havoc Pennington  <hp@pobox.com>
14127
14128         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14129         because any app can be a server, and any app can be a client,
14130         the bus is a special kind of server.
14131
14132 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14133
14134         * Doxyfile : adding. Still needs Makefile rules to be generated
14135         automatically (just run "doxygen" in the toplevel dir for now to
14136         generate docs)
14137
14138         * dbus/dbus-message.h : Adding sample docs (javadoc since
14139         resembles gtk-doc a little more)
14140
14141         * dbus/dbus.h : Adding sample docs
14142
14143 2002-11-21  Havoc Pennington  <hp@redhat.com>
14144
14145         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14146         so we can allow ourselves to include files directly,
14147         instead of having to use dbus.h
14148
14149         * dbus/dbus.h: fill in
14150
14151         * dbus/dbus-message.h: sketch out a sample header file.
14152         Include griping if you include it directly instead of
14153         via dbus.h
14154
14155         * dbus/dbus-macros.h: new file with macros for extern "C",
14156         TRUE/FALSE, NULL, etc.
14157
14158         * doc/file-boilerplate.c: put include guards in here
14159
14160 2002-11-21  Havoc Pennington  <hp@redhat.com>
14161
14162         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14163
14164         * COPYING: include the GPL as well, and license code
14165         under both AFL and GPL.
14166
14167 2002-11-21  Havoc Pennington  <hp@redhat.com>
14168
14169         * acconfig.h: get rid of this
14170
14171         * autogen.sh (run_configure): add --no-configure option
14172
14173         * configure.in: remove AC_ARG_PROGRAM to make
14174         autoconf complain less. add AC_PREREQ.
14175         add AC_DEFINE third arg.
14176
14177 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14178
14179         * doc/Makefile.am:
14180         Fix references so we can distcheck.
14181
14182 2002-11-21  Havoc Pennington  <hp@redhat.com>
14183
14184         * Initial module creation
14185