* configure.in, dbus/Makefile.am, test/name-test/run-test.sh,
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
4         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
5         to build with builddir != srcdir (Taken from a patch by Bernard Leak
6         <bernard at brenda-arkle dot demon dot co dot uk>)
7
8 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
9
10         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
11         default case
12
13 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
14
15         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
16         it works on any system providing this interface, not only FreeBSD.
17         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
18
19 2006-08-20  Havoc Pennington  <hp@redhat.com>
20
21         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
22         the docs
23
24 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
25
26         * Released 0.92 
27
28 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
29
30         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
31         to reflect the init late change
32
33         * bus/bus.c (bus_context_new): Check user before we fork so we can
34         print out an error message a user will be able to see
35
36 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
37
38         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
39
40         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
41         Add two more global locks for use on windows platforms.  These are
42         unused on non-windows platforms but are not ifdefed out to avoid
43         potential bugs (i.e. the few bytes lost does not warrent the extra
44         maintanence and complexity that having seperate sets of locks would
45         cause)
46
47 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
48
49         * bus/services.c (bus_registry_acquire_service): Return an error
50         when an application tries to register the org.freedesktop.DBus Bus Name
51
52         * bus/services.c (bus_registry_release_service): Return an error
53         when an application tries to release the org.freedesktop.DBus Bus Name
54
55 2006-08-17  Alp Toker  <alp@atoker.com>
56
57         * doc/dbus-specification.xml: Fix some minor typos.
58
59 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
60
61         * configure.in: use $with_init_scripts instead of $operating_system
62         to determine where to store the pid since the init scripts manipulate 
63         the pid file (patch from Marcelo Ricardo Leitner 
64         <marcelo dot leitner at terra dot com dot br>.  
65
66 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
67
68         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
69         static DBusList *uninitialized_condvar_list to support new late 
70         initialization threading model.  In this model threads can be initialized
71         even after the D-Bus API has been used but still needs to be initialized 
72         before the second thread has been started.  Mutexes and condvar addresses
73         are stored in the two static lists and are replaced with actuall locks
74         when threads are initalized.
75         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
76         the location into the static list
77         (_dbus_mutex_free_at_location): New method for removing a mutex location 
78         from the static list and freeing the mutex
79         (_dbus_condvar_new_at_location): New method for creating a conditional 
80         variable and placing the location into the static list
81         (_dbus_condvar_free_at_location): New method for removing a conditional
82         variable location from the static list and freeing the conditional variable 
83         (init_uninitialized_locks): Atomic method which goes through the static 
84         lists of mutex and condvar location and updates them with actuall locks
85         (init_global_locks): changed to init_locks
86         
87         * dbus/dbus-connection.c:
88         (_dbus_connection_test_get_locks): New method for tests to check connections
89         (_dbus_connection_new_for_transport): Use the new at_location mutex and
90         condvar API
91         (dbus_connection_allocate_data_slot): Pass in the global lock address
92         to _dbus_data_slot_allocator_alloc
93
94         * dbus/dbus-dataslot.c:
95         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
96         instead of the mutex itself
97
98         * dbus/dbus-message.c:
99         (dbus_message_allocate_data_slot): Pass in the global lock address
100         to _dbus_data_slot_allocator_alloc
101
102         * dbus/dbus-pending-call.c:
103         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
104         to _dbus_data_slot_allocator_alloc
105
106         * dbus/dbus-server.c:
107         (_dbus_server_init_base): Use the new at_location mutex API
108         (dbus_server_allocate_data_slot): Pass in the global lock address
109         to _dbus_data_slot_allocator_alloc
110
111         * test/name-test/test-threads-init.c: New test case for late thread
112         initialization
113
114 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
115
116         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
117         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
118         causes compile problems when asserts are turned off
119         Keeping _dbus_warn for printing out the message so even if
120         asserts are turned off the user gets the messages that something is 
121         wrong 
122
123 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
124
125         Patches by Kjartan Maraas <kmaraas at gnome dot org>
126
127         * bus/services.c (bus_service_list_queued_owners):
128         Add a pointer cast to fix compiler warning
129
130         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
131         return a NULL instead of FALSE since the return type
132         is not expecting a boolean
133
134         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
135         Remove unused variable
136
137         * dbus/dbus-marshal-recursive-util.c (node_new):
138         return a NULL instead of FALSE since the return type
139         is not expecting a boolean
140
141         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
142         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
143         because we are expecting a pointer not a boolean
144
145         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
146         add void as the parameter so some compilers
147         don't complain
148
149         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
150           _dbus_transport_new_for_tcp_socket):
151         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
152         because we are expecting a pointer not a boolean
153
154         * test/shell-test.c (test_command_line):
155         cast the second argument to _dbus_list_append to avoid compiler
156         warnings
157
158         * test/test-names.c (main): remove unused variable
159
160         * test/test-service.c (check_hello_from_self_reply):
161         Initialize echo_message and echo_reply to NULL
162         
163         * test/test-shell-service.c (handle_echo):
164         Remove unused variable and cast the third parameter passed to
165         dbus_connection_get_object_path_data to avoid compiler warrnings
166
167         * test/name-test/test-names.c (clear_message_queue):
168         Remove unused function
169
170         * test/name-test/test-pending-call-dispatch.c:
171         Fix format string in printf
172
173
174 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
175
176         * dbus/dbus-bus.c:
177         * test/name-test/test-names.c:
178         Remove test method dbus_bus_connection_get_unique_name because 
179         we already have public method dbus_bus_get_unique_name that 
180         does the exact same thing
181
182 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
183
184         * dbus/dbus-signature.c:
185         fix typos in Julio's previous patch which cause make check to fail
186
187 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
188
189         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
190         In any case it was wrong since this is a test checking to see if
191         address parsing is correct.  There was no need to get the true
192         tmp directory.  
193
194 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
195
196         * dbus/dbus-macros.h: Revert the addition of stddef.h
197         as we should not be adding it to library headers 
198
199 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
200
201         * dbus/dbus-signature.c:
202         Fix the unit tests so that they work if assertions are not enabled.
203         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
204
205 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
206
207         * tools/run-with-tmp-session-bus.sh:
208         * test/name-test/run-test.sh:
209         Remove bashisms (patch from Julio M. Merino Vidal
210         <jmmv at NetBSD dot org>)
211
212 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
213
214         * configure.in: add a version (>= 2.6.0) check for libxml2
215
216 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
217
218         * configure.in: make sure the compiler supports -Wfloat-equal
219         
220         * bus/dir-watch-dnotify.c: move functional code after 
221         variable declerations (C99 fix)  (patches from Jens Granseuer
222         <jensgr at gmx dot net>
223
224 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
225
226         * dbus/dbus-macros.h:
227         add #include <stddef.h> so that Sun compilers don't complain about
228         the defining NULL
229
230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-sysdeps.c:
233         * dbus/dbus-address.c:
234         * bus/activation.c:
235         * test/shell-test.c:
236         don't hardcode tmp directory (patch from Dave Meikle 
237         <dmk at davemeikle dot co dot uk>)
238
239 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
240
241         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
242         Change an assert to a detailed warning and abort.  
243         When allocator->lock != mutex it indicates that the user has failed
244         to initalize threads before using the D-Bus library.  This warning
245         helps the user identify the issue and fix their app.
246
247 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
248
249         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
250         with cleanups of bugs found from Coverity reports:
251
252         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
253         close the file on error to avoid a leak
254
255         * bus/expirelist.c (bus_expire_list_test):
256         Check for NULL on dbus_new0
257
258         * bus/activation.c (update_directory):
259         remove dead code
260
261         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
262         Fix some leaks
263
264         * bus/bus.c (process_config_every_time):
265         Fixed a leak
266
267         * bus/desktop-file.c (parse_key_value):
268         Fixed leak
269
270         * bus/selinux.c (bus_selinux_id_table_insert):
271         Fixed leak
272
273 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
274
275         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
276         remove dead code
277
278 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
279
280         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
281         #!/bin/bash
282
283 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
284
285         * Doxyfile.in: fix the INPUT line so we can generate docs 
286         when sourcedir != builddir (patch from Cygwin Ports maintainer
287         <yselkowitz at users dot sourceforge dot net>
288
289 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
290
291         * dbus/dbus-sysdeps.h:
292         * dbus/dbus-sysdeps.c: 
293         * dbus/dbus-string.c: 
294         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
295         GLib's function which does the same thing
296
297         * configure.in:
298         * bus/Makefile.am:
299         * bus/dir-watch-default.c:
300         * bus/dir-watch-dnotify.c:
301         * bus/dir-watch-kqueue.c:
302         Add kqueue directory watching for freebsd and split the directory
303         watching code into seperate files per method/arch
304         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
305
306 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
307
308         * configure.in:
309         * tools/Makefile.am:
310         * tools/dbus-launch.c:
311         * bus/Makefile.am:
312         allow --with-dbus-daemondir switch to be used to make the
313         daemon install to a seperate bindir like /usr/libexec
314         (patch from Brian Cameron <brian dot cameron at sun dot com)
315
316 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
317
318         * bus/Makefile.am (install-data-hook): removed the slash after 
319         $(DESTDIR) so we don't get the double slash which does not work
320         in windows (patch from Andras Porjesz 
321         <andras dot porjesz at siemens dot com>)
322
323 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
324
325         * dbus/dbus-sysdeps.h:
326         * dbus/dbus-sysdeps.c: 
327           add _dbus_printf_length (patch from Peter Kümmel 
328           <syntheticpp at gmx dot net>)
329
330 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
331
332         * dbus/dbus-internals.c: unistd.h is not used 
333         (_dbus_verbose_real): only enable verbose printing 
334         if DBUS_VERBOSE environment var is set to '1'
335         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
336
337 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
338
339         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
340         so we still compile on older gcc (patch from Frederic Peters 
341         <fpeters at 0d dot be>
342
343 2006-08-04  Havoc Pennington  <hp@redhat.com>
344
345         * configure.in: add -Wdeclaration-after-statement
346
347         * dbus/dbus-connection.c: change all the pending call stuff to
348         reflect the fact that pending call operations use the connection
349         lock
350
351         * dbus/dbus-pending-call.c: add locking here
352
353         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
354         field const consistent with how message field is done
355
356 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
357
358         * s/D-BUS/D-Bus/g
359
360 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
361
362         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
363         <in7y118 at public.uni-hamburg dot de> - fix invalid
364         read/write reported by valgrind
365
366 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
367
368         * Released 0.91
369
370 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
371
372         * dbus/dbus-connection.c:
373         (_dbus_connection_attach_pending_call_unlocked):
374         (connection_timeout_and_complete_all_pending_calls_unlocked):
375         Make sure we set timeout_added on pending calls to FALSE when
376         we remove the timeout from the connection
377
378 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
379
380         * Removed some extra bindings stuff lingering around (thanks timo)
381         * dbus-pendingcall.c (_dbus_pending_call_new): 
382         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
383         when we tried to take a lock on an already locked connection
384
385 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
386
387         * Released 0.90
388
389 2006-07-17  Havoc Pennington  <hp@redhat.com>
390
391         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
392         ints, reported by Owen Taylor
393
394 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
395
396         * doc/TODO:
397         * dbus/dbus-bus.c:
398         * dbus-errors.c:
399         * dbus/dbus-marshal-validate.c:
400           Removed TODO items which were fixed or are no longer relevent
401
402 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
403
404         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
405         Remove stray files from the stripped bindings
406
407 2006-07-16  Havoc Pennington  <hp@redhat.com>
408
409         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
410         Improve the error message on reply timeout
411
412 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
413
414         * Remove all bindings
415
416 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
417
418         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
419         and set pending_reply out arg to NULL is connection is disconnected
420         (connection_timeout_and_complete_all_pending_calls_unlocked): New
421         static method for cleaning up pending calls on disconnect
422         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
423         calls queued timeouts on disconnect 
424
425          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
426         Remove 
427
428 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
429
430         * bus/activation.[ch] (bus_activation_list_services): new function to 
431         get the list of services that can be activated
432
433         * bus/dispatch.c: test coverage for the new bus method
434         ListActivatableNames
435
436         * bus/driver.c: new bus method ListActivatableNames to get the list of
437         services that can be activated
438
439         * doc/dbus-specification.xml: ListActivatableNames method documentation
440
441 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
442         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
443         source files
444
445 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
446         * dbus/dbus-message-factory.c:
447         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
448
449 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
450         * dbus/dbus-connection-internal.h:
451         * dbus/dbus-connection.c:
452         * file dbus/dbus-pending-call.c:
453         * dbus/dbus-pending-call.h:
454         Make DBusPendingCall an opaque type even to D-Bus internals
455
456 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
457
458         * dbus/dbus-connection.h: remove connection_disconnect and replace with
459         connection_close
460
461         * dbus/dbus-connection.c: include dbus-bus.h
462         (_dbus_connection_read_write_dispatch): make static
463
464 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
465
466         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
467         function
468         (dbus_connection_dispatch): On disconnect unref any shared connections
469
470         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
471         for cleaning up shared connections on disconnect
472         (internal_bus_get): get a hard refrence to shared connections when
473         they are created
474         
475         * doc/TODO: Remove items which are no longer relevent or have been fixed
476         Split 1.0 todo items with a 0.90 freeze todo list
477  
478 2006-06-14  Ross Burton  <ross@openedhand.com>
479
480         * glib/dbus-gobject.c:
481         Free a leaking GArray (surely not!) in dbus_g_method_return.
482
483 2006-06-14  Ross Burton  <ross@openedhand.com>
484
485         * tools/Makefile.am:
486         * tools/dbus-monitor.c:
487         Don't use the GLib bindings in dbus-monitor (patch from Ralf
488         Habacker).
489         
490 2006-06-14  Ross Burton  <ross@openedhand.com>
491
492         * tools/dbus-print-message.c:
493         Also print the object path when outputting signals or method calls.
494
495 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
496
497         * qt/src/Makefile.am: install the qdbus.h header.
498         This allows people to actually use the installed code.
499
500 2006-06-12  Ross Burton  <ross@openedhand.com>
501
502         * glib/dbus-gproxy.c:
503         Don't leak a GArray when firing signals (thank Rob Taylor for review).
504
505 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
506
507         * Released 0.62
508
509 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
510
511         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
512         break pedantic builds. Closes bug 6043 (patch approved by
513         Havoc back in February).
514
515 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
516
517         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
518         that took a QDBusMessage parameter.
519         * qt/src/qdbusbus.h: Add a default flag for RequestName.
520         * qt/tools/dbus.cpp: Don't use automatic call because we might
521         be calling an async method: request a reply.
522
523 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
524
525         * test/qt/*: Update the testcases, including testing the new
526         functionality of sending null QByteArray and QString over the
527         bus. Add new headertest test and restore the old
528         qdbusxmlparser test.
529
530 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
531
532         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
533         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
534
535         * qt/examples/Makefile.am:
536         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
537         form.
538
539         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
540         QByteArray() (nulls) over the bus.
541         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
542         the one that has the signature suffix stripped.
543         * qt/src/qdbusreply.h: Make some methods const.
544
545 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
546
547         Patch from Timo Hoenig <thoenig@suse.de>.
548
549         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
550         required during build to EXTRA_DIST.
551         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
552         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
553         * configure.in: Fix "make dist", take care that the Makefile for
554         qt/dbus is being generated.
555
556 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
557
558         * bus/bus.c: Fix eavesdropping on method calls
559
560 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
561
562         * configure.in:
563         * dbus/dbus-userdb-util.c:
564         Add Solaris console owner patch from Artem Kachitchkine
565
566 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
567
568         * qt/Makfile.am:
569         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
570         reorganisation. Thanks to Timo Hoenig for pointing this out.
571
572 2006-06-06  Robert McQueen  <robot101@debian.org>
573
574         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
575           call to dbus_g_type_get_struct.
576
577 2006-06-06  Robert McQueen  <robot101@debian.org>
578
579         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
580           pointers were put into a GPtrArray-based specialised collection, and
581           then freed along with the array. GValues which you add into
582           collections or maps which have the NOCOPY flag set are assumed to not
583           belong to the caller, so rather than the existing pointer-stealing
584           semantics, they are copied instead. Given that the main consumers of
585           this abstraction are the bindings themselves, I don't think this is
586           too bad, but others should watch their choice of take vs set_static.
587
588 2006-06-06  Robert McQueen  <robot101@debian.org>
589
590         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
591           of g_slist_prepend not being used. Fixed copying of slist-based
592           specialised collections, then wrote a test case and found that it was
593           all broken. Went on to fix iterating and appending too. Good thing
594           nobody uses this code yet.
595
596 2006-06-06  Robert McQueen  <robot101@debian.org>
597
598         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
599           the iterators use gvalue_take_ptrarray_value (the GValues themselves
600           are discarded without unsetting, so it makes no difference whether
601           we take or set_static). Remove cases for G_TYPE_POINTER because
602           there really is nothing useful we can do with them in our
603           specialised types - we *need* boxed copy/free functions at the very
604           least.
605
606 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
607
608         * qt/dbus: Add directory. I had forgotten to add this
609         yesterday after the move...
610
611         * qt/examples/Makefile.am:
612         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
613
614         * qt/tools/Makefile.am:
615         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
616         Added feature to get and set properties.
617         Added validation of service, object path and interface names.
618
619         * qt/tools/dbusidl2cpp.cpp: Two new features:
620         1) Allow specifying both the header and the source file names,
621         by separating them with a colon.
622         2) Don't write an interface output if the -p switch wasn't
623         given, but the -a was.
624
625         * qt/src/*: Fix usage of Iterators and ConstIterators.
626         Fix shadowing of variables by other variables (-Wshadow).
627         Fix keyword-cleanliness in headers.
628         Fix ASCII-cast (QLatin1String, QLatin1Char).
629         Fix validation of member names.
630         Add extra checking of introspection data during XML parsing.
631         Various bug fixes.
632
633 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
634
635         * dbus/Makefile.am:
636         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
637         qt/dbus/qdbus.h now.
638
639 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
640
641         * configure.in: Make --disable-qt actually do
642           something. Patch inspired by Zack Rusin.
643
644 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
645
646         * qt/: Update to Subversion r548032.
647         This includes a big reorganisation of the files inside the
648         subdir.
649
650 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
651
652         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
653         clear:  
654         "Failed to connect to socket <host>:<port> <error>" instead of
655         "Failed to connect to socket <host>: <error>:<port>"
656
657         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
658         for a tcp transport. 
659
660 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
661
662         * qt/*: Update the QtDBus bindings up to revision 546310 in
663         Subversion.
664         This adds the dbuscpp2xml tool, that parses a C++ header and
665         outputs a D-BUS Introspection XML.
666
667 2006-05-21  Havoc Pennington  <hp@redhat.com>
668
669         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
670         is not NULL when it shouldn't be. Also a couple of possible fixes
671         for #4637 though I don't understand why the bug happens, to be
672         honest... also the object constructor has an assert name != NULL
673         and the name is only currently NULL for peer-to-peer proxies that 
674         I don't think anyone uses? So it should be asserting.
675         Anyway, for now at least see if we get an earlier assertion failure.
676
677         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
678         apparently broken code to be sure the tests fail and someone 
679         will fix them...
680
681 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
682
683         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
684         and arrays when they had a single element: has_next returns
685         false, even before you read the element. So, instead, check
686         the array length.
687
688 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
689
690         * qt/qdbusmessage.cpp:
691         * qt/qdbustypehelper_p.h:
692         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
693         the list is a const-reference
694
695 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
696
697         * Adding old doc patch that never got applied
698         
699         * dbus/bus.c (dbus_bus_add_match): Add documentation
700
701         * doc/dbus-specification.xml: Add documentation for the match rules
702           and the AddMatch and RemoveMatch methods
703
704 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
705
706         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
707         call (r535506)
708
709         * qt/dbusidl2cpp.cpp:
710         * qt/qdbusabstractadaptor.cpp:
711         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
712         sibling of the QDBusAbstractAdaptor objects instead of the
713         parent. (r535848)
714
715         * qt/dbusidl2cpp.cpp:
716         * qt/qdbusabstractinterface.cpp:
717         * qt/qdbusabstractinterface.h:
718         * qt/qdbusabstractinterface_p.h:
719         * qt/qdbusinterface.cpp: Make properties in interfaces
720         actually work. The code that was generated would not compile,
721         due to moc calls to functions that did not exist. They now
722         shall. (r536571)
723
724 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
725
726         * Makefile.am:
727         * configure.in:
728         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
729         Thanks to Brad Hards for providing the patch
730
731 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
732
733         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
734         call. (r535506)
735
736 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
737
738         * qt/examples/dbus.cpp: Enhance error messages and use
739         QDBusInterfacePtr.
740
741 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
742
743         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
744         and disable the copy operators. (r533772, r534746)
745
746         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
747
748         * qt/qdbusabstractinterface.cpp:
749         * qt/qdbusabstractinterface.h: Change the default call mode to
750         not use the event loop. Add convenience call() methods that
751         take a CallMode parameter. (r534042)
752
753         * qt/qdbusconnection.h: Change the default call mode to not
754         use the event loop. (r534042)
755
756         * qt/qdbusinterface.cpp:
757         * qt/qdbusinterface.h: Add a method to tell us if the
758         interface is valid (since we don't return a null pointer
759         anymore) (r534099)
760
761         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
762         (r534101)
763
764         * qt/qdbusinternalfilters.cpp: Decouple the introspection
765         function in two so taht we get the chance to introspect
766         without having a QDBusMessage (r534102)
767
768         * qt/qdbusbus.h:
769         * qt/qdbusconnection.cpp:
770         * qt/qdbusconnection_p.h:
771         * qt/qdbusintegrator.cpp: Keep a list of our own names to
772         avoid a round-trip to the server when attempting to introspect
773         one of our own objects. Also make sure the filter functions
774         match the empty interface as well. (r534108)
775         Don't keep the connection names. Instead, trust the unique
776         connection name (r534111)
777         Remove event loop usage (r534112)
778
779 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
780
781         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
782         Brad Hards.
783
784 2006-04-28  Robert McQueen  <robot101@debian.org>
785
786         * glib/dbus-gproxy.c: Fix properties so that they can be given in
787         any order, making it easier for people who inherit from this
788         object.
789
790 2006-04-28  Robert McQueen  <robot101@debian.org>
791
792         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
793         of memory from within pointer arrays and lists. Fixes bug #6300.
794
795 2006-04-28  Robert McQueen  <robot101@debian.org>
796
797         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
798         generating struct signatures. Fixes bug #6083.
799
800 2006-04-28  Robert McQueen  <robot101@debian.org>
801
802         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
803         to qdbusconnection_p.moc.
804
805 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
806
807         * README, INSTALL: Doc fixes
808         Patch from Brad Hards <bradh at frogmouth.net>
809
810 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
811
812         * qt/examples/dbus.cpp: Use the new merged-interface mode for
813         the dynamic meta object. No need to guess which interface to
814         call.
815
816 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
817
818         * qt/qdbusconnection_p.h:
819         * qt/qdbusmetaobject.cpp:
820         * qt/qdbusmetaobject_p.h:
821         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
822         for the dynamic meta object. No need to guess which
823         interface to call.
824         * qt/qdbusabstractinterface_p.h:
825         * qt/qdbusconnection.cpp:
826         * qt/qdbusintegrator.cpp:
827         * qt/qdbusinterface.cpp:
828         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
829         Add a QDBusRef that looks and behaves like DCOPRef.
830
831 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
832
833         * dbus/dbus-connection.c: Interfaces are optional in method
834         calls, so don't give up if the interface parameter is NULL.
835         Patch reviewed by Havoc Pennington.
836
837 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
838
839         * qt/qdbusreply.h: Add default constructor and operator=
840           (r532625)
841         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
842           in public headers (r532952)
843         * qt/qdbusabstractinterface.cpp:
844         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
845           make it the default (r532951)
846
847 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
848
849         * dbus/dbus-connection.c: Fix asserts
850         Patch from Tim Moloney <t.moloney at verizon.net>
851
852 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
853
854         * mono/Connection.cs, mono/Message.cs: Check Target type
855         Patch from Aaron Bockover (abockover at novell.com)
856
857 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
858
859         * INSTALL: fine-tune the requirements for the Qt4 binding.
860
861 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
862
863         * tools/dbus-print-message.c: Added support for printing of all 
864           remaining data types. Fixed logic for indentation of compound
865           data types.
866         
867 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
868
869         * INSTALL: fill out content of file providing DBus specific
870           build installations, followed by generic Auto* INSTALL file
871           content
872         
873 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
874
875         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
876           Patch by Stefan Eilers. (r529537)
877
878 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
879
880         * qt/qdbusinternalfilters.cpp: Don't show the parent's
881           contents (r528208)
882
883 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
884
885         * qt/Makefile.am: fix the dependency for
886           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
887           not in qdbusconnection.cpp.
888           Thanks to Jakub Stachowski <stachowski@hypair.net> for
889           spotting this.
890
891 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
892
893         * qt/examples/listnames.cpp:
894         * qt/examples/Makefile.am: Three ways to list the names on the
895           bus.
896
897 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
898
899         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
900           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
901
902 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
903
904         Merge from Subversion:
905         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
906           something that exists (r526315)
907         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
908           slots/signals (r526316)
909         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
910           also return an unknown-method error if the parameters don't
911           match for org.freedesktop.DBus.Properties. (r526842)
912         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
913         * qt/qdbusintegrator.cpp: Restore the proper order of
914           delivery: don't make method returns be delivered on priority
915           (r528150)
916
917 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
918
919         * configure.in qt/Makefile.am: add qt/examples
920         * qt/examples: Add QtDBus example programs:
921           - hello: Hello, World
922           - ping: Simple method-calling program
923           - pong: Simple object-exporting program (not using adaptors)
924           - complexping: Interactive method-calling program 
925                 (also gets and sets properties).
926           - complexpong: Sample program exporting methods, signals and
927                 properties, using adaptors.
928           - dbus: Simple implementation of a generic method-calling
929                 program, similar to 'dbus-send', but with semantics
930                 similar to 'dcop'.
931           - chat: Simplistic chat program, implemented using signals
932                 and the system bus. Looks like IRC.
933
934 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
935
936         * configure.in: Detect QtGui (necessary for one of the
937           example programs). Note: this increases the minimum required
938           version of Qt to 4.1.3.
939
940 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
941
942         * test/qt/*: Sync with KDE Subversion revision 523647.
943         Update the testcases to the new API. Remove testcases for
944         classes that are no longer public or have been removed.
945
946 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
947
948         * qt/*: 
949         * dbus/qdbus.h: Sync with KDE Subversion revision
950         523647. Hopefully, this will be the last of the
951         source-incompatible changes. Documentation has been improved;
952         support for QList<basic-types> has been added; QDBusObject is
953         gone; QDBus(Abstract)Interface is now a QObject with
954         auto-generated meta-object; QDBusIntrospection is marked
955         private, since QMetaObject can be used now; lots of bugfixes.
956
957 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
958
959         Patch from Milosz Derezynski <internalerror at gmail.com>
960         
961         * configure.in:
962         Output the service directory in the configure summary
963
964         * dbus-1.pc.in:
965         Add session_bus_services_dir
966
967 2006-03-10  Ross Burton  <ross@openedhand.com>
968
969         * tools/dbus-print-message.c:
970         Add support for object paths and signatures.
971
972 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
973
974         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
975         config reload.
976         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
977         information caches
978         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
979         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
980         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
981         * dbus/dbus-userdb.h: Add function to flush all user/group information
982         caches.
983
984 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
985
986         * qt/dbusidl2cpp.cpp:
987         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
988         for dcopidl2cpp, found in the KDE installations (or the more
989         modern kalyptus): generate Qt4 C++ code for the input XML
990         introspection. Currently no IDL parsing.
991
992 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
993
994         * test/qt/*: Update the self-tests.
995
996 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
997
998         * qt/*: 
999         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1000         represents the first feature-complete version of the Qt4
1001         bindings since I took ove maintainership.
1002
1003 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1004
1005         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1006         dir. This is C++, so we can't use the DBus ones.
1007
1008 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1011         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1012
1013 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * dbus/dbus-connection.c: 
1016         (_dbus_connection_block_pending_call):
1017         Check to see if our data has already been read off the connection
1018         by another blocking pending call before we block in poll.
1019         (check_for_reply_and_update_dispatch_unlocked):
1020         Code taken from _dbus_connection_block_pending_call - checks for
1021         an already read reply and updates the dispatch if there is one.
1022
1023         * test/name-test/test-pending-call-dispatch.c:
1024         New test for making sure we don't get stuck polling a 
1025         dbus connection which has no data on the socket when
1026         blocking out of order on two or more pending calls.
1027
1028 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1029
1030         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1031         make/automake don't detect that we're talking about the same
1032         .lo file if I specify the full path to the source files.
1033
1034 2006-02-26  Havoc Pennington  <hp@redhat.com>
1035
1036         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1037
1038         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1039         session bus variable is unset, suggest "man dbus-launch" and "man
1040         dbus-daemon" to figure out how to fix the problem
1041
1042 2006-02-25  Havoc Pennington  <hp@redhat.com>
1043
1044         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1045         should make this thing use the new glib options parser
1046
1047 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1048
1049         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1050         .lo files taking moc sources.
1051
1052 2006-02-25  Havoc Pennington  <hp@redhat.com>
1053
1054         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1055         and install it as a public header
1056
1057 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1058
1059         * Released 0.61
1060
1061 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1062         
1063         * proxies.py: Fix the callchain
1064
1065 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1066         
1067         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1068
1069         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1070         dbus/dbus-sysdeps.c
1071
1072         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1073         call _dbus_group_info_free_allocated which causes infinite loop,
1074         correctly call _dbus_group_info_free
1075
1076 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1077
1078         * qt/qdbusinterface_p.h:
1079         * qt/qdbusinterface.cpp: Use the standard
1080         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1081         calls instead of creating one for us.
1082
1083         * qt/qdbusconnection_p.h:
1084         * qt/qdbusintegrator.cpp: Remove debugging code.
1085
1086         * qt/qdbusintegrator.cpp:
1087         * qt/qdbusmessage.cpp:
1088         * qt/qdbusmessage_p.h:
1089         * qt/qdbusmessage.h: Change the behaviour of automatic
1090         reply-sending: now a reply is always sent, unless the caller
1091         didn't request one or if the user slot has already sent one.
1092
1093 2006-02-16  Robert McQueen  <robot101@debian.org>
1094
1095         * configure.in: Patch from Debian packages by Sjoerd Simons
1096         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1097         arguments so it's possible to build both bindings in the
1098         same tree.
1099
1100         * qt/Makefile.am: Fix truncated value so that make dist works.
1101
1102 2006-02-16  Robert McQueen  <robot101@debian.org>
1103
1104         * acinclude.m4, configure.in: Patch from Brad Hards
1105         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1106         improving quoting, re-ordering a few checks, and a few other
1107         aesthetic tidy-ups.
1108
1109 2006-02-16  Robert McQueen  <robot101@debian.org>
1110
1111         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1112         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1113         assertion that the next element to read from the iter is fixed in
1114         size. This is not the case when you are at the end of the iter,
1115         because the next element type is INVALID.
1116
1117         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1118         a bogus assert which means that you may not initialise a 0-length
1119         string unless you provide a non-NULL pointer. This prevented
1120         you from marshalling messages containing zero-length arrays in
1121         some cases.
1122
1123         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1124         from Rob to correct bogus asserts when trying to demarshal an
1125         array and get_fixed_array got you 0 elements. Append nothing to
1126         the GArray in this case.
1127
1128         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1129         an empty array via the glib bindings. Without all of the above
1130         patches, this new test fails.
1131
1132 2006-02-16  Robert McQueen  <robot101@debian.org>
1133
1134         * glib/dbus-gmain.c: Make the previous commit compile.
1135
1136         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1137         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1138         specify sender_keyword="foo", path_keyword="bar" when adding
1139         a signal listener, so that you can bind to signals generically
1140         but still do something useful in your callback.
1141
1142         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1143         chars so that they're not cast to chars and made negative. Thanks
1144         to Jakub Stachowski for reporting this and testing the fix.
1145
1146 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * dbus/dbus-glib.h:
1149         * glib/dbus-gmain.h:
1150         (dbus_g_connection_open): new method for openning
1151         a connection to an arbitrary address in the glib bindings
1152
1153         * ChangeLog: checkin last entry which doesn't seem to be commited
1154
1155 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1156
1157         * tools/dbus-launch.c: Fixed sh syntax output
1158
1159 2006-02-13  Robert McQueen  <robot101@debian.org>
1160
1161         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1162         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1163         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1164         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1165         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1166         missing piece of the glib bindings jigsaw puzzle. This modifies
1167         the existing specialised types to have N type parameters (rather
1168         than the current 1 or 2 for arrays and dictionaries respectively).
1169         You can then use this to get a glib type to represent any arbitrary
1170         D-Bus struct type using dbus_g_type_get_struct. The only
1171         implementation of these types is with GValueArrays as before,
1172         but it's now possible to store these in arrays, emit them in
1173         signals, etc.
1174
1175 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1176
1177         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1178         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1179         <thiago.macieira at trolltech.com>
1180
1181 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1184         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1185
1186 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * bus/connection.c (bus_connections_expect_reply): Make
1189         pending reply limit not common to all connections (Bug #5416)
1190         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1191
1192 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1195
1196 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1197
1198         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1199         patch from Doug Goldstein <cardoe at gentoo.org>
1200
1201 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1202
1203         * mono/Arguments.cs: Fix a magic number in the mono bindings
1204         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1205
1206 2006-01-27  Robert McQueen  <robot101@debian.org>
1207
1208         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1209         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1210         when generating the client-side methods, instead of overloading
1211         CSymbol which broke everything horribly. My apologies.
1212
1213 2006-01-27  Robert McQueen  <robot101@debian.org>
1214
1215         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1216         by me and Rob Taylor to add a simple_free function to D-Bus map
1217         and collection types, which allows those types which can be freed
1218         with a GDestroyNotify (such as GHashTables and GArrays, but not
1219         GPtrArrays) to be stored as the values in hashtables.
1220
1221         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1222         Patch by Rob Taylor to add nested dicts to the glib tests to check
1223         the above code works, and appears not to leak when called repeatedly.
1224
1225 2006-01-27  Robert McQueen  <robot101@debian.org>
1226
1227         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1228         to free a D-Bus allocated string with dbus_free () instead of
1229         g_free ().
1230
1231 2006-01-27  Iain Holmes  <iain@openedhand.com>
1232
1233         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1234         method from being called multiple times.
1235
1236 2006-01-19  Robert McQueen  <robot101@debian.org>
1237
1238         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1239         <rob.taylor@collabora.co.uk> to add support for generating bindings
1240         to arrays that are represented as GPtrArrays rather than GArrays (ie
1241         size-variable things, such as strings, objects, structs, etc).
1242
1243 2006-01-05  Robert McQueen  <robot101@debian.org>
1244
1245         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1246         <ricardo.kekki@movial.fi> to make it possible to inherit from
1247         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1248         a private part, and moving the setting of the DBusGProxyManager into a
1249         connection property, allowing proper GObject construction.
1250
1251 2006-01-05  Robert McQueen  <robot101@debian.org>
1252
1253         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1254         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1255         annotations when generating glib client bindings.
1256
1257 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1258
1259         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1260
1261         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1262
1263 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1266
1267 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1268
1269         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1270
1271 2005-12-19  Ross Burton  <ross@openedhand.com>
1272
1273         * doc/dbus-tutorial.xml:
1274         Document the Glib client-side bindings, and list all possible annotations.
1275
1276 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1277
1278         * dbus/bus.c (dbus_bus_release_name): Add documentation
1279
1280 2005-12-06  Robert McQueen  <robot101@debian.org>
1281
1282         * python/service.py: s/sucessful/successful/ so we're allocating to
1283         and reading from the same variable. Oops.
1284
1285 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1286
1287         * Released 0.60
1288
1289 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1290
1291         * test/qt/Makefile.am: build from srcdir
1292
1293         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1294         Note - this code is wrong and needs to be fixed by the Qt binding
1295         developers.  The flags should be treated as bitfields and not enums.
1296
1297         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1298
1299 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1300
1301         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1302           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1303           in production code
1304
1305 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1306
1307         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1308         method for getting messages off the bus in the absence of a
1309         mainloop.  This method is much like 
1310         dbus_connection_read_write_dispatch except it does not dispatch
1311         the messages to a registered filter function.  Instead it
1312         allows a developer to process messages by directly popping
1313         them off the bus.
1314
1315 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1318         the parser to continue instead of returning error
1319         (bus_desktop_file_load): Do not free parser data when
1320         parse_section_start or parse_key_value fails because it was 
1321         already freed by parser_free (patch from Carlos Garcia Campos  
1322         <carlosgc at gnome.org>)
1323
1324 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1325
1326         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1327         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1328         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1329         test/test-segfault.c, test/test-utils.c,
1330         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1331         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1332         Various cleanup of dead code and compiler warnings (patch from
1333         Kjartan Maraas <kmaraas at gnome.org>) 
1334
1335 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1338         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1339
1340 2005-11-27  Robert McQueen  <robot101@debian.org>
1341
1342         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1343         part of the preceding one. Oops. Merge patch by Johan Hedberg
1344         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1345         on big-endian platforms.
1346
1347         * test/python/test-client.py: Add some 16-bit integers to the test
1348         values.
1349
1350 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1351
1352         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1353         method return message for property getters
1354
1355 2005-11-27  Robert McQueen  <robot101@debian.org>
1356
1357         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1358         with type v of an instance of dbus.Variant(foo, type='x') caused
1359         it to be boxed twice before sending over the bus.
1360
1361         * python/dbus_bindings.pyx, python/service.py,
1362         test/python/test-client.py: Update the constants for the new
1363         request_name flags, and update comments/test cases now that queueing
1364         is the default action.
1365
1366 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * configure.in:
1369         - Change version to 0.60 for impending release
1370         - upped the sonames because of ABI and API breakage
1371
1372 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         * configure.in: Add test/name-test/Makefile to the generated
1375         Makefile list
1376
1377         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1378         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1379         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1380         not to queue an ower if it can't be the primary owner
1381
1382         * bus/bus.h: Add new internal BusOwner struct
1383
1384         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1385         to bus_registry_ensure and don't set the prohibit_replacement flag
1386         since they are now set per BusOwner and not per name.
1387         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1388         that returns the list of connections in a name's connection queue
1389         
1390         * bus/services.c (struct BusService): remove prohibit_replacement field
1391         (struct BusOwner): new struct for keeping track of queued connections
1392         and their associated flags for the queue
1393         (struct BusRegistry): add a BusOwner memory pool
1394         (bus_registry_new): initialize the BusOwner memory pool
1395         (bus_registry_unref): free the BusOwner memory pool
1396         (_bus_service_find_owner_link): new internal method for
1397         searching the queue for a specific connection
1398         (bus_owner_set_flags): new method for adding setting the flags on a
1399         bus owner
1400         (bus_owner_new): new method that creates a BusOwner object from the
1401         pool and sets its flags
1402         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1403         (bus_registry_ensure): Add the flags parameter
1404         (bus_registry_acquire_service): Switch from using raw connections to
1405         using the BusOwner struct
1406         Add new state machine for dealing with the new set of flags
1407         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1408         cancel_ownership, free_ownership_cancel_data, 
1409         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1410         restore_ownership, free_ownership_restore_data, 
1411         add_restore_ownership_to_transaction): Switch to using BusOwner 
1412         instead of raw connections
1413         (bus_service_add_owner): Add flags parameter
1414         Switch to using BusOwner instead of raw connections
1415         Add state machine for dealing with the new set of flags
1416         (bus_service_swap_owner): Swaps the first and second owners in the
1417         queue.  Used to make sure proper signals are sent when a service looses 
1418         or gains primary ownership.  We never insert an owner at the top of the
1419         queue.  Instead we insert it in the second position and then swap.
1420         (bus_service_remove_owner): Remove the owner from the queue sending
1421         out the NameLost and NameOwnerChanged signals if the we were the 
1422         primary owner
1423         (bus_service_get_primary_owners_connection): New method that extracts
1424         the connection from the primary owner
1425         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1426         connection
1427         (bus_service_get_allow_replacement): Changed from the old 
1428         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1429         primary owner and returns if it can be replaced or not
1430         (bus_service_set_prohibit_replacement): removed
1431         (bus_service_has_owner): returns TRUE if and owner with
1432         the specified connection exists in the queue
1433         
1434         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1435         method that only compiles if tests are enabled.  Allows us to get the 
1436         unique name of a connection so we can check it against the queue when
1437         doing regression tests
1438
1439         * bus/activation.c (bus_activation_send_pending_auto_activate),
1440         bus/dispatch.c (bus_dispatch),  
1441         bus/driver.c (bus_driver_handle_get_service_owner, 
1442         bus_driver_handle_get_connection_unix_user, 
1443         bus_driver_handle_get_connection_unix_process_id,
1444         bus_driver_handle_get_connection_selinux_security_context),
1445         bus/signals.c (connection_is_primary_owner): 
1446         use bus_service_get_primary_owners_connection instead of
1447         bus_service_get_primary_owner
1448
1449         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1450         _dbus_listen_unix_socket): Calculate the length of the socket
1451         path and use that instead of using a fixed length which was
1452         causing socket names to contain many trailing Nul bytes.
1453
1454         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1455         (dbus_g_method_get_sender): New method for extracting the sender 
1456         from a DBusGMethodInvocation
1457         (dbus_g_method_return_get_reply): changed name to 
1458         dbus_g_method_get_reply
1459         (dbus_g_method_return_send_reply): changed name to
1460         dbus_g_method_send reply
1461
1462         * doc/dbus-specification.xml: New docs that describe how the new
1463         queueing system works and talks about the changes to the how
1464         we specify socket names
1465
1466         * glib/examples/example-service.c, 
1467         glib/examples/example-signal-emitter.c,
1468         glib/examples/statemachine/statemachine-server.c:
1469         Changed the RequestName flags to the new system
1470
1471         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1472         regression test suite for testing various states of the new
1473         queueing system
1474         
1475 2005-11-15  Robert McQueen  <robot101@debian.org>
1476
1477         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1478         Taylor to add two methods, dbus_g_method_return_get_reply and
1479         dbus_g_method_return_send_reply, to allow you to get the reply
1480         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1481         and send it. The GLib bindings can't marshal a return value of
1482         something like a(s) if the array is empty - ultimately they should be
1483         made to heed the signature of the out arguments as the Python bindings
1484         now can, but this is a workable interim solution which might have
1485         other applications.
1486
1487 2005-11-15  Robert McQueen  <robot101@debian.org>
1488
1489         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1490         method to org.freedesktop.DBus to release a bus name or give up
1491         waiting in the queue for it.
1492
1493         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1494         dbus_bus_release_name method to send the ReleaseName method calls.
1495         Add constants for the return values to dbus/dbus-shared.h.
1496
1497         * doc/dbus-specification.xml: Document the new ReleaseName method
1498         in the specification.
1499
1500         * python/dbus_bindings.pyx: Add a low-level python binding for the
1501         release name method.
1502
1503         * python/exceptions.py, python/service.py: Make freeing BusName
1504         objects release the name. Add a NameExistsException, and fix a
1505         bug with creating UnknownMethodException.
1506
1507         * test/python/test-client.py: Add tests for freeing BusName
1508         objects causing names to be released.
1509
1510 2005-11-14  Robert McQueen  <robot101@debian.org>
1511
1512         * python/service.py: Include the traceback in the error reply when we
1513         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1514
1515 2005-11-14  David Zeuthen  <davidz@redhat.com>
1516
1517         Patch from Timo Hoenig <thoenig@suse.de>.
1518
1519         * bus/bus.c: I've recently investigated why the automatic reload
1520         of configuration files does not work as expected.
1521
1522         Currently, reloading configuration files does only work when
1523         running dbus-daemon with --nodaemon.  If we are running as daemon
1524         we're hitting a dnotify bug once we fork the process.
1525
1526         We're initializing the dnotify fds before calling fork().  Once
1527         the child process forked it does still have the fds (and they
1528         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1529         getting SIGIO as changes are made to the configuration files.
1530
1531         The attached patch moves the initialization of the dnotify fds to
1532         process_config_postinit().  This is safe for all current code
1533         paths and solves the dnotify disfunction.  If we're running
1534         dbus-daemon as daemon the fds for dnotify are now being
1535         initialized after fork() for the child process.
1536
1537         * configure.in: The current configure.in check for dnotify probes
1538         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1539         match for 'xlinux', too. Additionally I have adapted the configure
1540         option's style to match with the others.
1541
1542 2005-11-14  Robert McQueen  <robot101@debian.org>
1543
1544         * python/decorators.py, python/service.py: Add a new argument to the
1545         dbus.service.method decorator called sender_keyword, which if set,
1546         specifies the name of an argument which will be provided the bus
1547         name of the method caller.
1548
1549         * test/python/test-client.py, test/python/test-service.py: Add a
1550         method and test to check the sender_keyword functionality.
1551
1552 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1553
1554         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1555         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1556         Simons <sjoerd at luon.net>)
1557
1558         * AUTHORS: Add Robert McQueen for his work on the Python
1559         Bindings and other parts of D-Bus
1560
1561 2005-11-07  Robert McQueen  <robot101@debian.org>
1562
1563         * python/decorators.py: Change emit_signal function to use the
1564         signature annotation of the signal when marhsalling the arguments from
1565         the service. Fix a bug where the code checking signature length
1566         against argument length referenced the wrong variable.
1567
1568         * python/introspect_parser.py: Avoid adding the type signature of
1569         signal arguments to any methods which occur after them in the
1570         introspection data (!) by making the parser a little more careful
1571         about its current state.
1572
1573         * python/service.py: Remove debug prints from last commit (again :D).
1574
1575         * test/python/test-client.py, test/python/test-service.py: Add test
1576         signals with signature decorators to test the strict marshalling code
1577         gives errors at the right time. Could do with checking the signals
1578         actually get emitted too, given that the test does nothing with
1579         signals at the moment...
1580
1581 2005-11-07  Robert McQueen  <robot101@debian.org>
1582
1583         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1584         instances to stop madness of creating new instances representing
1585         the same bus connection all the time, rendering any tracking of
1586         match rules and bus names quite meaningless. Caught a bug where
1587         the private argument to SessionBus() and friends was being passed
1588         in as use_default_mainloop by mistake. Still some problems with
1589         multiple dbus_binding.Connection instances representing the same
1590         low-level connection (eg when you use both SessionBus() and
1591         StarterBus() in same process), but it's a lot better now than it
1592         was.
1593
1594         * python/dbus_bindings.pyx: Add constants with the return values
1595         for bus_request_name().
1596
1597         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1598         and retrieve the same instances for the same name, so deletion can be
1599         done with refcounting. Also now throws some kind of error if you
1600         don't actually get the name you requested, unlike previously...
1601
1602         * test/python/test-client.py: Add tests for instance caching of buses
1603         and bus name objects.
1604
1605 2005-11-04  Robert McQueen  <robot101@debian.org>
1606
1607         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1608         marshalling of boolean values. Add some booleans to the values in
1609         the test client.
1610
1611         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1612         argument to the dbus.service.method decorator, which allows you to
1613         name arguments to take two callback functions for replying with
1614         return values or an exception.
1615
1616         * test/python/test-client.py, test/python/test-service.py: Add test
1617         case using asynchronous method reply functions, both return values and
1618         errors, and from within both the function itself and from a mainloop
1619         callback.
1620
1621         * python/decorators.py, python/service.py: Perform checking that the
1622         number of method/signal arguments matches the number of types in the
1623         signature at class loading time, not when you first introspect the
1624         class.
1625
1626         * python/service.py: Remove debug print left by the last commit.
1627
1628 2005-11-03  Robert McQueen  <robot101@debian.org>
1629
1630         * python/service.py: Heavy refactoring of method invocation, with
1631         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1632         in favour of a new _message_cb that uses seperate functions for
1633         looking up the method to call, marshalling the return values, and
1634         sending exceptions as errors, and is easier to follow as a
1635         consequence.  Fixes some corner cases about returning things that
1636         don't match your declared out_signature, allows exceptions to define
1637         _dbus_error_name and have it be sent over the bus as the error name,
1638         and paves the way for cool stuff like heeding the message no reply
1639         flag, asynchronous method implementations, informing the method of the
1640         sender, and including backtraces in the error messages.
1641
1642         * test/python/test-client.py: Catch and print exceptions thrown in the
1643         async callback tests, rather than passing them to the low-level
1644         bindings to be ignored in a noisy and frustrating manner.
1645
1646 2005-11-03  Robert McQueen  <robot101@debian.org>
1647
1648         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1649         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1650         tweak others to be consistent.
1651
1652         * test/python/test-client.py: Tweak output of testInheritance.
1653
1654 2005-10-29  Robert McQueen  <robot101@debian.org>
1655
1656         * python/service.py: Major changes to allow multiple inheritance
1657         from classes that define D-Bus interfaces:
1658         
1659          1. Create a new Interface class which is the parent class of
1660             Object, and make the ObjectType metaclass into InterfaceType.
1661         
1662          2. Patch written with Rob Taylor to replace use of method_vtable
1663             with code that walks the class's __MRO__ (method resolution order)
1664             to behave like Python does when invoking methods and allow
1665             overriding as you'd expect. Code is quite tricky because
1666             we have to find two methods, the one to invoke which has the
1667             right name and isn't decorated with the /wrong/ interface,
1668             and the one to pick up the signatures from which is decorated
1669             with the right interface.
1670         
1671             The same caveats apply as to normal multiple inheritance -
1672             this has undefined behaviour if you try and inherit from two
1673             classes that define a method with the same name but are
1674             decorated with different interfaces. You should decorate
1675             your overriding method with the interface you want.
1676         
1677          3. Replace grungy introspection XML generation code in the metaclass
1678             with dictionaries that cope correctly with multiple inheritance
1679             and the overriding of methods. This also uses the signature
1680             decorations to provide correct introspection data, including
1681             the debut appearance of the types of your return values. :D
1682
1683         * test/python/test-client.py, test/python/test-service.py: Add a test
1684         case to try invoking an method that overrides one inherited from a
1685         D-Bus interface class.
1686
1687 2005-10-29  Robert McQueen  <robot101@debian.org>
1688
1689         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1690         Add checking for the end of struct character when marshalling a
1691         struct in MessageIter.append_strict.
1692
1693         * python/examples/example-service.py,
1694         python/examples/gconf-proxy-service.py,
1695         python/examples/gconf-proxy-service2.py: Update to use gobject
1696         mainloop directly rather than appearing to depend on gtk.
1697
1698         * python/test/test-client.py, python/test/test-server.py: Remove
1699         obsolete and broken test scripts for old bindings. We have up to date
1700         and working tests in test/python/.
1701
1702 2005-10-29  Robert McQueen  <robot101@debian.org>
1703
1704         * python/decorators.py: Add optional arguments to the method and
1705         signal decorators to allow you to specify the signature of arguments
1706         and return values. Preserve the doc strings of signal functions in the
1707         decorated version, for pydoc and friends.
1708
1709         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1710         parse_signature_block function with an iterable dbus.Signature()
1711         type. Fix a bug in MessageIter.append_strict where you could append
1712         anything by claiming it was a string.
1713
1714         * python/service.py: Use the out_signature decoration on methods to
1715         marshal return values, meaning you no longer require dbus.Array()
1716         or dbus.Dictionary() to indicate the type when returning empty
1717         arrays or dictionaries. Fix a bug where exceptions which are defined
1718         in __main__ are not turned into error replies.
1719
1720         * test/python/test-client.py, test/python/test-service.py: Add test
1721         for correct marshalling of return values according to out_signature.
1722         Fix a bug in the async call test where the error_handler is missing a
1723         self argument.
1724
1725 2005-10-29  Robert McQueen  <robot101@debian.org>
1726
1727         * glib/Makefile.am, glib/examples/Makefile.am,
1728         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1729         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1730
1731         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1732
1733         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1734         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1735         the command line.
1736
1737 2005-10-27  Ross Burton  <ross@openedhand.com>
1738
1739         * dbus/dbus-marshal-header.c:
1740         Remove dead code.
1741
1742         * glib/dbus-gobject.c:
1743         Stop compiler warning.
1744
1745 2005-10-25  Ross Burton  <ross@openedhand.com>
1746
1747         * dbus/dbus-auth.c:
1748         * dbus/dbus-server-unix.c:
1749         * dbus/dbus-transport-unix.c:
1750         * glib/dbus-gmain.c:
1751         * glib/dbus-gobject.c:
1752         Add some const keywords.
1753
1754 2005-10-25  Ross Burton  <ross@openedhand.com>
1755
1756         * doc/dbus-specification.xml:
1757         Document the NoReply annotation.
1758
1759         * glib/dbus-binding-tool-glib.h:
1760         * glib/dbus-binding-tool-glib.c:
1761         Respect the NoReply annotation.
1762
1763 2005-10-24  Robert McQueen <robot101@debian.org>
1764
1765         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1766         derive from unicode instead of str, and encode/decode UTF-8 when
1767         marshalling/unmarshalling bus messages
1768
1769         * python/introspect_parser.py: encode introspection data as UTF-8
1770         before passing the buffer into libxml2
1771
1772         * test/python/test-client.py: add unicode test strings
1773
1774         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1775         ignore generated python test files
1776
1777 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1778
1779         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1780         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1781         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1782
1783         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1784         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1785         when constructing struct signatures
1786
1787         * python/_dbus.py (Bus): handle private connections using the
1788         private keyword in the constructor. defaults to private=False
1789         (Bus::close): new method to close a connection to the bus
1790
1791         * python/dbus_bindings.pyx (Connection::close): renamed method
1792         was previously called disconnect
1793         (bus_get): now supports getting a private connection
1794
1795         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1796         keyword is set to True.  if it is, execute the method without waiting
1797         for a reply
1798         (ProxyObject::_introspect_execute_queue): new method for executing
1799         all the pending methods that were waiting for the introspect to
1800         finish.  this is called when introspect either succeeds or fails
1801         (ProxyObject::_introspect_error_handler): call queued methods
1802
1803 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1804
1805         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1806         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1807
1808         * python/service.py (Object::_message_cb): handle exceptions correctly
1809         by sending them over the wire to the calling app.  This makes sure
1810         the client returns immediately instead of waiting the 15 seconds to
1811         timeout.
1812
1813         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1814         Add a test to benchmark how long it takes to introspect a service and 
1815         call a method which returns a large element (pretty fast)
1816
1817         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1818         method which pushes a lot of data
1819
1820 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1821
1822         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1823         reclaim memory outside of the loop and use del istead of just setting
1824         the key to None
1825
1826 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1827
1828         * python/service.py (ObjectType::_reflect_on_signal): Always close
1829         signal tag even when there are no arguments
1830
1831 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         * configure.in: Set mono, mono-docs and Qt3 to default
1834         to no instead of auto when building.  These bindings do not
1835         have full time maintainers and will not be supported for the
1836         1.0 release.
1837
1838 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1839
1840         patches from Michael Krivoruchko <misha at sun.com>: 
1841         
1842         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1843         _dbus_connection_message_sent, 
1844         _dbus_connection_send_preallocated_unlocked_no_update, 
1845         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1846         is NULL when calling _dbus_verbose
1847
1848         * configure.in: check for functions getpeerucred and getpeereid
1849
1850         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1851         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1852         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1853         Patch was only tested on Solaris 10 x86 so it might be issues
1854         with other platforms (i.e. BSDs and MacOSX)
1855         
1856
1857 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1858
1859         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1860         instead of marshal basic so we can handle recursive types in a variant
1861
1862         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1863         in variants
1864
1865         * test/glib/test-service-glib.c, test-service-glib.xml
1866         (my_object_echo_variant [EchoVariant], 
1867         my_object_process_variant_of_array_of_ints123
1868         [ProcessVariantOfArrayOfInts123]): 
1869         Add two test methods
1870
1871         * python/introspect_parser.py: New module for parsing introspect
1872         data.
1873
1874         * python/dbus_bindings.pyx:
1875         (various places): when throwing errors fix to use errormsg instead 
1876         of message local variable because Pyrex can get confused with other 
1877         message variables (initial patch by Robert McQueen 
1878         <robert.mcqueen at collabora.co.uk>)
1879         (MessageIter::parse_signature_block): new method for getting the next
1880         block in a signiture.
1881         (MessageIter::append_strict): new method for appending values strictly
1882         using the passed in signature instead of guessing at the type
1883         (MessageItter:: append_dict, append_struct, append_array): use 
1884         signatures to marshal children if the signature is available
1885         
1886         * python/exceptions.py (IntrospectionParserException): new exception
1887
1888         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1889         introspected signatures if available, else we fall back to the
1890         old way of doing things.
1891         (ProxyObject::_introspect_reply_handler ): parse introspection data
1892         
1893         * python/service.py (ObjectType::_reflect_on_method): Properly
1894         terminate <method> if there are no args in the reflection data
1895
1896         * test/python/test-client.py: add tests for talking with the GLib
1897         test server.  This gives us better coverage for introspection since
1898         python to python will always generate arguments as variants.  It also
1899         allows us to test the robustness of the GLib bindings and interlanguage
1900         communications.
1901
1902         
1903 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1904
1905         * bus/driver.c (bus_driver_handle_introspect): Add signals
1906         to the introspect data. (patch from Daniel P. Berrange 
1907         <dan at berrange.com>)
1908
1909         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1910         
1911         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1912         _dbus_connection_run_builtin_filters): Changed these to
1913         be unlock_no_update functions and call 
1914         _dbus_connection_send_unlocked_no_update instead of
1915         dbus_connection_send to avoid locking errors.
1916         
1917         * doc/TODO: Removed the make Ping test TODO
1918         
1919 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1920
1921         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1922         We now copy the message from a DBusError and then free 
1923         the error object befor throwing the error
1924
1925         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1926         DBusBindingOutputMode enum which was causing a warning.
1927         #include <time.h> so using time_t is explicitly defined
1928
1929 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1932         - dbus/dbus-bus.c
1933         (internal_bus_get): new method that take over the heavy lifting
1934         of dbus_bus_get and adds the ability to get a private connection
1935         to the bus
1936         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1937         interface as in previous versions
1938         (dbus_bus_get_private): new method that is a wrapper to 
1939         internal_bus_get to get a private connection to the bus
1940
1941         - dbus/dbus-bus.h
1942         (dbus_bus_get_private): add as a public libdbus interface
1943
1944         - dbus-1.pc.in: output system_bus_default_address and 
1945         sysconfdir variables so apps can use them when compiling
1946
1947 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1948         * dbus/qt: New Qt bindings
1949
1950 2005-09-12  Waldo Bastian  <bastian@kde.org>
1951
1952         * dbus/dbus-marshal-validate.c,
1953         doc/dbus-specification.xml, test/Makefile.am,
1954         test/test-names.c: allow hyphens in bus names.
1955
1956 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1957
1958         * test/data/auth/fallback.auth-script: we don't
1959         retry the EXTERNAL method when we know its going
1960         to fail anymore.
1961
1962 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1963
1964         * dbus/dbus-connection-internal.h: rename
1965         (add|remove|toggle)_(watch|timeout) to unlocked()
1966         
1967         * dbus/dbus-connection.c: ditto.
1968         
1969         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1970         Update some callers for the renaming.
1971
1972 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1973
1974         * dbus/dbus-auth.c: (record_mechanisms): don't
1975         retry the first auth mechanism because we know
1976         we're just going to get rejected again.
1977         
1978         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1979         Fix thinko ... and what a nasty little bugger to
1980         track down you were ...
1981
1982         * dbus/dbus-connection.c:
1983         (_dbus_connection_add_watch),
1984         (_dbus_connection_remove_watch): add note about
1985         these needing the connection to be locked.
1986         (_dbus_connection_get_dispatch_status_unlocked):
1987         set status to DATA_REMAINS when we queue the
1988         disconnected message.
1989         
1990         * bus/dispatch.c:
1991         (bus_dispatch): fix warning.
1992         (check_existent_service_no_auto_start):
1993         Expect ChildSignaled error too.
1994         (check_existent_hello_from_self): fix another
1995         couple of warnings.
1996         
1997 2005-09-08  Joe Shaw  <joeshaw@novell.com>
1998
1999         Patches from James Willcox <snorp@snorp.net>
2000
2001         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2002
2003         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2004         support array "out" parameters.
2005
2006         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2007         for 16-bit int support.
2008
2009 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2010
2011         * Released 0.50
2012
2013         * Patch from Steve Grubb:
2014         - bus/activation.c (bus_activation_service_reload_test): clean up
2015         some indentation
2016         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2017         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2018         buffer overflows in the test suite.  This is non critical because
2019         it can not be exploited and this code is only run when doing a 
2020         make check.
2021
2022         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2023         - configure.in: Don't check and link against kdecore, only qt headers
2024         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2025         - gcj/org/freedesktop/dbus/Makefile.am:
2026         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2027         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2028         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2029         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2030         - tools/Makefile.am: Add platform extentions to binaries 
2031         (i.e. .exe on windows)
2032
2033         * configure.in: 
2034         - Make it so if no suitable version of python is found we only 
2035         disable building python instead of exiting the configure script
2036         - Require version 2.4 of glib for glib bindings
2037         - Up version to 0.50
2038
2039         * python/__init__.py: Sync version with libdbus to (0,50,0)
2040         
2041 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2042
2043         * dbus/dbus-object-tree.c (find_subtree_recurse):
2044         a couple of optimizations (bug #710):
2045         - do a binary search in the tree
2046         - insert a new child at the right place directly, no need for
2047           qsort anymore
2048         - do the "double alloc" thing when allocating children
2049
2050 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2051
2052         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2053
2054         * python/dbus_bindings.pyx: Memory management foo
2055         (global): remove hacky _user_data_references global list
2056         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2057         tuples. Unref user_data
2058         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2059         (Connection::__del__): Remove and replace with __dealloc__ method
2060         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2061         to keep tuple from being deallocated instead of the global var hack
2062         (Connection::register_object_path): Stuff user_data into a tuple.
2063         Use Py_INCREF to keep tuple from being deallocated instead of the 
2064         global var hack
2065         (Connection::register_fallback): Stuff user_data into a tuple.
2066         Use Py_INCREF to keep tuple from being deallocated instead of the 
2067         global var hack
2068         (GIL_safe_pending_call_notification): Don't unref the message
2069         because it gets unreffed when going out of scope.  Py_XDECREF
2070         the user_data
2071         (PendingCall::__del__): Remove and replace with __dealloc__ method
2072         (PendingCall::set_notify): ref the pending call because we will
2073         need it to stick around for when the notify callback gets called
2074         (Message::__del__): Remove and replace with __dealloc__ method
2075
2076         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2077         gthreads_init to match up with the dbus call
2078
2079         * python/glib.py (init_threads): Changed to threads_init to match
2080         up with gobject.threads_init().  init_threads is kept for backwards
2081         compat but will most likely be deprecated in the future
2082
2083         * test/python/test-client.py: 
2084         - revamp to use Python's unittest functionality
2085         - add async call tests
2086         - setup threads in glib and dbus so we make sure locks are working
2087         
2088 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * python/dbus_bindings.pyx 
2091         (_pending_call_notification, cunregister_function_handler, 
2092         cmessage_function_handler): All callback functions have been rearranged 
2093         to workaround a bug in Pyrex when working with the GIL which is Python's 
2094         global lock when dealing with threads.  They have been split into
2095         a wrapper function (which assumes the name of the old function) and
2096         a _GIL_safe_<function name> function which contains the functionality
2097         of the old function.  This ensures that Pyrex does not write code
2098         the lock is released.
2099         
2100
2101 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2104         GIL global lock when calling back into Python
2105
2106 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2107
2108         * Release 0.36.2
2109
2110         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2111
2112         * bus/policy.c (bus_policy_allow_user): change default "user is
2113         allowed" to be "user has same uid as the bus itself"; any
2114         allow/deny rules will override.
2115
2116         * bus/session.conf.in: don't allow all users, since now by default
2117         the user that ran the bus can connect.
2118
2119 2005-08-26  Colin Walters  <walters@verbum.org>
2120
2121         * tools/dbus-print-message.c (print_message): Flush stdout
2122         after printing a message, so that redirecting to a file, then
2123         hitting Ctrl-C works.
2124
2125 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2128         (EmptyMessage): new class that subclasses Message.  This is a workaround
2129         to a Pyrex bug that fails to call __del__ when the Message object goes out
2130         of scope.  For some reason subclassing Message fixes this bug
2131         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2132         - s/Message(_create=0)/EmptyMessage everywhere else
2133         
2134         * test/python/test-{server|client}.py: add the python/.libs directory
2135         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2136         get picked up from the system
2137
2138 2005-08-25  Colin Walters  <walters@verbum.org>
2139
2140         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2141         to Ryan Lortie for the suggestion.
2142
2143 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2144
2145         * test/python: Add python regression test
2146
2147         * configure.in: Add test/python/Makefile
2148
2149         * test/Makefile.am: Add the python directory to SUBDIRS
2150
2151 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2152
2153         * Release 0.36.1
2154
2155         * python/_dbus.py: 
2156         (Interface::connect_to_signal): propigate keywords for match on args
2157         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2158
2159         * python/proxies.py (ProxyObject::connect_to_signal):
2160         propigate keywords for match on args
2161
2162         * Makefile.am: point everything to pyexecdir since python borks
2163         on multilib
2164
2165 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2166
2167         * Release 0.36
2168
2169 2005-08-23  Colin Walters  <walters@verbum.org>
2170
2171         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2172
2173 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2174
2175         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2176         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2177         of defining DBusConnection ourselves.
2178
2179 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2180
2181         * python/dbus.pth: New path file to fix up problems when installing
2182         c libraries to lib64 and python files to lib.
2183
2184         * python/Makefile.am: install dbus.pth in the correct spot
2185
2186 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2187         * ChangeLog: clean up my last entry a bit
2188
2189         * doc/introspect.xsl: New stylesheet for converting introspection data
2190         into browser renderable xhtml. Contributed by Lennart Poettering.
2191
2192         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2193         Poettering.
2194
2195         * doc/dbus-tutorial.xml: 
2196         - Add Colin Walter to the Authors section for authoring the GLib
2197         section
2198         - Add descriptions of the new signature and type functionality
2199         in the Python complex type mapping section
2200         - Add a sidenote on the new args matching functionality in 
2201         the Python bindings
2202         - Fixed up some of the examples to use the gobject.MainLoop
2203         instead of gtk.main
2204         
2205         * python/_dbus.py:
2206         (Bus::_create_args_dict): New. Converts a hash of arg matches
2207         to a more useable format
2208         (Bus::add_signal_receiver): add a **keywords parameter for catching
2209         arg match parameters
2210         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2211         arg match parameters
2212         
2213         * python/matchrules.py:
2214         (MatchTree::exec_matches): Check for arg matches
2215         (SignalMatchRule::add_args_match): New method
2216         (SignalMatchRule::execute): Added args_list parameter as an optimization
2217         so we don't have to marshal the args more than once
2218         (SignalMatchRule::match_args_from_list): New method that checks to see
2219         if the rule's arg matches match an argument list.  Only arguments
2220         set in the rule are checked.
2221         (SignalMatchRule::match_args_from_rule): New method that checks to see
2222         if the rule's arg matches match another rule's.  All args have to match
2223         in order for this method to return true.  If either rule has more args
2224         then it is not a match.
2225         (SignalMatchRule::is_match): Add args match
2226         (SignalMatchRule::repr): Add args to the final output if they exist
2227
2228 2005-08-17  Ross Burton  <ross@burtonini.com>
2229
2230         * glib/dbus-gproxy.c:
2231         (dbus_g_proxy_call_no_reply): unref the message once sent.
2232         (dbus_g_proxy_call): protect against NULL proxy.
2233
2234 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2235
2236         * python/__init__.py: Version updated (0, 43, 0)
2237         
2238         * python/dbus_bindings.pyx: 
2239         - Fixed type objects to have self passed into __init__
2240         - Added the Variant type
2241         - Add the ability to specify types or signatures for Array, Variant 
2242         and Dictionary
2243         (Connection::send_with_reply_handlers): return a PendingCall object
2244         (_pending_call_notification): handle the case when an error is returned 
2245         without an error message in the body
2246         (MessageIter::get_boolean): return True or False instead of an integer
2247         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2248         and add checks for objects with embeded signatures or types (Array, 
2249         Variant and Dictionary)
2250         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2251         (MessageIter::append_dict): handle embeded types or signatures
2252         (MessageIter::append_array): handle embeded types or signatures
2253         (MessageIter::append_variant): new method
2254         
2255         * python/proxies.py:
2256         (DeferedMethod): New. Dummy executable object used when queuing calls 
2257         blocking on introspection data
2258         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2259         or shorter timeouts for method calls
2260         (ProxyObject): Add first pass at an introspection state machine
2261         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2262         introspection. 
2263         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2264         the usual mechanisms for sending messages.  This is to avoid a deadlock
2265         where the Intospect call would be queued waiting for the Introspect 
2266         call to finish ;-)
2267         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2268         when introspection returns with no error
2269         (ProxyObject::_introspect_error_handler): New.  This method is called 
2270         when introspection encounters an error
2271         (ProxyObject::__getattr__): Code to handle different introspection 
2272         states.  Queue async calls or block blocking calls if we are 
2273         introspecting.  Pass through as normal if we are not or are done with 
2274         introspecting.
2275         
2276         * python/service.py: Import signal and method from decorators.py
2277
2278         * python/types.py: Add Variant type
2279
2280 2005-08-16  Colin Walters  <walters@verbum.org>
2281
2282         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2283         DBusError message is NULL.
2284
2285 2005-08-09  Havoc Pennington  <hp@redhat.com>
2286
2287         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2288         malloc'd copy of the name parameter
2289
2290 2005-08-09  Havoc Pennington  <hp@redhat.com>
2291
2292         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2293         warning if the reply serial is set to 0
2294
2295 2005-08-04  Colin Walters  <walters@verbum.org>
2296
2297         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2298         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2299         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2300         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2301         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2302         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2303         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2304         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2305         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2306         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2307         
2308         Prefix name with _ to ensure they're not exported.  All callers
2309         updated.
2310
2311         * glib/dbus-gvalue.c (typecode_to_gtype)
2312         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2313         (signature_iter_to_g_type_dict)
2314         (signature_iter_to_g_type_array)
2315         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2316         (dbus_gtypes_from_arg_signature):
2317         Move to dbus-gsignature.c.
2318
2319         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2320         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2321         (dbus_binding_tool_output_glib_client): Ditto.
2322
2323         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2324         and dbus-gsignature.h
2325
2326         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2327         unused variable.
2328
2329 2005-08-03  Colin Walters  <walters@verbum.org>
2330
2331         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2332         catch any incompatible changes accidentally made.
2333
2334 2005-08-03  Havoc Pennington  <hp@redhat.com>
2335
2336         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2337         typo, from Julien Puydt
2338
2339         * bus/connection.c (bus_connection_disconnected): we were always
2340         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2341
2342 2005-08-01  Colin Walters  <walters@verbum.org>
2343
2344         Patch from Joe Markus Clarke:   
2345         
2346         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2347         use-after-free.
2348
2349 2005-08-01  Colin Walters  <walters@verbum.org>
2350         
2351         Patch from Joe Markus Clarke:   
2352         
2353         * tools/dbus-send.c (main): 
2354         
2355         Don't use C99 style initializers (bug #3933).
2356         
2357 2005-08-01  Colin Walters  <walters@verbum.org>
2358
2359         Patch from Joe Markus Clarke:   
2360
2361         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2362         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2363         * glib/dbus-gobject.c (write_interface):
2364
2365         Don't use C99 style initializers (bug #3933).
2366
2367 2005-07-31  Havoc Pennington  <hp@redhat.com>
2368
2369         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2370         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2371
2372 2005-07-30  Havoc Pennington  <hp@redhat.com>
2373
2374         * fix a bunch of Doxygen warnings and mistakes
2375
2376 2005-07-30  Havoc Pennington  <hp@redhat.com>
2377
2378         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2379         DBUS_BUILD_TESTS since it's now used in production code
2380
2381 2005-07-29  Havoc Pennington  <hp@redhat.com>
2382
2383         * test/glib/test-profile.c (write_junk): initialize the junk
2384         buffer so valgrind doesn't have a breakdown
2385
2386 2005-07-29  Havoc Pennington  <hp@redhat.com>
2387
2388         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2389         (match_rule_matches): remove unused arg
2390         (test_matching): add tests for match_rule_matches()
2391
2392         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2393         do arg0='foo' arg5='bar' in the match rules
2394         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2395
2396         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2397
2398 2005-07-29  Ross Burton  <ross@openedhand.com>
2399
2400         * dbus/dbus-connection.c:
2401         Don't create a DBusCondVar which is never used.
2402
2403 2005-07-27  Ross Burton  <ross@openedhand.com>
2404
2405         * dbus/dbus-message.c:
2406         Reduce the size of the maximum cached message to 10K.
2407
2408 2005-07-25  Ross Burton  <ross@openedhand.com>
2409
2410         * glib/dbus-gproxy.c:
2411         Remove matches when all proxies are unregistered.
2412
2413 2005-07-24  Colin Walters  <walters@verbum.org>
2414
2415         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2416         typedata; recursive arrays won't have it.
2417
2418         * test/glib/test-dbus-glib.c:
2419         * test/glib/test-service-glib.c:
2420         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2421         
2422 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2423
2424         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2425         proxies.py, service.py: Cleanup of code after running it through the
2426         pyflakes code checker mostly dealing with undefined names.  
2427         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2428
2429 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2430
2431         * NEWS: Update to 0.35.2
2432
2433 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2434
2435         * python/_dbus.py: Remove import of the dbus.services
2436         module as it no longer exists (patch from Dimitur Kirov)
2437
2438         * python/service.py (Object::__init__): Fixed typo
2439         s/name/bus_name (patch from Dimitur Kirov)
2440
2441         * python/examples/example-signal-emitter.py: import dbus.glib
2442         to get the main loop and use glib mainloop instead of gtk so
2443         X doesn't have to be running.
2444
2445         * python/examples/example-signal-recipient.py: import dbus.glib
2446         to get the main loop and use glib mainloop instead of gtk so
2447         X doesn't have to be running. Import the decorators module
2448         directly.
2449
2450         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2451         didn't pick up on but are needed to build
2452
2453         * configure.in: upped version to 0.35.2
2454
2455         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2456         added Colin Walters' SELinux API rename patch from head 
2457         s/unix sercurity context/selinux security context/
2458
2459 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2460
2461         * python/Makefile.am: dbus_binding.pxd.in should be included 
2462         in EXTRA_DIST not dbus_binding.pxd
2463         fix up $(srcdir) hopefully for the last time
2464
2465         * NEWS: Update to 0.35.1
2466
2467 2005-07-16  Colin Walters  <walters@verbum.org>
2468
2469         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2470         from bus_driver_handle_get_connection_unix_security_context.  Update for
2471         error usage.
2472         (message_handlers): Update for renames.
2473
2474         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2475         _dbus_string_init failure correctly.
2476         (bus_selinux_append_context): Convert SID to context.  Append it
2477         as a byte array.
2478         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2479         hasn't been called.
2480
2481         * bus/selinux.h: Update prototype.
2482
2483         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2484         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2485
2486 2005-07-15  Colin Walters  <walters@verbum.org>
2487
2488         * doc/TODO: Add note about convenience wrappers.
2489
2490 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2491
2492         * NEWS: Update to 0.35
2493
2494 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2495
2496         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2497         so distcheck doesn't fail
2498
2499         * glib/examples/Makefile.am: Add example-service.xml and 
2500         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2501
2502         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2503         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2504
2505         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2506         compiler looks in the right places during distcheck
2507
2508 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2509
2510         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2511         to fail
2512
2513 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2514
2515         * python/examples/example-service.py,
2516         python/examples/example-signal-emitter.py: Fixed up examples
2517         for API changes
2518
2519 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * python/__init__.py: Upped to version (0,42,0) because of
2522         the API change
2523
2524 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2525
2526         * ChangeLog: fix date in last entry
2527
2528         * configure.in, bus/system.conf.in: add the ability to configure 
2529         the system bus user at compiletime with the --with-dbus-user flag
2530         (patch from Kristof Vansant)
2531
2532 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2533
2534         * bus/dispatch.c, test/test-service.c: Add testcase
2535         for sending messages to oneself (TODO item).
2536
2537         * python/service.py (class Object): Swap ordering of bus_name 
2538         and object_path parameters to better support inheritance.
2539
2540         * doc/dbus-tutorial.xml: change Python docs to reflect change
2541         in parameter ordering and fix the inheritance section.
2542
2543         * doc/TODO: remove sending message to oneself TODO item
2544
2545 2005-07-15  Ross Burton  <ross@openedhand.com>
2546
2547         * glib/dbus-gproxy.c:
2548         Fix a leak when calling methods via the proxy.
2549
2550 2005-07-15  Colin Walters  <walters@verbum.org>
2551
2552         * bus/selinux.c (bus_selinux_append_context): Wrap in
2553         HAVE_SELINUX.
2554
2555 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2556
2557         * python/_dbus.py (Bus::remove_signal_receiver):
2558         don't add a callback to the match if none has been passed in
2559         
2560         * python/matchrules.py (SignalMatchTree::remove): if the rule
2561         being matched does not have a callback treat it as a wildcard
2562         fix matching logic
2563
2564         * doc/dbus-tutorial.xml: Add Python tutorial
2565
2566 2005-07-14  Colin Walters  <walters@verbum.org>
2567
2568         * bus/driver.c
2569         (bus_driver_handle_get_connection_unix_security_context): New function.
2570         (message_handlers): Add.
2571
2572         * bus/selinux.c (bus_selinux_append_context): New function; appends
2573         security context to message.
2574
2575         * bus/selinux.h: Prototype.
2576
2577         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2578
2579 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2580
2581         * bus/activation.c: clean up all tabs to be 8 spaces 
2582         (bus_activation_activate_service): make sure we clean up
2583         if activation fails
2584
2585         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2586         (check_shell_fail_service_auto_start): New function
2587         tests to make sure we get fail properly when trying to auto start a service
2588         with a faulty command line
2589         (check_shell_service_success_auto_start): New function tests to make sure
2590         auto started services get the arguments on the command line
2591
2592         * test/test-shell-service.c: Added service for testing auto-starting with 
2593         command line arguments
2594
2595         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2596         test/data/valid-service-files/debug-shell-echo-success.service.in:
2597         Added service files for testing auto-starting with command line arguments
2598
2599         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2600
2601 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2602
2603         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2604         
2605         * dbus/Makefile.am: added new files to build.
2606
2607         * bus/activation.c (bus_activation_activate_service): support
2608         activation commands with parameters.
2609
2610         * test/shell-test.c: added test program for the shell parsing
2611         code.
2612
2613 2005-07-13  David Zeuthen  <davidz@redhat.com>
2614
2615         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2616         64 bit signed and unsigned parameters
2617
2618 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2619
2620         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2621
2622         * python/service.py (class Name): renamed BusName to make it clearer
2623         what the object is for (a name on the bus)
2624
2625         * python/examples/example-service.py,
2626         python/examples/example-signal-emitter.py: change the Name object to
2627         BusName
2628
2629 2005-07-12  Colin Walters  <walters@verbum.org>
2630
2631         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2632
2633         * tools/dbus-launch.c: Include sys/select.h.
2634
2635 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2636         * python/dbus_bindings.pyx.in: removed
2637
2638         * python/dbus_bindings.pyx: Added.
2639         - Fixed some memleaks (patch from 
2640         Sean Meiners <sean.meiners@linspireinc.com>)
2641         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2642         own pxd file (Pyrex definition)
2643         - Broke out glib dependancies into its own pyx module
2644         
2645         * python/dbus_bindings.pdx: Added.
2646         - Defines C class Connection for exporting to other modules
2647
2648         * python/dbus_glib_bindings.pyx: Added.
2649         - New module to handle lowlevel dbus-glib mainloop integration
2650
2651         * python/glib.py: Added.
2652         - Registers the glib mainloop when you import this module
2653
2654         * python/services.py: Removed (renamed to service.py)
2655         
2656         * python/service.py: Added.
2657         - (class Server): renamed Name
2658
2659         * python/__init__.py: Bump ro version (0,41,0)
2660         -don't import the decorators or service module
2661         by default.  These now reside in the dbus.service namespace
2662
2663         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2664         setup function on creation 
2665
2666         * python/examples/example-service.py,
2667         python/examples/example-signal-emitter.py: update examples
2668
2669         * python/examples/gconf-proxy-service.py,
2670         python/examples/gconf-proxy-service2.py: TODO fix these up
2671
2672         * doc/TODO: Addition
2673         - Added a Python Bindings 1.0 section
2674         - added "Add match on args or match on details to match rules"
2675
2676
2677 2005-07-12  Colin Walters  <walters@verbum.org>
2678
2679         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2680         (statemachine-glue.h): 
2681         * glib/examples/Makefile.am (example-service-glue.h) 
2682         (example-signal-emitter-glue.h): 
2683         * glib/Makefile.am (dbus-glib-error-switch.h): 
2684         Add libtool --mode=execute so we use the built library instead
2685         of any installed one.
2686
2687 2005-07-11  Colin Walters  <walters@verbum.org>
2688
2689         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2690         (dbus_g_value_types_init): Remove assertion.
2691         (dbus_g_value_get_g_type, dbus_g_value_open)
2692         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2693         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2694         functions related to DBusGValue.  Now we marshal/demarshal
2695         structures as GValueArray.
2696         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2697         structures.
2698         (signature_iter_to_g_type_array): Don't call
2699         signature_iter_to_g_type_struct.
2700         (signature_iter_to_g_type_struct): Delete.
2701         (dbus_gvalue_to_signature): Delete.
2702         (dbus_gvalue_to_signature): New function with same name as other
2703         one; we can convert structures to signatures.
2704         (demarshal_valuearray): New function.
2705         (get_type_demarshaller): Use it.
2706         (demarshal_recurse): Delete.
2707         (marshal_proxy): New function.
2708         (marshal_map): Warn if we can't determine signature from type.
2709         (marshal_collection_ptrarray): Ditto.
2710         (marshal_collection_array): Ditto.
2711         (get_type_marshaller): Use marshal_valuearray.
2712         (marshal_recurse): Delete.
2713         (_dbus_gvalue_test): Add some tests.
2714
2715         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2716         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2717         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2718         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2719         (dbus_g_value_free): Remove prototypes.
2720
2721         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2722         G_TYPE_VALUE_ARRAY.
2723
2724         * glib/examples/example-service.c:
2725         * glib/examples/example-client.c: Implement GetTuple.
2726
2727         * test/glib/test-dbus-glib.c:
2728         * test/glib/test-service-glib.c:
2729         * test/glib/test-service-glib.xml: Add structure tests.
2730
2731 2005-07-10  Colin Walters  <walters@verbum.org>
2732
2733         * doc/TODO: Knock off some GLib items with this patch.
2734
2735         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2736         (_dbus_gvalue_signals_error): New functions.
2737
2738         * glib/dbus-gvalue-utils.h: Prototype them.
2739
2740         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2741         and change to not output const/retval flags for input args.  All
2742         callers updated.
2743         (invoke_object_method): Refactor to handle return values.  Add
2744         some more comments in various places.  Remove debug g_print.
2745
2746         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2747
2748         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2749         Handle G_TYPE_NONE.
2750         (compute_gsignature): New function; refactored from code from
2751         compute_marshaller and compute_marshaller_name.  Enhance to
2752         handle return values and async ops more cleanly.  Update for
2753         async ops returning NONE instead of BOOLEAN.
2754         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2755         and output appropriate string.
2756         (generate_glue): Handle return value annotation.  Also don't dump
2757         constness flag for input arguments.
2758
2759         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2760         files shared between installed library and utilities.
2761         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2762         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2763         binding tool can access gtype utility functions.
2764
2765         * test/glib/test-service-glib.c: 
2766         * test/glib/test-service-glib.xml: 
2767         * test/glib/test-dbus-glib.c: Add some tests for return values.
2768
2769 2005-07-09  Colin Walters  <walters@verbum.org>
2770
2771         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2772         argument if available, not method.
2773
2774         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2775         (invoke_object_method): First, remove some redundant
2776         GValues (object_value, error_value) in favor of working on
2777         array directly.  Second, rework constness to be less buggy.
2778         Now we iterate directly over the argument metadata instead
2779         of parallel iterating over output signature and metadata.
2780
2781         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2782
2783         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2784         annotation on input args.
2785         
2786 2005-07-09  Colin Walters  <walters@verbum.org>
2787
2788         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2789         Define.
2790
2791         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2792         annotation.
2793
2794         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2795         (method_dir_signature_from_object_info): Handle arg_iterate change.
2796         (write_interface): Ditto.
2797         (lookup_object_info): Don't barf if format_version is > 0.
2798         (invoke_object_method): Handle arg constness.
2799
2800         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2801         (arg_info_new): Create.
2802         (arg_info_unref): Destroy.
2803         (arg_info_get_annotations, arg_info_get_annotation) 
2804         (arg_info_add_annotation): New functions.
2805
2806         * glib/dbus-gidl.h: Prototype them.
2807
2808         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2809         args, disallow them in properties.
2810         (parse_annotation): Handle arg annotations.
2811
2812         * test/glib/test-service-glib.xml: 
2813         * test/glib/test-service-glib.c: Update to make some methods
2814         const.
2815
2816 2005-07-08  Colin Walters  <walters@verbum.org>
2817
2818         * test/glib/test-service-glib.xml: 
2819         * test/glib/test-service-glib.c:
2820         * test/glib/test-dbus-glib.c: Test a{sv}.
2821
2822         * glib/examples/statemachine/statemachine.c:
2823         * glib/examples/statemachine/statemachine-server.c:
2824         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2825         add progress bar, etc.
2826
2827         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2828         needed anymore due to generic array/map marshalling.
2829         (dbus_g_value_types_init): Don't register basic arrays or the
2830         string/string hash.
2831         (dbus_gtype_from_signature_iter): Don't try to recurse into
2832         variants.
2833         (dbus_gtype_to_signature): Check collection/map before type
2834         metadata.
2835         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2836         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2837         generic map creation/append functions instead of hash table
2838         specifically.
2839         (get_type_demarshaller): Handle maps.
2840         (demarshal_collection): Dispatch on collection type to either
2841         demarshal_collection_ptrarray or demarshal_collection_array.
2842         (get_type_marshaller): Handle maps.
2843         (marshal_collection): Dispatch collection type to either
2844         marshal_collection_ptrarray or marshal_collection_array.
2845         (_dbus_gvalue_test): New test.
2846
2847         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2848         (hash_free_from_gtype): Use it to free GValues.
2849         (hashtable_append): New function.
2850         (ptrarray_append): Fix prototype.
2851         (slist_append): Ditto.
2852         (_dbus_gvalue_utils_test): Extend tests.
2853
2854         * glib/dbus-gtype-specialized.c
2855         (dbus_g_type_specialized_init_append): Renamed from
2856         dbus_g_type_specialized_collection_init_append.  Remove const from
2857         value, since we steal it.
2858         (dbus_g_type_specialized_map_append): New function.
2859
2860         * glib/dbus-gtype-specialized.h: Update prototypes.
2861         Add DBusGTypeSpecializedMapAppendFunc.
2862
2863         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2864         _dbus_gvalue_test.
2865         
2866         * glib/dbus-gtest.h: Prototype it.
2867
2868 2005-07-08  Ross Burton  <ross@openedhand.com>
2869
2870         * dbus/dbus-glib.h:
2871         Add DBysGAsyncData for the async bindings.
2872
2873         * glib/dbus-binding-tool-glib.c:
2874         Re-enable the async bindings.
2875
2876         * test/glib/test-dbus-glib.c:
2877         Add a test for the generated async bindings.
2878
2879 2005-07-08  Colin Walters  <walters@verbum.org>
2880
2881         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2882         connection concept.
2883         
2884 2005-07-08  Colin Walters  <walters@verbum.org>
2885         
2886         * tools/Makefile.am: Kill of print-introspect in favor of using
2887         dbus-send --print-reply=literal.
2888
2889         * test/glib/test-service-glib.xml: 
2890         * test/glib/test-service-glib.c (my_object_get_objs): New test
2891         for "ao".
2892
2893         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2894         (main): Test GetObjs.
2895
2896         * glib/examples/statemachine/Makefile.am:
2897         * glib/examples/statemachine/sm-marshal.list:
2898         * glib/examples/statemachine/statemachine-client.c:
2899         * glib/examples/statemachine/statemachine-server.c:
2900         * glib/examples/statemachine/statemachine-server.xml:
2901         * glib/examples/statemachine/statemachine.c:
2902         * glib/examples/statemachine/statemachine.h:
2903         * glib/examples/statemachine/statemachine.xml:
2904
2905         New example.
2906
2907         * glib/examples/example-service.c (main): Move invocation
2908         of dbus_g_object_type_install_info earlier, to emphasize it
2909         should only be done once.
2910
2911         * glib/examples/example-signal-emitter.c (main): Ditto.
2912
2913         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2914
2915         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2916         (dbus_gvalue_marshal): Update prototypes.
2917
2918         * glib/dbus-gvalue.c: Update all marshalling functions to take
2919         const GValue instead of GValue.
2920         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2921         types.
2922         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2923         change.
2924         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2925         Return a newly-allocated string.
2926         (demarshal_proxy, demarshal_object_path, demarshal_object)
2927         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2928         we get the wrong types from message.
2929         (get_type_demarshaller): New function, extracted from
2930         dbus_gvalue_demarshal.
2931         (demarshal_collection): New function, demarshals generic
2932         collection.
2933         (dbus_gvalue_demarshal): Just invoke result of
2934         get_type_demarshaller.  Throw error if we don't have one.
2935         (marshal_garray_basic): Abort on OOM.
2936         (get_type_marshaller): New function, extracted from
2937         dbus_gvalue_marshal.
2938         (collection_marshal_iterator, marshal_collection): New functions;
2939         implements generic marshalling for an iteratable specialized
2940         collection.
2941         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2942
2943         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2944         G_TYPE_STRING.
2945         (ptrarray_value_from_gvalue): Ditto.
2946         (ptrarray_append, ptrarray_free): New functions.
2947         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2948         (slist_append, slist_end_append, slist_free): New functions.
2949         (dbus_g_type_specialized_builtins_init): Add append fuctions
2950         for GPtrArray and GSList.  Register GSList.
2951         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2952
2953         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2954         New.
2955         (dbus_g_type_specialized_collection_init_append)
2956         (dbus_g_type_specialized_collection_append)
2957         (dbus_g_type_specialized_collection_end_append): Prototype.
2958         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2959         end_append_func.
2960
2961         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2962         (dbus_g_type_specialized_collection_append) 
2963         (dbus_g_type_specialized_collection_end_append): New functions.
2964         (dbus_g_type_map_value_iterate): Take const GValue.
2965         (dbus_g_type_collection_value_iterate): Ditto.
2966
2967         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2968         _dbus_gvalue_utils_test.
2969         
2970         * glib/dbus-gtest.h: Prototype it.
2971
2972         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2973         using uninitialized owner_list.
2974         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2975         public API.
2976         (dbus_g_proxy_end_call_internal): Update to use error set
2977         from dbus_gvalue_demarshal instead of setting it here.
2978         (dbus_g_proxy_begin_call): Move return_if_fail here.
2979
2980         * glib/dbus-gobject.c (write_interface): Update for
2981         dbus_gtype_to_signature returning new string.
2982
2983         * configure.in: Add glib/examples/statemachine.
2984
2985 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2986
2987         * configure.in: Add a configure option, --with-console-auth-dir
2988         
2989         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2990         new setting.  Patch from Kay Sievers.
2991
2992 2005-07-06  Colin Walters  <walters@verbum.org>
2993
2994         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
2995         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
2996         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
2997         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
2998         Delete in favor of dbus_g_proxy_begin_call and
2999         dbus_g_proxy_cancel_call.
3000         (DBusGProxyCall, DBusGProxyCallNotify): New.
3001         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3002         data, and destroy function.  This replaces
3003         dbus_g_pending_call_set_notify.
3004         (dbus_g_proxy_cancel_call): Prototype.
3005         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3006
3007         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3008         pending_calls map.
3009         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3010         internal proxy for calls to the bus. Remove
3011         pending_nameowner_calls, now the internal proxy keeps track.
3012         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3013         pending_nameowner_calls.
3014         (got_name_owner_cb): Update prototype, and use
3015         dbus_g_proxy_end_call.
3016         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3017         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3018         favor of using internal proxy.
3019         (dbus_g_proxy_manager_unregister): Update to use
3020         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3021         (dbus_g_proxy_init): Initialize pending calls map.
3022         (dbus_g_proxy_constructor): New.
3023         (dbus_g_proxy_class_init): Add get/set property functions,
3024         constructor, and add NAME, PATH, and INTERFACE properties.
3025         (cancel_pending_call): New function.
3026         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3027         cancel them.
3028         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3029         (GPendingNotifyClosure): New structure.
3030         (d_pending_call_notify, d_pending_call_free): Moved here from
3031         dbus-glib.c.
3032         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3033         ordering.
3034         (manager_begin_bus_call): New internal function for talking to
3035         internal bus proxy.
3036         (dbus_g_proxy_new): Construct object using GObjet properties.
3037         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3038         Create closure of same, and insert call into map of pending calls.
3039         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3040         call.  Look up pending call in current set.  Remove it when we've
3041         completed.
3042         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3043         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3044         and destroy function directly.
3045         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3046         (dbus_g_proxy_call): Invoke with NULL callback.
3047         (dbus_g_proxy_cancel_call): New function, replaces
3048         dbus_g_pending_call_cancel.
3049
3050         * glib/dbus-gparser.c (validate_signature): Fix call to
3051         dbus_set_g_error.
3052
3053         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3054         New quark for attaching metadata to GType.
3055         (info_hash): Delete.
3056         (lookup_object_info): Look up using quark.
3057         (dbus_g_object_type_install_info): Check that a type is classed,
3058         not that it's an object.  Also just install type data using quark
3059         instead of using global hash.
3060
3061         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3062         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3063         (GPendingNotifyClosure): Delete.
3064         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3065         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3066
3067         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3068         client method generation until we can fix it...
3069         
3070         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3071         (load_from_service_thread_func): Ditto.
3072
3073         * tools/dbus-names-model.c (struct NamesModel): Hold
3074         DBusGProxyCall.
3075         (have_names_notify): Update prototype, use
3076         dbus_g_proxy_cancel_call.
3077         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3078
3079         * tools/dbus-monitor.c (filter_func): Update for print_message
3080         API change.
3081
3082         * test/glib/test-dbus-glib.c: Add more tests for async
3083         invocations.  Update many begin_call/end_call pairs to just use
3084         dbus_g_proxy_call.
3085
3086         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3087         allows us to dump print-introspect.c.
3088
3089         * tools/dbus-print-message.h (print_message): Add literal argument
3090         to print_message which is intended to allow printing arguments without
3091         metadata like "string=".
3092
3093         * tools/dbus-print-message.c (print_iter): Add literal argument.
3094         (print_message): Allow printing string messages literally.
3095
3096 2005-07-05  Colin Walters  <walters@verbum.org>
3097
3098         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3099         Remove value refcount leak, original patch from Jorn Baayen
3100         <jorn@openedhand.com>.  Also remove useless extra value in favor
3101         of prepending to value array directly.
3102
3103 2005-07-02  Colin Walters  <walters@verbum.org>
3104
3105         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3106
3107 2005-07-01  Colin Walters  <walters@verbum.org>
3108
3109         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3110         
3111         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3112         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3113         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3114         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3115
3116 2005-06-30  Colin Walters  <walters@verbum.org>
3117
3118         * test/glib/test-dbus-glib.c:
3119         * test/glib/test-service-glib.c:
3120         * test/glib/test-service-glib.xml: Update tests for new error
3121         setting bits, also add async tests (patch from Ross Burton).
3122
3123         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3124         DBUS_GLIB_THREADS_LIBS.
3125
3126         * glib/dbus-gproxy.c (get_name_owner)
3127         (dbus_g_pending_call_end_valist): Ditto.
3128
3129         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3130         domain (GQuark) to DBusGErrorInfo.  
3131         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3132         quark in error_metadata.  Take message interface as default
3133         error message interface.
3134         (gerror_to_dbus_error_message): Pass message interface.
3135         (dbus_set_g_error): Resurrected.
3136         (dbus_g_error_info_free): New function.
3137         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3138         of _peek to actually create the object class if it hasn't been
3139         created yet.
3140         (dbus_g_error_domain_register): New function.
3141
3142         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3143
3144         * glib/dbus-gparser.c (validate_signature): Ditto.
3145
3146         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3147         (dbus_g_error_domain_register): Prototype.
3148
3149         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3150         Update tests.
3151
3152 2005-06-29  Colin Walters  <walters@verbum.org>
3153
3154         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3155         DBUS_TYPE_G_OBJECT_PATH.
3156
3157         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3158         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3159         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3160         (dbus_g_object_path_get_g_type): New function.
3161         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3162         to DBUS_TYPE_G_OBJECT_PATH by default.
3163         (demarshal_proxy): Remove unused name variable.
3164         (demarshal_object_path, marshal_object_path): New functions.
3165         (demarshal_proxy_array, marshal_proxy_array): Delete.
3166         
3167         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3168         DBUS_TYPE_G_OBJECT_PATH to char *.
3169         (dbus_g_type_get_lookup_function): Map builtin
3170         DBUS_TYPE_G_OBJECT_PATH.
3171
3172         * test/glib/test-dbus-glib.c
3173         * test/glib/test-service-glib.c (my_object_objpath): 
3174         Adapt tests to new object path marshalling.
3175
3176 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3177
3178         * configure.in: force check for Python >= 2.4
3179
3180 2005-06-29  Colin Walters  <walters@verbum.org>
3181         
3182         Patch from Ross Burton <ross@openedhand.com>
3183         
3184         * glib/dbus-gobject.c (invoke_object_method): Unset object
3185         value in all cases, not only in async case.
3186
3187 2005-06-29  Colin Walters  <walters@verbum.org>
3188
3189         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3190         name_call for keeping track of any outgoing GetNameOwner call.
3191         Also add for_owner and associated.
3192         (struct _DBusGProxyManager): Add owner_names, which is hash table
3193         that maps a base name to a list of names it owns (that we're
3194         interested in).  Add pending_nameowner_calls which is a list of
3195         all outstanding GetNameOwner; avoids us having to iterate over
3196         every proxy.  Add unassociated_proxies which keeps track of name
3197         proxies with no associated name owner.
3198         (dbus_g_proxy_manager_unref): Destroy owner_names.
3199         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3200         name refcounts.
3201         (find_name_in_info, name_owner_foreach)
3202         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3203         (dbus_g_proxy_manager_monitor_name_owner)
3204         (dbus_g_proxy_manager_unmonitor_name_owner)
3205         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3206         New functions; they manipulate the owner_names mapping.
3207         (got_name_owner_cb): New function.
3208         (get_name_owner): New function, extracted from
3209         dbus_g_proxy_new_for_name_owner.
3210         (dbus_g_proxy_manager_register): For now we need to keep track of
3211         all NameOwnerChanged.  Also if the proxy is for a name, if we
3212         don't already know the name owner, queue a new GetNameOwner
3213         request and add it to our list of unassociated proxies.  Otherwise
3214         inc the refcount.
3215         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3216         cancel any pending GetNameOwner call, etc.
3217         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3218         the owner_names mapping to look up the current names for the
3219         signal source, and dispatch to any proxies for that name.
3220         (dbus_g_proxy_new): Initialize new members.
3221         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3222         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3223         (dbus_g_pending_call_end_valist): New function, extracted from
3224         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3225         but want to use the GLib infrastructure.  Also note how many
3226         arguments in reply were over.
3227         (dbus_g_pending_call_end): New function, just call
3228         dbus_g_pending_call_end_valist.
3229         (dbus_g_proxy_end_call_internal): Just call
3230         dbus_g_pending_call_end_valist.
3231
3232         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3233         of builtin marshaller for STRING_STRING_STRING.
3234
3235         * test/glib/test-dbus-glib.c: 
3236         * test/glib/test-service-glib.c:
3237         * test/glib/test-service-glib.xml:
3238         Extend tests to cover name proxies, destruction of owner proxies,
3239         etc.
3240         
3241         * glib/examples/example-signal-recipient.c
3242         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3243         
3244         * tools/dbus-send.c (main): Print D-BUS error name in addition
3245         to message.
3246
3247 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3248
3249         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3250         cmessage_function_handler): Patch from 
3251         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3252         by using the Py_GILState_Ensure/Release to synchronize with the
3253         python runtime.
3254         
3255 2005-06-28  Ray Strode  <rstrode@redhat.com>
3256
3257         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3258         babysitter helper process on last unref, bug #2813.
3259
3260 2005-06-27  Colin Walters  <walters@verbum.org>
3261
3262         * test/glib/test-dbus-glib.c: 
3263         * test/glib/test-service-glib.c:
3264         * test/glib/test-service-glib.xml:
3265         Test hash table signal emitting.
3266
3267         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3268         types to their fundamental basis types, since this is what
3269         marshallers operate on.  Also add an entry for VOID__BOXED.
3270         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3271
3272 2005-06-26  Havoc Pennington  <hp@redhat.com>
3273
3274         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3275         from Don Park
3276
3277 2005-06-26  Colin Walters  <walters@verbum.org>
3278
3279         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3280         (dbus_g_error_set): New public function from its ashes; used by
3281         both service-side method implementation and GLib bindings
3282         internals.
3283         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3284         (_dbus_glib_test): Add some tests.
3285
3286         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3287
3288         * test/glib/test-service-glib.c (my_object_throw_error): Use
3289         dbus_g_error_set.
3290
3291         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3292         errors thrown by dbus_g_error_set.
3293
3294         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3295
3296         * glib/dbus-gparser.c (validate_signature): Ditto.
3297
3298         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3299         (dbus_g_proxy_end_call_internal): Ditto.
3300
3301         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3302         converts DBUS_ERROR_x to DBUS_GERROR_x.
3303         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3304
3305         * doc/TODO: Remove error TODO.
3306
3307         * doc/dbus-tutorial.xml: Update with documentation about error
3308         handling.
3309
3310         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3311         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3312         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3313
3314 2005-06-22  Colin Walters  <walters@verbum.org>
3315         
3316         Patch from Ross Burton <ross@openedhand.com>
3317
3318         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3319
3320 2005-06-20  Colin Walters  <walters@verbum.org>
3321
3322         * configure.in: Add glib/examples.
3323
3324         * glib/Makefile.am: Add examples/
3325
3326         * glib/examples/.cvsignore
3327         * glib/examples/Makefile.am
3328         * glib/examples/example-client.c
3329         * glib/examples/example-service.c
3330         * glib/examples/example-service.xml
3331         * glib/examples/example-signal-emitter.c
3332         * glib/examples/example-signal-emitter.xml
3333         * glib/examples/example-signal-recipient.c:
3334         New files; GLib binding examples, ported from
3335         python/examples.
3336
3337 2005-06-20  Colin Walters  <walters@verbum.org>
3338
3339         * dbus/dbus-glib.h: 
3340         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3341         dbus_g_proxy_call.
3342
3343         * glib/dbus-binding-tool-glib.c: 
3344         * doc/dbus-tutorial.xml: 
3345         * test/glib/test-dbus-glib.c: Update for rename.
3346         
3347 2005-06-20  Colin Walters  <walters@verbum.org>
3348
3349         Patch suggested by Ross Burton <ross@openedhand.com>
3350
3351         * glib/dbus-gobject.c (export_signals): Free signal name.
3352         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3353         memory leak.  Add a bit of documentation.
3354         (dbus_g_method_return_error): Free context, and note we do
3355         so.
3356
3357 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3358
3359         * dbus/dbus-glib.h:
3360         * glib/dbus-gobject.c:
3361         * glib/dbus-gproxy.c:
3362         * glib/dbus-gvalue.c: Predeclare structs as 
3363         typedef struct _Something Something instead of 
3364         typedef struct Something Something, so we can 
3365         redeclare the prototypes. Other GNOME libraries 
3366         do this already.
3367
3368 2005-06-17  Colin Walters  <walters@verbum.org>
3369
3370         * tools/dbus-names-model.c (have_names_notify): Fix call
3371         to dbus_g_proxy_end_call.
3372         
3373 2005-06-17  Colin Walters  <walters@verbum.org>
3374
3375         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3376         spew warnings if we get malformed remote signals.
3377
3378         * glib/dbus-gobject.c (propsig_iterate): New function.
3379         (lookup_object_info): New function, extracted from
3380         lookup_object_and_method.
3381         (introspect_properties, introspect_signals): Delete; these
3382         are merged into write_interface.
3383         (write_interface): Write out signals and properties here;
3384         dump the org.gtk.object stuff and use the interface given
3385         in the introspection data blob.  Also fix up property XML.
3386         (lookup_values): New function.
3387         (introspect_interfaces): Gather a mapping from interface to a
3388         list of its methods, signals, and properties, then write out
3389         each interface.
3390         (lookup_object_and_method): Use lookup_object_info.
3391         (struct DBusGSignalClosure): Add interface.
3392         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3393         we can just use the constant data.
3394         (dbus_g_signal_closure_finalize): Don't free signal name.
3395         (signal_emitter_marshaller): Use interface from signal closure.
3396         (export_signals): Only export signals mentioned in introspection
3397         blob.
3398         (dbus_g_connection_register_g_object): Warn if we have no
3399         introspection data for an object.
3400         (funcsig_equal): Remove unused variable.
3401         (dbus_g_object_register_marshaller): Take varargs instead of
3402         list.
3403         (dbus_g_object_register_marshaller_array): New function,
3404         extracted from old dbus_g_object_register_marshaller.
3405
3406         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3407         signals and property data.
3408         (write_quoted_string): New function, extracted from generate_glue.
3409         (generate_glue): Write signals and properties to introspection
3410         blob.
3411
3412         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3413         exported_signals and exported_properties.
3414         (dbus_g_object_register_marshaller): Update prototype.
3415         (dbus_g_object_register_marshaller_array): Prototype.
3416         
3417         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3418
3419         * test/glib/test-service-glib.c: Add new test signals and method
3420         to emit them.
3421
3422         * test/glib/test-service-glib.xml: Add some test signals.
3423
3424         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3425         and my-object-marshal.h
3426         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3427         my-object-marshal.c.
3428         (my-object-marshal.c, my-object-marshal.h): Implement.
3429
3430         * test/glib/.cvsignore: Update.
3431
3432         * doc/TODO: Remove two GLib TODO items fixed by this
3433         patch.
3434
3435 2005-06-16  Colin Walters  <walters@verbum.org>
3436
3437         * doc/TODO: Update for GLib bindings.
3438         
3439 2005-06-16  Colin Walters  <walters@verbum.org>
3440
3441         * glib/dbus-binding-tool-glib.c:
3442         * glib/dbus-gobject.c:
3443         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3444         from Ross Burton, for his GLib bindings work.
3445
3446 2005-06-16  Colin Walters  <walters@verbum.org>
3447
3448         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3449         to iterate instead of walking to G_TYPE_INVALID.
3450
3451         Patch based on a patch from Ryan Gammon.
3452
3453 2005-06-16  Colin Walters  <walters@verbum.org>
3454
3455         * bus/bus.c (bus_context_new): Set parser to NULL
3456         after we unref it (Patch from Chris Boscolo, #2174).
3457         
3458 2005-06-16  Colin Walters  <walters@verbum.org>
3459
3460         * python/dbus_bindings.pyx.in: Import size_t,
3461         __int64_t, __uint64_t, and __signed.
3462
3463         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3464         Define cmsg struct, output it.
3465         (_dbus_read_credentials_unix_socket):
3466         Use cmsg struct.
3467         
3468         Patch from Joe Markus Clarke for FreeBSD support.
3469         
3470 2005-06-16  Colin Walters  <walters@verbum.org>
3471
3472         * tools/dbus-send.c (append_array): Use strtok.
3473         (append_dict): New function.
3474         (type_from_name): New function, extracted from main.
3475         (main): Handle sending dicts.
3476
3477         * tools/dbus-print-message.c (print_iter): Print dict
3478         entries.
3479         
3480 2005-06-16  Colin Walters  <walters@verbum.org>
3481
3482         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3483         values as the empty string (#2948).
3484         
3485 2005-06-16  Colin Walters  <walters@verbum.org>
3486
3487         * dbus/Makefile.am:
3488         * mono/doc/Makefile.am:
3489         * test/glib/Makefile.am:
3490
3491         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3492
3493 2005-06-16  Colin Walters  <walters@verbum.org>
3494
3495         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3496         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3497
3498         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3499         Increment pointer after swapping fixed array.  Add assertion
3500         for array length.
3501                 
3502 2005-06-15  Colin Walters  <walters@verbum.org>
3503
3504         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3505         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3506         
3507 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3508
3509         * NEWS: Update to 0.34
3510
3511 2005-06-15  David Zeuthen  <davidz@redhat.com>
3512
3513         * configure.in (LT_CURRENT): Revert back to 1 as the library
3514         hasn't changed and we've certainly not committed to protocol
3515         stability yet.  All this does is to break ABI. See commit note
3516         from hp@redhat.com 2005-05-05 for details.
3517         
3518 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3519
3520         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3521         (_dbus_connection_run_builtin_filters): New method
3522         (dbus_connection_dispatch): Run the builtin filters which in turn
3523         runs the peer filter which handles Ping messages.
3524
3525         * doc/TODO: 
3526          - Ping isn't handled: This patch fixes it
3527          
3528          - Add a test case for the Ping message: added TODO item
3529
3530 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3531
3532         * dbus/dbus-message.c:
3533         (dbus_message_has_path): New method
3534         (dbus_message_has_interface): New method
3535         (dbus_message_has_member): New method
3536
3537         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3538         New method
3539
3540         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3541         the keyring directory is private to the user
3542
3543         * doc/TODO:
3544          - The convenience functions in dbus-bus.h should perhaps have
3545          the signatures that they would have if they were autogenerated
3546          stubs. e.g. the acquire service function. We should also evaluate
3547          which of these functions to include, in light of the fact that
3548          GLib/Qt native stubs will probably also exist.: Punted
3549
3550          - add dbus_message_has_path(), maybe has_member/interface:
3551          fixed in this patch
3552
3553          - in dbus-keyring.c, enforce that the keyring dir is not
3554          world readable/writable: Fixed in this patch
3555
3556 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * dbus/dbus-marshal-validate.h: Added a new validation
3559         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3560         out of memory errors when validating signitures
3561
3562         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3563         in places where we previously used DBUS_VALID and a FALSE return 
3564         value to indicate OOM
3565         
3566         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3567         Use a stack to track the number of elements inside containers.  The 
3568         stack values are then used to validate that dict entries have only two
3569         elements within them.
3570         (validate_body_helper): check the reason for failure when validating
3571         varients
3572         
3573         * dbus/dbus-message.c (load_message): use 
3574         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3575         DBUS_VALID and a FALSE return value to indicate OOM
3576
3577         * doc/TODO: remove "- validate dict entry number of fields" as this
3578         patch fixes it
3579
3580 2005-06-14  David Zeuthen  <davidz@redhat.com>
3581
3582         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3583         watches (if applicable) and add new watches
3584
3585         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3586         (main): Setup SIGIO signal handler if using D_NOTIFY
3587
3588         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3589
3590         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3591         (merge_included): Also merge conf_dirs list
3592         (bus_config_parser_unref): Clear conf_dirs list
3593         (include_dir): Add directory to conf_dirs list
3594         (bus_config_parser_get_conf_dirs): New function
3595
3596         * bus/dir-watch.[ch]: New files
3597
3598         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3599
3600         * configure.in: Add checks for D_NOTIFY on Linux
3601
3602 2005-06-14  Colin Walters  <walters@verbum.org>
3603
3604         * glib/dbus-binding-tool-glib.c:
3605         * glib/dbus-gobject.c:
3606         * glib/dbus-gvalue.c: Fix indentation and brace style.
3607         
3608 2005-06-14  Ross Burton <ross@openedhand.com>.
3609
3610         * glib/dbus-glib.h: Make DBusGMethodInvocation
3611         a private structure.  Rearrange prototypes a bit.
3612         
3613         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3614         documentation for first_arg_type.
3615         
3616         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3617         here, add documentation.  Move dbus_g_method_return
3618         and dbus_g_method_return_error into public API
3619         section.
3620
3621 2005-06-14  Colin Walters  <walters@verbum.org>
3622
3623         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3624         Add missing return statements, noticed by Ross Burton.
3625         
3626 2005-06-13  Ross Burton <ross@openedhand.com>.
3627
3628         * glib/dbus-gobject.c: Handle errors on message
3629         demarshalling by sending error message back.
3630         * glib/dbus-gvalue.c: Initialize return variables.
3631
3632 2005-06-13  Colin Walters  <walters@verbum.org>
3633
3634         * glib/Makefile.am: Fix thinko in last patch.
3635
3636 2005-06-13  Colin Walters  <walters@verbum.org>
3637
3638         * glib/Makefile.am: Move dbus-gtype-specialized.c
3639         and dbus-gtype-specialized.h into a _HEADERS variable,
3640         install them.
3641
3642 2005-06-12  Colin Walters  <walters@verbum.org>
3643
3644         Async signals and various bugfixes and testing by
3645         Ross Burton <ross@openedhand.com>.
3646
3647         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3648         (dbus_gvalue_genmarshal_name_from_type)
3649         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3650         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3651         (dbus_g_value_types_init, dbus_gtype_from_signature)
3652         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3653         (dbus_gtypes_from_arg_signature): New function prototypes.
3654         (dbus_gvalue_demarshal): Take context and error arguments.
3655         (dbus_gvalue_demarshal_variant): New function.
3656         (dbus_gvalue_demarshal_message): New function.
3657         (dbus_gvalue_store): Delete.
3658
3659         * glib/dbus-gvalue.c:
3660
3661         File has been almost entirely rewritten; now we special-case
3662         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3663         hash tables correctly, etc.  Full support for recursive values
3664         is not yet complete.
3665
3666         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3667         argument of signal to G_TYPE_POINTER since we now pass a
3668         structure.
3669         (lookup_g_marshaller): Delete in favor of
3670         _dbus_gobject_lookup_marshaller.
3671         (marshal_dbus_message_to_g_marshaller): Use
3672         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3673         to handle remote signal callbacks.
3674         (dbus_g_proxy_new_from_proxy): New function; creates a new
3675         DBusGProxy by copying an existing one.
3676         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3677         (dbus_g_proxy_get_path): New functions.
3678         (dbus_g_proxy_marshal_args_to_message): New function;
3679         factored out of existing code.
3680         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3681         from a varargs array.
3682         (dbus_g_proxy_begin_call_internal): New function.
3683         (dbus_g_proxy_end_call_internal): New function.
3684         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3685         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3686         after collecting args into value array.
3687         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3688         invoke dbus_g_proxy_end_call_internal.
3689         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3690         end_call_internal.
3691         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3692         types.
3693         (array_free_all): New function.
3694         (dbus_g_proxy_add_signal): Take GTypes.
3695
3696         * glib/dbus-gobject.h:
3697         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3698         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3699         Prototype.
3700
3701         * glib/dbus-gobject.c: Add a global marshal_table hash which
3702         stores mappings from type signatures to marshallers.  Change lots
3703         of invocations of dbus_gtype_to_dbus_type to
3704         dbus_gtype_to_signature.
3705         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3706         (introspect_signals): Fix test for query.return_type.
3707         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3708         (invoke_object_method): Many changes.  Handle asynchronous
3709         invocations.  Convert arguments with
3710         dbus_gvalue_demarshal_message.  Handle errors.  Use
3711         DBusSignatureIter instead of strlen on args. Handle all arguments
3712         generically.  Special-case variants.
3713         (dbus_g_method_return, dbus_g_method_return_error): New function.
3714         (DBusGSignalClosure): New structure, closes over signal
3715         information.
3716         (dbus_g_signal_closure_new): New function.
3717         (dbus_g_signal_closure_finalize): New function.
3718         (signal_emitter_marshaller): New function; is special marshaller
3719         which emits signals on bus.
3720         (export_signals): New function; introspects object signals and
3721         connects to them.
3722         (dbus_g_object_type_install_info): Take GType instead of
3723         GObjectClass.
3724         (dbus_g_connection_register_g_object): Invoke export_signals.
3725         (dbus_g_connection_lookup_g_object): New function.
3726         (DBusGFuncSignature) New structure; used for mapping type
3727         signatures to marshallers.
3728         (funcsig_hash): New function; hashes DBusGFuncSignature.
3729         (funcsig_equal): New function; compares DBusGFuncSignature.
3730         (_dbus_gobject_lookup_marshaller): New function.
3731         (dbus_g_object_register_marshaller): New function; used to
3732         register a marshaller at runtime for a particular signature.
3733
3734         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3735
3736         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3737         which notes a server method implementation should be
3738         asynchronous.
3739
3740         * glib/dbus-binding-tool-glib.c
3741         (dbus_binding_tool_output_glib_server): Call
3742         dbus_g_value_types_init.
3743         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3744         variants specially.
3745         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3746         of a lookup function.
3747         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3748         (write_untyped_out_args): New method; write output arguments.
3749         (write_formal_declarations_for_direction): Function for
3750         writing prototypes.
3751         (write_formal_parameters_for_direction): Function for
3752         writing implementations.
3753         (write_typed_args_for_direction): Function for writing
3754         arguments prefixed with GTypes.
3755         (write_async_method_client): Write out async version
3756         of method.
3757
3758         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3759         (dbus_g_type_get_marshal_name): Move mapping from GType
3760         to marshal name into here.
3761         (dbus_g_type_get_c_name): Move into here.
3762         (compute_marshaller): Convert signature to type with
3763         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3764         (compute_marshaller_name): Ditto.
3765         (compute_marshaller): Handle async signal annotations.
3766         (gather_marshallers): Return if we don't have a known
3767         prefix.
3768         (generate_glue): Collect introspection blob here, and
3769         write all of the blob at the end.  This allows an object
3770         with multiple interfaces to work.
3771         Mark async methods in introspection blob.
3772
3773         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3774         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3775         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3776
3777         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3778         avoids people accidentally using DBUS_TYPE_* which should
3779         not be necessary anymore.
3780         Do include dbus-gtype-specialized.h, which are utilities
3781         for GLib container types.
3782         Add various #defines for types such as
3783         DBUS_TYPE_G_BOOLEAN_ARRAY.
3784         (DBusGValueIterator, DBusGValue): Define, not fully used
3785         yet.
3786         (dbus_g_value_get_g_type): Type for recursive value.
3787         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3788         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3789         (dbus_g_value_free): Prototypes.
3790         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3791         (dbus_g_proxy_set_interface): Prototype.
3792         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3793         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3794         types.
3795         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3796         Accessors.
3797         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3798         doing async invocations.
3799         (dbus_g_method_return, dbus_g_method_return_error):
3800         Prototypes.
3801         * doc/dbus-tutorial.xml: Update GLib section.
3802         
3803         * tools/dbus-viewer.c (load_child_nodes): Update
3804         for new invocation type of dbus_g_proxy_end_call.
3805         (load_from_service_thread_func): Ditto.
3806
3807         * tools/print-introspect.c (main): Ditto.
3808
3809         * tools/dbus-names-model.c (have_names_notify)
3810         (names_model_reload, names_model_set_connection)
3811         Use GTypes.
3812
3813         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3814         needed since Python bindings use GLib bindings.
3815
3816         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3817         Add --prefix argument.
3818
3819         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3820         unneeded --ignore-unsupported arg.
3821         
3822         * test/glib/test-service-glib.c: 
3823         * test/glib/test-service-glib.xml:
3824         * test/glib/test-dbus-glib.c: Add many more tests.
3825
3826 2005-06-06  David Zeuthen  <davidz@redhat.com>
3827
3828         * doc/TODO: Add item about need to remove deprecated functions.
3829
3830         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3831
3832         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3833         to repair the ABI which was broken with the last commit.
3834
3835 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3836
3837         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3838         (dbus_connection_disconnect): renamed to dbus_connection_close 
3839         for API symmetry with dbus_connection_open
3840         (_dbus_connection_open_internal): 
3841         s/dbus_connection_disconnect/dbus_connection_close
3842
3843         * dbus/dbus-bus.c (dbus_bus_get):
3844         s/dbus_connection_disconnect/dbus_connection_close
3845
3846         * bus/connection.c (bus_connections_unref, 
3847         bus_connections_setup_connection, bus_connections_expire_incomplete):
3848         s/dbus_connection_disconnect/dbus_connection_close
3849
3850         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3851         kill_client_connection_unchecked, check_hello_connection):
3852         s/dbus_connection_disconnect/dbus_connection_close
3853
3854         * bus/bus.c (new_connection_callback):
3855         s/dbus_connection_disconnect/dbus_connection_close
3856
3857         * tools/dbus-send.c (main):
3858         s/dbus_connection_disconnect/dbus_connection_close
3859
3860         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3861         s/dbus_connection_disconnect/dbus_connection_close
3862         
3863         * test/test-service.c (path_message_func, filter_func):
3864         s/dbus_connection_disconnect/dbus_connection_close
3865         
3866         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3867         
3868 2005-05-25  Colin Walters  <walters@verbum.org>
3869
3870         * dbus/dbus-protocol.h: Move various bus service #defines such
3871           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3872           dbus/dbus-shared.h.
3873         * dbus/dbus-shared.h: Various defines moved here.
3874         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3875
3876 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3877
3878         * python/__init__.py: Python bindings deserve a minor version
3879         update.  Upped to (0, 40, 2)
3880
3881 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3882
3883         * python/decorators.py: add explicitly_pass_message decorator
3884         for passing in the dbus message as keyword for edge case signal
3885         handling
3886
3887         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3888         to conform with what dbus expects for match rules
3889         (SignalMatchRule.execute): add the dbus message as a keyword
3890         if the signal handler has requested it
3891
3892         * python/examples/example/signal-recipient.py: added some more
3893         examples on how to hook up to signals
3894
3895 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3896
3897         * python/decorators.py: import dbus_bindings
3898
3899         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3900         SignalMatchNode): new classes that implement wildcard signal
3901         callback matching using a tree lookup. Heavily modified from a
3902         patch sent by Celso Pinto (fd.o bug #3241)
3903
3904         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3905         use new match classes to handle signals.
3906
3907 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3908         
3909         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3910
3911 2005-05-18  Havoc Pennington  <hp@redhat.com>
3912
3913         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3914         gettext. Not really worth requiring yet perhaps, but any
3915         production quality 1.0 would require it so we should go ahead and
3916         get things set up. We do have a couple token calls to
3917         bindtextdomain in the code already.
3918
3919 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3920
3921         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3922         when using recursive g_main_loops
3923
3924         * python/_dbus.py (class Bus): add the ProxyObjectClass
3925         alias for ProxyObject to make it easier for the Twisted 
3926         networking framework to integrate dbus.
3927
3928         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3929         alias for ProxyMethod to make it easier for the Twisted 
3930         networking framework to integrate dbus. 
3931
3932 2005-05-11  Ross Burton  <ross@openedhand.com>
3933
3934         * glib/dbus-glib-tool.c: Add --prefix argument.
3935         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3936         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3937         Add prefix argument.
3938         (generate_glue): Pass prefix argument down.
3939         (dbus_binding_tool_output_glib_server): Pass prefix to
3940         glib-genmarshal.
3941         
3942 2005-05-11  Colin Walters  <walters@verbum.org>
3943
3944         * tools/dbus-send.c (append_array): New function.
3945         (append_arg): Broken out from main.
3946         (main): Add cheesy hack to send arrays and variants.
3947         (usage): Update.
3948         * tools/dbus-print-message.c (print_iter): Broken out
3949         from main.
3950
3951 2005-05-11  Colin Walters  <walters@verbum.org>
3952
3953         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3954         New function, returns signature string for signature iter.
3955         * dbus/dbus-signature.h: Prototype it.
3956         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3957         New function, returns signature string for message iter.
3958         (dbus_message_iter_get_array_len): New function, returns
3959         length of array.
3960         (dbus_message_iter_get_fixed_array): Fix assertion; this
3961         function should be used when the iter is pointing to the
3962         contents of an array
3963         * dbus/dbus-message.h: Prototypes.
3964         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3965         New function; returns length of an array.
3966         * dbus/dbus-marshal-recursive.h: Prototype it.
3967         
3968 2005-05-11  Colin Walters  <walters@verbum.org>
3969
3970         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3971         compilation error.
3972         
3973 2005-05-08  Havoc Pennington  <hp@redhat.com>
3974
3975         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3976         daemon's pid, not the parent's pid, to the file descriptor.
3977         Reported by Taj Morton.
3978
3979 2005-05-05  Havoc Pennington  <hp@redhat.com>
3980
3981         * configure.in (LT_*): add notes on how the libtool versioning
3982         works to save thinking. Increment soname to indicate protocol
3983         breakage (though really the library interface hasn't changed I
3984         guess)
3985
3986         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3987         verify the GUID received from server matches what we were
3988         expecting, if we had an expectation
3989
3990         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3991         (_dbus_auth_get_guid_from_server): new function
3992         (send_begin): parse the OK args
3993
3994         * doc/dbus-specification.xml: add GUID to the auth protocol
3995
3996 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
3997
3998         * Fix my name in previous changelog ;)
3999
4000         * python/proxies.py (ProxyObject.__getattr__): add further patch
4001         from Anthony Baxter to throw an AttributeError when python 
4002         __special__ functions are called instead of marshling them over 
4003         the bus (Bug#1685 comment 3).
4004
4005 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4006
4007         * python/Makefile.am: changed to use pyexecdir for the binding
4008         shared libraries (Bug#2494)
4009
4010         * python/exceptions.py: bring exceptions over from the bindings
4011         so they can be used in applications (Bug#2036)
4012         Make all exceptions derive from DBusException
4013
4014         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4015         of classes so that print obj doesn't throw an exception (Bug #1685)
4016
4017 2005-05-03  Ross Burton  <ross@openedhand.com>
4018
4019         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4020         Return if we get an error during registration.  Set up a
4021         weak reference on object to unregister if object is destroyed.
4022         (unregister_gobject): New function.
4023         
4024 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4025
4026         * python/dbus_bindings.pyx.in: 
4027         - added new type classes for hinting to the marashaler what type 
4028         to send over the wire
4029         - added int16 and uint16 marshalers
4030         - Fixed a bug in the type constants that caused int32 to go out
4031         as uint16 over the wire
4032         * python/dbus.py: split up into different files and renamed _dbus.py
4033         * python/__init__.py, python/_util.py, python/decorators.py, 
4034         python/exceptions.py, python/proxies.py, python/services.py,
4035         python/types.py: new files split off from dbus.py
4036         * python/Makefile.am: Add new files, remove dbus.py and 
4037         install all python files to <python module dir>/dbus
4038         * python/examples/*: Added #!/usr/bin/env python to the top of
4039         every example.  Patch provided by Tatavarty Kalyan
4040
4041 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4042
4043         * NEWS: Update to 0.33
4044
4045 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4046
4047         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4048         method for doing async calls
4049         (_pending_call_notification): New C function for handling pendning call
4050         callbacks
4051         (set_notify): New method for setting pending call notification
4052         
4053         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4054         Async capabilities added to remote method calls
4055         (Sender): class removed
4056         (RemoteService): class removed
4057         (ObjectTree): class removed for now
4058         (RemoteObject): Renamed to ProxyObject
4059         (RemoteMethod): Renamed to ProxyMethod
4060         (method): Decorator added for decorating python methods as dbus methods
4061         (signal): Decorator added for decorating python methods as signal emitters
4062         (ObjectType): Metaclass added for generating introspection data and the
4063         method callback vtable
4064         (Interface): Wrapper class added to wrap objects in a dbus interface
4065         (Object): Uses ObjectType as its metaclass and exports Introspect
4066         of the org.freedesktop.DBus.Introspectable interface
4067         (ValidationException, UnknownMethodException): new exceptions
4068
4069         * python/examples/*: Modified to fit with the new bindings
4070
4071 2005-04-23  Havoc Pennington  <hp@redhat.com>
4072
4073         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4074         reported by Tony Houghton
4075
4076         * test/test-service.c (main): test
4077         dbus_connection_get_object_path_data()
4078
4079         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4080         the exact_match
4081         (_dbus_object_tree_get_user_data_unlocked): new function used by
4082         dbus_connection_get_object_path_data()
4083         (do_register): add assertion test for get_user_data_unlocked
4084         (object_tree_test_iteration): more tests
4085
4086         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4087         new function from Dan Reed to let you get the user data from 
4088         dbus_connection_register_object_path()
4089
4090 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4091
4092         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4093         in numerous places that did not account for the NULL terminator
4094         (signature_from_seed): changed the manual string copy loop to 
4095         just use strcpy instead
4096         make check should now pass
4097
4098 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4099
4100         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4101         so that it allows messages that are not signals to pass in 
4102         NULL as the interface.
4103
4104 2005-04-18  David Zeuthen  <davidz@redhat.com>
4105
4106         * glib/dbus-gmain.c (io_handler_destroy_source): 
4107         (timeout_handler_destroy_source, connection_setup_free): 
4108         Also unref the source to avoid memory leaks.
4109
4110 2005-04-13  David Zeuthen  <davidz@redhat.com>
4111
4112         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4113         more reasonable, yet still totally arbitrary, value :-). 
4114
4115 2005-04-13  David Zeuthen  <davidz@redhat.com>
4116
4117         * doc/TODO: Added an "important for 1.0" item about selinux
4118         allow/deny messages
4119
4120 2005-04-13  David Zeuthen  <davidz@redhat.com>
4121
4122         * bus/selinux.c: Add c-file-style to top of file
4123         (log_audit_callback): Don't free the data here anymore
4124         (bus_selinux_check): Don't take spid and tpid since appending
4125         that to auxdata may OOM.
4126         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4127         to the caller if we are OOM by taking an error object.
4128         (bus_selinux_allows_send): -do-
4129
4130         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4131         and bus_selinux_allows_send
4132
4133         * bus/bus.c (bus_context_check_security_policy): Pass error and
4134         pass on OOM thrown by bus_selinux_allows_send()
4135
4136         * bus/services.c (bus_registry_acquire_service): Pass error and
4137         pass on OOM thrown by bus_selinux_allows_acquire_service()
4138
4139 2005-04-13  Havoc Pennington  <hp@redhat.com>
4140
4141         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4142         message at a time to avoid monopolizing the main loop, bug 
4143         #2953 from Benjamin Otte
4144
4145 2005-04-09  Havoc Pennington  <hp@redhat.com>
4146
4147         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4148         possible overlap, fix from Daniel Reed
4149         (fixup_alignment): fix signedness warnings
4150         (_dbus_string_append_unichar): ditto
4151
4152 2005-04-09  Havoc Pennington  <hp@redhat.com>
4153
4154         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4155
4156         * glib/dbus-glib-tool.c (main): fix warning
4157
4158         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4159
4160         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4161         add a new function that can be used in simple applications that
4162         don't have a main loop and are willing to block
4163
4164 2005-04-05  David Zeuthen  <davidz@redhat.com>
4165
4166         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4167
4168         * glib/dbus-gmain.c:
4169         (io_handler_destroy_source): Remove from list of IO handlers
4170         of the ConnectionSetup object
4171         (timeout_handler_destroy_source): -do- for timeout handlers
4172         (io_handler_source_finalized): Don't remove from list since
4173         we now do that in io_handler_destroy_source(). Renamed from
4174         io_handler_source_destroyed
4175         (timeout_handler_source_destroyed): -do- for timeout handlers
4176         (connection_setup_free): It is now safe to iterate over all
4177         IO and timeout handlers as the _destroy_source removes them
4178         from the list synchronously
4179
4180 2005-03-30  Havoc Pennington  <hp@redhat.com>
4181
4182         * configure.in: change check to gtk 2.4
4183
4184         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4185         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4186         to 2.4
4187
4188 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4189
4190         * News: Update 0.32
4191
4192         * HACKING: Fixed realease instructions.  configure.in should be updated to
4193           the next release by the person who made the last release.
4194
4195 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4196
4197         * python/lvalue_cast_post_process.py - removed.  Patch has been
4198           submitted to Pyrex maintainers that fixes gcc4.0 errors
4199
4200         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4201
4202 2005-03-24  Daniel Reed  <n@ml.org>
4203
4204         * tools/Makefile.am: Make print-introspect and
4205         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4206
4207 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4208
4209         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4210
4211         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4212           had in Red Hat packages for a while but for some reason never 
4213           got merged upstream
4214           (_dbus_is_a_number): New checks if a string
4215           can be converted to a number and does the conversion if it can
4216           (_dbus_user_database_lookup): Add check to see if the given username
4217           is a udi.  This allows udi's to be used instead of usernames in the
4218           config file.
4219           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4220           is a gdi.  This allows gdi's to be used instead of groupnames in the
4221           config file.
4222
4223 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4224
4225         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4226           code so that it compiles with gcc4.0
4227
4228         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4229           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4230           results back to dbus_binding.c
4231
4232 2005-03-20  Colin Walters  <walters@verbum.org>
4233
4234         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4235
4236         * configure.in: Require GTK+ 2.6.
4237         
4238 2005-03-20  Colin Walters  <walters@verbum.org>
4239
4240         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4241
4242 2005-03-17  Tom Parker  <palfrey@tevp.net>
4243
4244         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4245         print DBUS_UID_UNSET; instead print passed username.  Also
4246         be sure to actually use gid looked up in cache.
4247         
4248         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4249         for DBUS_GID_UNSET and groupname.
4250
4251 2005-03-17  Colin Walters  <walters@verbum.org>
4252
4253         * bus/print-introspect.c: Move to tools/.
4254         * bus/run-with-tmp-session-bus.sh: Ditto.
4255         
4256         * glib/Makefile.am (dbus-glib-bindings.h): Move
4257         generation to tools/Makefile.am.
4258
4259         * test/glib/run-test.sh: Update to handle move
4260         of run-with-tmp-session-bus.sh.
4261
4262         * test/glib/test-service-glib.c: Update to handle
4263         move of dbus-glib-bindings.h.
4264
4265         * tools/print-introspect.c: Moved here
4266         from bus/, and ported to GLib bindings.
4267
4268         * tools/run-with-tmp-session-bus.sh: Moved here
4269         from bus/.
4270
4271         * tools/Makefile.am: Generate dbus-glib-bindings.h
4272         and dbus-bus-introspect.xml here.
4273
4274         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4275         Update.
4276
4277 2005-03-17  Colin Walters  <walters@verbum.org>
4278
4279         * bus/driver.c (write_args_for_direction): Use
4280         _dbus_string_get_const_data to retrieve string;
4281         _dbus_string_get_const_data_len doesn't actually return
4282         a NULL-terminated substring.
4283
4284         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4285         (main): Change to use org_freedesktop_DBus_request_name
4286         instead of using g_proxy_begin_call/end_call.
4287
4288 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4289
4290         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4291         generating the finalizer.  Fixes from Ben Maurer.
4292
4293 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4294
4295         * mono/BusDriver.cs: Update method names: ListServices
4296         becomes ListNames; GetOwner becomes GetNameOwner.
4297
4298         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4299         onto the eval stack when removing the delegate.
4300
4301 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4302
4303         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4304         LT_CURRENT.  Set it to the autoconf variable.
4305                                                                                 
4306         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4307         classes that disconnects the signal handler delegate from the
4308         service object.  Fixes a big leak of proxy objects on the
4309         client side of things.  Patch from Ben Maurer
4310         <bmaurer@ximian.com>
4311
4312 2005-03-12  Colin Walters  <walters@verbum.org>
4313
4314         * bus/driver.c (write_args_for_direction): New function,
4315         parses a type signature into arguments and outputs to
4316         XML.
4317         (bus_driver_handle_introspect): Use it instead of
4318         hardcoding XML for certain signatures.
4319         
4320         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4321         dependency on dbus-daemon.
4322
4323         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4324         argument, pass it to dbus_binding_tool_output_glib_client.
4325
4326         * glib/dbus-binding-tool-glib.c
4327         (generate_client_glue): Protect against multiple inclusion.
4328         (dbus_binding_tool_output_glib_client): Add
4329         G_BEGIN_DECLS/G_END_DECLS.
4330
4331         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4332         Change to just take iface prefix directly.
4333         (write_formal_parameters): Clarify error message.
4334         (check_supported_parameters): New function; checks to see type
4335         signatures of method parameters are supported.
4336         (generate_client_glue): Handle ignore_unsupported flag.
4337         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4338         parameter.
4339
4340         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4341         --ignore-unsupported by default until glib bindings
4342         support arrays.
4343
4344 2005-03-11  Colin Walters  <walters@verbum.org>
4345
4346         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4347         install it.
4348
4349         * bus/print-introspect.c: New file; prints introspection
4350         data for a given name and object path.
4351
4352         * bus/run-with-tmp-session-bus.sh: New file, refactored
4353         from test/glib/run-test.sh.  Creates a temporary session
4354         bus and runs another program.
4355
4356         * test/glib/run-test.sh: Refactor to invoke
4357         run-with-tmp-session-bus.sh.
4358
4359         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4360         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4361         macros instead of hardcoding.
4362
4363         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4364
4365 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4366
4367         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4368         this unref; it doesn't match up evenly in some codepaths.
4369         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4370         this evenly matches with the ref near the top of this function.
4371
4372 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4373
4374         * dbus/dbus-object-tree.c
4375         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4376         and we try to unregister a path that's not registered, still go
4377         through the process of unlocking and don't just return.
4378
4379 2005-03-09  Colin Walters  <walters@verbum.org>
4380
4381         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4382         to this are generated for client-side wrappers.  Invokes a
4383         D-BUS method and returns reply values.  
4384
4385         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4386         function; writes signature string for argument direction.
4387         (write_args_for_direction): Change to pass input values directly
4388         instead of via address, and fix indentation.
4389         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4390         make generated wrappers inlineable.
4391
4392         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4393         note about using dbus_type_is_fixed.
4394
4395         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4396         dbus/dbus-signature.c as dbus_type_is_fixed.
4397
4398         All callers updated.
4399
4400         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4401         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4402
4403         * dbus/dbus-signature.h: Prototype.
4404
4405         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4406         error printf code.
4407
4408         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4409         appropriate instead of just freeing it.
4410         (main): Free returned strings using g_free.
4411
4412         * test/glib/Makefile.am (test-service-glib-glue.h)
4413         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4414
4415         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4416         simply maps a simple D-BUS type to GType.
4417         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4418         GType.
4419         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4420         initialize the value with it.
4421         (dbus_gvalue_binding_type_from_type): Unused, delete.
4422         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4423         various types instead of unmarshalling to value data directly.
4424         Remove can_convert boolean.
4425         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4426         returning directly instead of using can_convert boolean.
4427         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4428         Stores a GValue in a pointer to a value of its corresponding C
4429         type.
4430
4431         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4432         add dbus_gvalue_store.
4433
4434 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4435
4436         Fix a bunch of lifecycle and memory management problems
4437         in the mono bindings.
4438
4439         * mono/Arguments.cs (Arguments): Implement IDisposable
4440
4441         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4442         strictly a static class.
4443
4444         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4445         delegates into this file.
4446         (Connection): Implement IDisposable.
4447         (Dispose): Disconnect the connection and set the raw connection
4448         pointer to IntPtr.Zero.
4449         (~Connection): Call Dispose().
4450         (RegisterObjectPath): Added.  Manages the registration of object
4451         paths so we can cleanly disconnect them at dispose/finalize time.
4452         (UnregisterObjectPath): Ditto.
4453         (set_RawConnection): Unregister all of the object paths when
4454         changing the underlying DBusConnection.  Add them back onto the
4455         new connection, if any.
4456
4457         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4458         more unmanaged resources anymore, so it's not necessary.  Move all
4459         the DBusObjectPathVTable stuff out of here.
4460         (Handler): Save references to our delegates so that they don't get
4461         finalized.  Call Connection.RegisterObjectPath() instead of
4462         dbus_connection_register_object_path() directly.
4463         (Message_Called): Dispose the message after we're finished with
4464         it.
4465
4466         * mono/Message.cs (Message): Implement IDisposable.
4467         (Dispose): Dispose the Arguments, and set the RawMessage to
4468         IntPtr.Zero.
4469         (SendWithReplyAndBlock): We own the ref to the reply that comes
4470         back from dbus_connection_send_with_reply_and_block() so add a
4471         comment about that and unref it after we've constructed a managed
4472         MethodReturn class around it.  Fixes a big, big leak.
4473
4474         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4475         method.
4476         (BuildSignalHandler): After we've sent the Signal message, dispose
4477         of it.
4478         (BuildMethod): Dispose of the method call and reply messages after
4479         we've sent the message and extracted the data we want from the
4480         reply.
4481
4482         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4483         anymore.
4484         (Service_FilterCalled): Dispose of the message after we're
4485         finished with it.
4486
4487 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4488
4489         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4490         After we attach our pending call to the connection, unref
4491         it.  Fixes a leak.
4492  
4493         * mono/Connection.cs (set_RawConnection): Disconnect our
4494         filter and match callbacks from the old connection and
4495         reconnect them to the new connection, if any.
4496
4497         * mono/DBusType/Array.cs: "Code" is a static member, so
4498         don't use "this" to refer to it.  Fix for stricter checking
4499         in Mono 1.1.4.
4500  
4501         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4502         object path that we pass into unmanaged code.
4503  
4504         * mono/DBusType/String.cs (Append): Don't leak the string
4505         that we pass into unmanged code.
4506
4507 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4508         * NEWS: Update for 0.31
4509
4510         * configure.in: Release 0.31
4511         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4512
4513         * qt/Makefile.am: fixed build
4514
4515         * dbus/Makefile.am: soname bump for libdbus
4516
4517         * glib/Makefile.am: soname bump for libdbus-glib
4518
4519 2005-03-05  Havoc Pennington  <hp@redhat.com>
4520
4521         * dbus/dbus-sysdeps.c:
4522         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4523         value
4524         (_dbus_generate_random_bytes_buffer): fix return value
4525
4526         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4527         checks actually work, from Tom Parker <fdo@tevp.net>
4528
4529 2005-03-01  Colin Walters  <walters@verbum.org>
4530
4531         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4532         functions copied from dbus-glib-tool.c.
4533         (main): Convert lots of error code to use them.
4534         Also add some testing for introspection bits.
4535
4536 2005-03-01  Colin Walters  <walters@verbum.org>
4537         
4538         * doc/TODO: Remove introspection signature TODO.
4539
4540 2005-02-27  Colin Walters  <walters@verbum.org>
4541
4542         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4543         Change return value to const char * instead of int so we can do
4544         full signatures.
4545         (struct PropertyInfo, struct ArgInfo): Store char *.
4546         (property_info_new, arg_info_new): Update parameters, strdup.
4547         (property_info_unref, arg_info_unref): Free.
4548
4549         * glib/dbus-gidl.h: Update prototypes.
4550
4551         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4552         (validate_signature): New function, just validates signature and
4553         sets GError.
4554         (parse_property, parse_arg): Invoke validate_signature.  Store
4555         signature instead of just type code.
4556
4557         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4558         function to return a primary type for a signature, dropping
4559         information about types in container types.
4560         (dbus_gvalue_genmarshal_name_from_type)
4561         (dbus_gvalue_binding_type_from_type)
4562         (dbus_gvalue_ctype_from_type): Update to take full signature
4563          instead of type code.
4564         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4565
4566         * glib/dbus-gvalue.h: Update prototypes for above.
4567
4568         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4569         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4570         (introspect_properties, introspect_signals, write_interface):
4571         Update to handle signatures, and remove usage of
4572         _dbus_gutils_type_to_string.
4573         (handle_introspect): Print out type codes instead of e.g. "string"
4574         in hardcoded introspection XML; also use x_AS_STRING constants
4575         instead of hardcoding in string.
4576
4577         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4578         to string.  Remove usage of _dbus_gutils_type_to_string.
4579
4580         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4581
4582         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4583         deletion.
4584         
4585         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4586         (compute_marshaller_name, generate_glue): Handle signature change
4587         to string.
4588         (write_formal_parameters, write_args_for_direction): Ditto, and
4589         remove FIXME.
4590
4591         * tools/dbus-tree-view.c (type_to_string): Delete.
4592         (info_set_func_text): Update to print full signatures.
4593
4594         * test/glib/test-service-glib.xml: Change types to new
4595         introspection format.
4596
4597 2005-02-26  Havoc Pennington  <hp@redhat.com>
4598
4599         * doc/TODO: remove the "guid" item
4600
4601         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4602         (with_bus_thread_func): use open_private
4603
4604         * dbus/dbus-connection.c (dbus_connection_open_private): new
4605         function that works like the old dbus_connection_open()
4606         (dbus_connection_open): now returns an existing connection if
4607         possible
4608
4609         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4610         through the GUID to the transport
4611
4612         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4613         GUID in hex-encoded form.
4614
4615         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4616         pass GUID argument in to the transport
4617
4618         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4619         guid argument
4620
4621         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4622
4623         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4624
4625 2005-02-25  Havoc Pennington  <hp@redhat.com>
4626
4627         * doc/dbus-specification.xml: document the GUID thing
4628
4629         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4630         globally unique ID for the server, and put a "guid=hexencoded"
4631         field in the address
4632
4633         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4634
4635         * dbus/dbus-message.c: ditto
4636
4637         * dbus/dbus-dataslot.c: ditto
4638
4639         * dbus/dbus-list.c: ditto
4640
4641         * dbus/dbus-internals.h: wait, just include
4642         dbus-threads-internal.h here
4643         
4644         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4645         use in main library
4646
4647         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4648
4649 2005-02-24  Colin Walters  <walters@verbum.org>
4650
4651         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4652
4653 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4654
4655         * glib/Makefile.am: added dbus-gobject.h to sources list
4656         so distcheck doesn't fail
4657         
4658 2005-02-24  Havoc Pennington  <hp@redhat.com>
4659
4660         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4661         you must disconnect before unref, since locking and other things
4662         are screwed up otherwise. Fix assorted other locking stuff.
4663
4664         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4665         fix compilation
4666
4667         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4668         into a private header and don't export from the library
4669
4670         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4671
4672 2005-02-24  Colin Walters  <walters@verbum.org>
4673         
4674         * dbus/dbus-signature.c: New file; implements various functions
4675         related to type signatures.  Includes an interator for parsing,
4676         validation functions.
4677         (dbus_type_is_basic): Moved here from
4678         dbus-marshal-basic.c:_dbus_type_is_basic.
4679         (dbus_type_is_container): Moved here from
4680         dbus-marshal-basic.c:_dbus_type_is_container.
4681
4682         All callers of _dbus_type_is_container and _dbus_type_is_basic
4683         updated, and include dbus-signature.h.
4684
4685         * dbus/dbus-signature.h: New file; prototypes for the above.
4686
4687         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4688         dbus-signature.h.
4689
4690         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4691         function factored out of _dbus_first_type_in_signature.
4692         (_dbus_first_type_in_signature_c_str): New function; returns first
4693         type code for a type signature character.
4694
4695         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4696         handle function moves.
4697
4698         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4699
4700         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4701         function; skips to next complete type in type signature.
4702         Implemented using previous skip_one_complete_type.  Now
4703         skip_one_complete_type just delegates to
4704         _dbus_type_signature_next.
4705
4706         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4707         to dbus-signature.c
4708         (_dbus_type_is_container): Ditto.
4709
4710         * doc/dbus-specification.xml: Update introspection sample to
4711         use real type signatures.
4712
4713         * dbus/dbus-test.h: Prototype signature test.
4714
4715         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4716         signature tests.
4717
4718         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4719
4720 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4721
4722         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4723         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4724
4725 2005-02-21  Colin Walters  <walters@verbum.org>
4726
4727         * dbus/dbus-test-main.c (main): Take optional specific test
4728         argument.
4729
4730         * dbus/dbus-test.c (run_test): New function, runs a test function
4731         with no data directory.
4732         (run_data_test): Like above, but takes data directory.
4733         (dbus_internal_do_not_use_run_tests): Take
4734         specific test argument.  Replace lots of cut n' paste code
4735         with run_test and run_data_test.
4736
4737         * dbus/dbus-test.h: Update prototype for
4738         dbus_internal_do_not_use_run_tests.
4739
4740 2005-02-20  Havoc Pennington  <hp@redhat.com>
4741
4742         Fix bugs reported by Daniel P. Berrange
4743         
4744         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4745         (protected_change_watch): new function
4746         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4747         (_dbus_server_add_watch): change to work like the
4748         dbus-connection.c equivalents; like those, probably kind of
4749         busted, but should at least mostly work for now
4750         (dbus_server_disconnect): drop the lock if we were already
4751         disconnected, patch from Daniel P. Berrange
4752
4753         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4754         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4755         same stuff
4756
4757         * doc/TODO: todo about unscrewing this mess
4758
4759 2005-02-19  Colin Walters  <walters@verbum.org>
4760
4761         * glib/dbus-binding-tool-glib.c
4762         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4763
4764         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4765         as errno.h and sys/stat.h.
4766         (lose): New function, prints error with
4767         newline and exits.
4768         (lose_gerror): Similar, but takes GError for message.
4769         (main): Add --output argument to specify output file to write to,
4770         instead of always printing to stdout.  In this mode, determine
4771         timestamps on source files to see whether any are newer than the
4772         target file.  If not, exit.  Also convert a number of error
4773         messages to use lose (since it's shorter), and switch to using
4774         g_io_channel_shutdown.
4775
4776 2005-02-19  Havoc Pennington  <hp@redhat.com>
4777
4778         * glib/dbus-gobject.c
4779         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4780
4781         * glib/dbus-glib.c: fix doxygen warnings
4782
4783         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4784         is found on an <arg>
4785
4786 2005-02-17  Colin Walters  <walters@verbum.org>
4787
4788         * glib/dbus-gobject.h: Don't export
4789         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4790         
4791         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4792         (invoke_object_method): Handle it.
4793
4794         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4795         Handle rename.
4796         
4797 2005-02-17  Colin Walters  <walters@verbum.org>
4798
4799         * bus/.cvsignore, doc/.cvsignore
4800         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4801         Update.
4802
4803 2005-02-17  Colin Walters  <walters@verbum.org>
4804         
4805         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4806         Rename to DBUS_SERVICE_DBUS.
4807         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4808         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4809         Change the value from "org.freedesktop.Local"
4810         to "org.freedesktop.DBus.Local".
4811         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4812         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4813         DBUS_INTERFACE_INTROSPECTABLE.
4814         Change the value from "org.freedesktop.Introspectable"
4815         to "org.freedesktop.DBus.Introspectable".
4816         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4817         DBUS_INTERFACE_PROPERTIES.
4818         Change the value from "org.freedesktop.Properties"
4819         to "org.freedesktop.DBus.Properties".
4820         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4821         DBUS_INTERFACE_PEER.
4822         Change the value from "org.freedesktop.Peer"
4823         to "org.freedesktop.DBus.Peer".
4824         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4825         DBUS_INTERFACE_LOCAL.
4826         Change the value from "org.freedesktop.Local"
4827         to "org.freedesktop.DBus.Local".
4828
4829         All other users of those constants have been changed.
4830
4831         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4832
4833         * glib/dbus-gobject.c (handle_introspect): Use constants.
4834
4835         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4836
4837 2005-02-17  Colin Walters  <walters@verbum.org>
4838
4839         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4840         (parse_node, parse_interface, parse_method, parse_signal)
4841         (parse_property, parse_annotation): Lose if we're currently in an
4842         annotation.
4843         (parse_annotation): New function.
4844         (parser_start_element, parser_end_element): Handle annotation.
4845         (parse_method, parse_interface): Remove support for c_name attribute,
4846         switch to annotations.
4847
4848         * glib/dbus-gidl.h (interface_info_get_binding_names)
4849         (method_info_get_binding_names)
4850         (interface_info_get_binding_name, method_info_get_binding_name)
4851         (interface_info_set_binding_name, method_info_set_binding_name):
4852         Remove.
4853         (interface_info_get_annotations, method_info_get_annotations)
4854         (interface_info_get_annotation, method_info_get_annotation)
4855         (interface_info_add_annotation, method_info_add_annotation):
4856         Prototype.
4857
4858         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4859         for "bindings".
4860         (struct MethodInfo): Ditto.
4861         Straightfoward conversion of binding methods into annotation methods
4862         as prototyped.
4863
4864         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4865
4866         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4867
4868         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4869         Use new annotation API.
4870
4871         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4872         annotation element.
4873         
4874         * doc/dbus-specification.xml: Discuss introspection annotations,
4875         include list of well-known annotations.
4876
4877         * test/glib/test-service-glib.xml: Make validate against new DTD.
4878
4879 2005-02-17  Colin Walters  <walters@verbum.org>
4880
4881         This patch is based on initial work from
4882         Paul Kuliniewicz <kuliniew@purdue.edu>.
4883
4884         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4885         initialization of GValue from dbus type to here.
4886         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4887         for the "glib-genmarshal" program from a DBus type.
4888         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4889         into the C name for it we use in the glib bindings.
4890         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4891         glib C type (not GValue).
4892         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4893
4894         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4895         from dbus-gobject.c.
4896
4897         * glib/dbus-gutils.h: Prototype it.
4898
4899         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4900         (marshal_dbus_message_to_g_marshaller): Use new shared function
4901         dbus_glib_marshal_dbus_message_to_gvalue_array.
4902
4903         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4904         Will be changed once we have annotations.
4905
4906         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4907         GStaticRWLock.  Callers updated.
4908         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4909         (string_table_next): New function for iterating over zero-terminated
4910         string value array.
4911         (string_table_lookup): New function; retrieves specific entry in
4912         array.
4913         (get_method_data): New function; look up method data in object data chunk.
4914         (object_error_domain_prefix_from_object_info)
4915         (object_error_code_from_object_info): New functions, but not implemented yet.
4916         (method_interface_from_object_info): New function; retrieve interface name.
4917         (method_name_from_object_info): New function; retrieve method name.
4918         (method_arg_info_from_object_info): New function; retrieve argument data.
4919         (arg_iterate): New function; iterates over serialized argument data.
4920         (method_dir_signature_from_object_info): New function; returns a
4921         GString holding type signature for arguments for just one
4922         direction (input or output).
4923         (method_input_signature_from_object_info)
4924         (method_output_signature_from_object_info): New functions.
4925         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4926         converts dbus message arguments into a GValue array.  Used for both
4927         signal handling and method invocation.
4928         (struct DBusGlibWriteIterfaceData): New utility structure.
4929         (write_interface): New function; generate introspection XML for
4930         an interface.
4931         (introspect_interfaces): New function; gathers all interface->methods,
4932         generates introspection XML for them.
4933         (handle_introspect): Invoke introspect_interfaces.
4934         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4935         (lookup_object_and_method): New function; examines an incoming message
4936         and attempts to match it up (via interface, method name, and argument
4937         signature) with a known object and method.
4938         (gerror_domaincode_to_dbus_error_name): New function; converts a
4939         GError domain and code into a DBus error name.  Needs GError data
4940         added to object introspection to work well.
4941         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4942         GError.
4943         (invoke_object_method): New function to invoke an object method
4944         looked up via lookup_object_and_method.  Parses the incoming
4945         message, turns it into a GValue array, then invokes the marshaller
4946         specified in the DBusGMethodInfo.  Creates a new message with
4947         either return values or error message as appropriate.
4948         (gobject_message_function): Invoke lookup_object_and_method and
4949         invoke_object_method.
4950
4951         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4952         (enum DBusBindingOutputMode): New enum for binding output modes.
4953         (pretty_print): Print binding names.
4954         (dbus_binding_tool_error_quark): GError bits.
4955         (version): Fix typo.
4956         (main): Create GIOChannel for output.  Parse new --mode argument,
4957         possible values are "pretty-print", "glib-server", "glib-client".
4958         Use mode to invoke appropriate function.
4959         
4960         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4961
4962         * glib/dbus-glib-tool.h: New header, just includes GError bits
4963         for now.
4964
4965         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4966         maps binding style to name.
4967         (struct MethodInfo): Ditto.
4968         (get_hash_keys, get_hash_key): Utility function, returns keys for
4969         a GHashTable.
4970         (interface_info_new, method_info_new): Initialize bindings.
4971         (interface_info_unref, method_info_unref): Destroy bindings.
4972         (method_info_get_binding_names, method_info_get_binding_name)
4973         (interface_info_get_binding_names, interface_info_get_binding_name):
4974         Functions for retrieving binding names.
4975         (method_info_set_binding_name, interface_info_set_binding_name):
4976         Functions for setting binding names.
4977
4978         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4979         for glib binding generation.
4980
4981         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4982         and client-side glib glue generation.
4983
4984         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4985         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4986         dbus-glib-tool.h.
4987
4988         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4989         of using GClosureMarshal directly.
4990         (struct DBusGObjectInfo): Add n_infos member.
4991
4992         * test/glib/test-service-glib.xml: New file; contains introspection data
4993         for MyTestObject used in test-service-glib.c.
4994
4995         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
4996         (my_object_do_nothing, my_object_increment, my_object_throw_error)
4997         (my_object_uppercase, my_object_many_args): New test methods.
4998         (main): Use dbus_g_object_class_install_info to include generated object
4999         info.
5000
5001         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5002         as well as client-side bindings.
5003
5004         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5005         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5006         using both the dbus_gproxy stuff directly as well as the generated bindings.
5007
5008 2005-02-15  Havoc Pennington  <hp@redhat.com>
5009
5010         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5011         complete a pending call, don't run filters first.
5012
5013         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5014         dbus_pending_call_steal_reply
5015
5016         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5017         _dbus_connection_block_pending_call
5018         (dbus_pending_call_get_reply): change to steal_reply and return a
5019         ref
5020
5021         * dbus/dbus-connection.c
5022         (dbus_connection_send_with_reply_and_block): port to work in terms
5023         of DBusPendingCall
5024         (_dbus_connection_block_pending_call): replace block_for_reply
5025         with this
5026
5027 2005-02-14  Havoc Pennington  <hp@redhat.com>
5028
5029         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5030         properly handle looking up group information by name; fix 
5031         from j@bootlab.org
5032
5033 2005-02-13  Havoc Pennington  <hp@redhat.com>
5034
5035         * dbus/dbus-connection.c (dbus_connection_return_message) 
5036         (dbus_connection_borrow_message): hold dispatch lock while message
5037         is outstanding
5038         (_dbus_connection_block_for_reply): hold dispatch lock while we
5039         block for the reply, so nobody steals our reply
5040         (dbus_connection_pop_message): hold the dispatch lock while we
5041         pluck the message
5042
5043 2005-02-13  Havoc Pennington  <hp@redhat.com>
5044
5045         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5046         (_dbus_connection_release_dispatch)
5047         (_dbus_connection_acquire_io_path)
5048         (_dbus_connection_release_io_path): make the mutex and condvar
5049         control access to the "acquired" flag. Drop the connection lock
5050         while waiting on the condvar. Hopefully these are baby steps in
5051         roughly the right direction.
5052
5053 2005-02-13  Havoc Pennington  <hp@redhat.com>
5054
5055         * dbus/dbus-connection.c: use separate mutexes for the condition
5056         variables; this is some kind of baseline for sanity, but the
5057         condition variables still aren't used correctly afaict
5058
5059 2005-02-13  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5062         fix a double-unlock
5063
5064         * dbus/dbus-connection.c
5065         (_dbus_connection_detach_pending_call_unlocked): add this
5066
5067         Initial semi-correct pass through to fix thread locking; there are
5068         still some issues with the condition variable paths I'm pretty
5069         sure
5070         
5071         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5072         lock/unlock calls
5073
5074         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5075         rename to add _unlocked
5076         (struct DBusConnection): move "dispatch_acquired" and
5077         "io_path_acquired" to use only one bit each.
5078         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5079         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5080         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5081         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5082         (_dbus_connection_remove_timeout) 
5083         (_dbus_connection_toggle_timeout): drop lock when calling out to
5084         user functions; done in a hacky/bad way.
5085         (_dbus_connection_send_and_unlock): add a missing unlock
5086         (_dbus_connection_block_for_reply): add a missing unlock
5087
5088         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5089         drop lock in a hacky probably unsafe way to call out to user
5090         function
5091
5092 2005-02-12  Havoc Pennington  <hp@redhat.com>
5093
5094         * tools/dbus-tree-view.c (info_set_func_text): display more
5095         details on args
5096
5097         * bus/driver.c (bus_driver_handle_list_services): list the bus
5098         driver
5099
5100         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5101
5102         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5103         (method_info_get_n_args): new function
5104
5105 2005-02-12  Havoc Pennington  <hp@redhat.com>
5106
5107         * bus/driver.c (bus_driver_handle_introspect): add introspection
5108         for bus driver
5109
5110 2005-02-12  Havoc Pennington  <hp@redhat.com>
5111
5112         * bus/driver.c: put the signature of each bus driver method in the
5113         table of handlers and check it on incoming calls; this isn't
5114         really useful, but going to add introspect support in a minute.
5115
5116 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5117
5118         * mono/Connection.cs: The unpredictability of finalizers in mono
5119         prevents us from deterministically disconnecting the filters from
5120         the Service class's finalizer, so move tracking of filters and
5121         matches here.  Add API for that.
5122
5123         * mono/Service.cs: Remove the code, add code which calls the
5124         methods now on the Connection class.
5125
5126 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5127
5128         * python/dbus.py (class Sender): added to support dbus signals better
5129         (Bus::add_signal_receiver): added expand_args parameter which defaults
5130         to True.  When expand args is True the signal handler will pass the 
5131         message arguments as parameters to the signal handler.  If False
5132         revert to previous behavior where the signal handler must get the
5133         argument list from the message.  This is to help port applications
5134         like HAL that have a tendancy to send variable length argument lists.
5135         self._match_rule_to_receivers is now a dict of dicts.
5136         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5137         removing it from a list
5138         (Bus::_signal_func): change signal handlers so that interface,
5139         signal_name, service, path and message are packed into a Sender
5140         object and that is passed to the handler.  If expand_args is True
5141         extract the args list from the message and append it to the parameter
5142         list
5143         
5144         * python/dbus_bindings.pyx.in (class Signature): added to support 
5145         signiature types
5146         (MessageIter::__init__): changed iteration limit to match D-BUS
5147         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5148         STRUCT and VARIENT type support
5149         (MessageIter::python_value_to_dbus_sig): made recursive to support
5150         recursive types
5151         (MessageIter::append*): added Signature, dict, tuple 
5152         support
5153
5154         * python/examples/example-client.py: added examples of getting tuples
5155         and dicts
5156
5157         * python/examples/example-service.py: added examples of sending tuples
5158         and dicts
5159
5160         * python/examples/example-signal-recipient.py: Fixed to handle new
5161         signal callback format
5162
5163 2005-02-10  Havoc Pennington  <hp@redhat.com>
5164
5165         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5166         (call dbus_g_proxy_add_signal)
5167
5168         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5169         escape the hostname
5170         (_dbus_server_new_for_domain_socket): escape the path
5171
5172         * dbus/dbus-address.c (dbus_address_escape_value): new
5173         (dbus_address_unescape_value): new
5174         (dbus_parse_address): unescape values
5175
5176         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5177
5178         * doc/dbus-specification.xml: explain how to escape values in
5179         addresses
5180
5181 2005-02-10  Havoc Pennington  <hp@redhat.com>
5182
5183         * dbus/dbus-message-factory.c (generate_special): modify test to
5184         avoid using a non-basic dict key
5185
5186         * dbus/dbus-marshal-validate-util.c: add test for the below
5187
5188         * doc/dbus-specification.xml: require that dict keys are a basic
5189         type
5190
5191         * dbus/dbus-marshal-validate.c
5192         (_dbus_validate_signature_with_reason): require that dict key is a
5193         basic type
5194
5195 2005-02-10  Havoc Pennington  <hp@redhat.com>
5196
5197         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5198         change to be _and_unlock instead of _unlocked
5199
5200         * dbus/dbus-connection.c
5201         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5202         have no_update so we can find this bug quickly in future
5203
5204 2005-02-10  Havoc Pennington  <hp@redhat.com>
5205
5206         * dbus/dbus-message-util.c (verify_test_message): tests for string
5207         array
5208
5209         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5210         support for arrays of string/signature/path
5211
5212 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5213
5214         * dbus/dbus-connection.c
5215         (_dbus_connection_queue_received_message_link,
5216         _dbus_connection_message_sent): Add the path to
5217         the verbose output.
5218         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5219         _dbus_connection_send_preallocated_unlocked(), updated the
5220         dispatch status, and unlocks.  Fixes a bug where certain
5221         situations (like a broken pipe) could cause a Disconnect message
5222         to not be sent, tricking the bus into thinking a service was still
5223         there when the process had quit.
5224         (_dbus_connection_send_preallocated): Call
5225         _dbus_connection_send_preallocated_and_unlock().
5226         (_dbus_connection_send_and_unlock): Added.  Calls
5227         _dbus_connection_send_preallocated_and_unlock().
5228         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5229         (dbus_connection_send_with_reply): Update the dispatch status and
5230         unlock.
5231
5232         * mono/Service.cs (~Service): Added.  Removes the filter so that
5233         we don't get unmanaged code calling back into a GCed delegate.
5234         (RemoveFilter); Added.
5235
5236 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5237
5238         * dbus/dbus-message.c (dbus_message_iter_open_container):
5239         - Removed check for iterator type being an array because
5240         get_arg_type does not work with writer iterators
5241         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5242
5243 2005-02-07  Havoc Pennington  <hp@redhat.com>
5244
5245         * doc/dbus-specification.xml: some more language cleanups; add
5246         stuff about how to deal with invalid protocol and extension
5247         points; add _ to allowed chars in auth commands; add EXTENSION_
5248         auth command prefix
5249
5250 2005-02-06  Havoc Pennington  <hp@redhat.com>
5251
5252         * s/expected/required/ in a couple places for clarity
5253
5254 2005-02-07  Colin Walters  <walters@verbum.org>
5255
5256         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5257         sender or proposed_recipient.
5258
5259 2005-02-06  Havoc Pennington  <hp@redhat.com>
5260
5261         * dbus/dbus-message-factory.c (generate_special): more tests
5262
5263         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5264         array length that exceeds the maximum
5265
5266 2005-02-05  Havoc Pennington  <hp@redhat.com>
5267
5268         * dbus/dbus-message-factory.c (generate_special): more test cases,
5269         increasing coverage
5270
5271         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5272         reason why a signature was invalid
5273
5274         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5275         skip the length of the string before we look at it in validation
5276
5277         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5278         equal_substring
5279
5280         * dbus/dbus-message.c (_dbus_message_loader_new): default
5281         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5282
5283 2005-02-05  Havoc Pennington  <hp@redhat.com>
5284
5285         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5286         if the signature of a variant was empty
5287         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5288         struct with no element type)
5289
5290         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5291         mangled messages to break things
5292
5293 2005-02-04  Havoc Pennington  <hp@redhat.com>
5294
5295         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5296         g_quark_try_string() so it actually can return 0
5297         (dbus_g_proxy_connect_signal): ditto
5298
5299 2005-02-04  Havoc Pennington  <hp@redhat.com>
5300
5301         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5302         bogus warning
5303         (tristring_from_message): assert cleanly on null path/interface
5304         (should not be possible though I decided later)
5305         (dbus_g_proxy_dispose): move proxy manager unregistration here
5306         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5307         g_return_if_fail() checks
5308
5309 2005-02-04  Havoc Pennington  <hp@redhat.com>
5310
5311         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5312
5313         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5314         (with some minor changes)
5315
5316         * doc/dbus-specification.xml: add deprecated attribute to
5317         introspection format
5318
5319 2005-01-31  Havoc Pennington  <hp@redhat.com>
5320
5321         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5322         think it's sort of right
5323
5324 2005-01-30  Havoc Pennington  <hp@redhat.com>
5325
5326         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5327
5328 2005-01-30  Havoc Pennington  <hp@redhat.com>
5329
5330         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5331
5332         * autogen.sh: change to autotools 1.9
5333
5334         * glib/dbus-gproxy.c: completely change how signals work
5335         (dbus_g_proxy_add_signal): new function to specify signature of a
5336         signal
5337         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5338         and g_warning if the incoming message has the wrong signature.
5339
5340 2005-01-30  Havoc Pennington  <hp@redhat.com>
5341
5342         * tools/dbus-names-model.c (have_names_notify): fix this
5343
5344         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5345         up the string array handling a bit 
5346
5347 2005-01-30  Havoc Pennington  <hp@redhat.com>
5348
5349         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5350         (dbus_g_pending_call_cancel): new function
5351
5352         * dbus/dbus-glib.h: move GType decls for connection/message here;
5353         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5354         here, just kind of rationalizing how we handle all that
5355
5356         * tools/dbus-names-model.c: new file for a tree model listing the
5357         services on a bus
5358
5359         * tools/dbus-tree-view.c (model_new): use proper typing on the
5360         model rows
5361
5362 2005-01-30  Havoc Pennington  <hp@redhat.com>
5363
5364         * glib/dbus-gmain.c: add a custom GSource back that just checks
5365         whether the message queue has anything in it; otherwise, there are 
5366         cases where we won't see messages in the queue since there was no 
5367         IO visible to the glib main loop
5368
5369         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5370         increase default message timeout to 25 seconds
5371
5372 2005-01-30  Havoc Pennington  <hp@redhat.com>
5373
5374         * test/glib/test-profile.c (no_bus_stop_server): remove the
5375         warning about the g_warning that I just fixed
5376
5377         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5378         custom source, seems to be a lot easier to understand and work
5379         better.
5380
5381 2005-01-30  Havoc Pennington  <hp@redhat.com>
5382
5383         I think this main loop thing is conceptually broken, but here are 
5384         some band aids. I'll maybe rewrite it in a minute.
5385         
5386         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5387         custom GSource, so don't pass it in; confusing
5388         (gsource_server_finalize, gsource_connection_finalize): add
5389         finalize handlers that remove all the watches.  
5390
5391 2005-01-30  Havoc Pennington  <hp@redhat.com>
5392
5393         * glib/dbus-gobject.c (introspect_properties): fix the XML
5394         generated
5395
5396         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5397         which effectively detects the use of freed messages
5398
5399         * glib/dbus-gobject.c (handle_introspect): modify and return the
5400         reply message instead of the incoming message
5401
5402         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5403         gee, maybe it should SEND THE XML instead of just making a string
5404         and freeing it again ;-)
5405
5406         * tools/dbus-print-message.c (print_message): improve printing of
5407         messages
5408
5409         * configure.in: add debug-glib.service to the output
5410
5411 2005-01-30  Havoc Pennington  <hp@redhat.com>
5412
5413         dbus-viewer introspected and displayed the bus driver
5414         
5415         * dbus/dbus-object-tree.c 
5416         (object_tree_test_iteration): add tests for a handler registered on "/"
5417
5418         * dbus/dbus-object-tree.c
5419         (_dbus_decompose_path): fix to handle path "/" properly
5420         (run_decompose_tests): add tests for path decomposition
5421         
5422         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5423         properly
5424
5425         * glib/dbus-gobject.c (handle_introspect): fix quotes
5426
5427         * test/glib/run-test.sh: support launching the bus, then running
5428         dbus-viewer
5429
5430         * test/glib/test-service-glib.c (main): put in a trivial gobject
5431         subclass and register it on the connection
5432
5433         * bus/driver.c (bus_driver_handle_introspect): implement
5434         introspection of the bus driver service
5435
5436         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5437         identifiers, doctype decl
5438
5439         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5440         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5441         returning the service unchanged.
5442         (bus_driver_handle_message): remove old check for reply_serial in
5443         method calls, now the message type deals with that
5444         (bus_driver_handle_message): handle NULL interface
5445
5446         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5447
5448         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5449         -1 for len
5450
5451         * tools/dbus-viewer.c: add support for introspecting a service on
5452         a bus
5453
5454         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5455         (dbus_g_pending_call_unref): add
5456
5457 2005-01-29  Havoc Pennington  <hp@redhat.com>
5458
5459         * tools/dbus-tree-view.c: add support for displaying properties.
5460         (run dbus-viewer with an introspect xml file as arg, then resize
5461         the window so the tree elements show up, not sure what that is)
5462
5463         * glib/dbus-gobject.c (handle_introspect): return
5464         org.freedesktop.Properties and org.freedesktop.Introspectable
5465         interfaces when we are introspected.
5466
5467         * doc/dbus-specification.xml: allow empty interface name when 
5468         Get/Set a property
5469
5470 2005-01-29  Havoc Pennington  <hp@redhat.com>
5471
5472         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5473         though it uses glib, it could be extended for any binding in
5474         principle
5475
5476         * glib/dbus-gobject.c (gobject_message_function): change to the
5477         new way properties work
5478
5479         * dbus/dbus-protocol.h: add the new interfaces
5480
5481         * doc/dbus-specification.xml: document the introspection format,
5482         Introspectable interface, and add an org.freedesktop.Properties
5483         interface.
5484
5485         * glib/dbus-gparser.c: add support for a <property> element
5486
5487         * glib/dbus-gidl.c: add PropertyInfo
5488
5489         * glib/dbus-gobject.c (handle_introspect): put the outermost
5490         <node> outside the signal and property descriptions.
5491         (introspect_properties): export properties as <property> rather
5492         than as method calls
5493
5494 2005-01-28  Havoc Pennington  <hp@redhat.com>
5495
5496         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5497         related to authentication protocol
5498
5499 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5500
5501         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5502                 - BUS_ACTIVATION -> BUS_STARTER
5503                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5504                 - class MessageIter (__init__): Added recursion checking 
5505                 so we throw a nice error instead of just disconnecting from the
5506                 bus.
5507                 (get): Added arg_type parameter for recursion.
5508                 Removed the nil type
5509                 Added signiture type placeholder (not implemented)
5510                 Added struct type placeholder (not implemented)
5511                 Added varient type placeholder (not implemented)
5512                 Commented out dict type for now     
5513                 (get_element_type): renamed from get_array_type
5514                 (get_*): changed to use the dbus_message_iter_get_basic API
5515                 (get_*_array): removed in favor of recursive get_array method
5516                 (get_array): new recursive method which calls get to marshal
5517                 the elements of the array
5518                 (value_to_dbus_sig): New method returns the corrasponding
5519                 dbus signiture to a python value
5520                 (append): Comment out dict handling for now
5521                 Handle lists with the new recursive API
5522                 Comment out None handling for now
5523                 (append_nil): removed
5524                 (append_*): changed to use dbus_message_iter_append_basic API
5525                 (append_*_array): removed in favor of recursive append_array 
5526                 method
5527                 (__str__): Make it easier to print out recursive iterators
5528                 for debugging
5529                 - class Message (__str__): moved type inspection to the
5530                 MessageIter class' __str__ method
5531                 (get_iter): Added an append parameter wich defaults to False
5532                 If True use the new API's to create an append iterator
5533
5534         * python/dbus.py: Update to use new bindings API
5535                 - TYPE_ACTIVATION -> TYPE_STARTER
5536                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5537                 - class ActivationBus -> class StarterBus
5538                 - class RemoteObject (__call__): get an append iterator
5539                 - (_dispatch_dbus_method_call): get an append iterator
5540                 - class Object (emit_signal): get an append iterator
5541
5542         * python/examples/: Fixed up the examples to work with the new API
5543                 
5544 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5545
5546         * configure.in: Bump version up to 0.30.
5547
5548         * HACKING: Add a release item to bump the version number up after 
5549         a release.
5550
5551 2005-01-28  Havoc Pennington  <hp@redhat.com>
5552
5553         * doc/dbus-specification.xml: update to describe 16-bit types and
5554         dict entries
5555
5556         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5557         assertion
5558
5559         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5560         type
5561
5562         * dbus/dbus-marshal-recursive.c: implement
5563
5564 2005-01-27  Havoc Pennington  <hp@redhat.com>
5565
5566         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5567
5568         * configure.in: find the right type for 16 and 32 bit ints as well
5569         as 64
5570
5571         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5572         the 16-bit types so people don't have to stuff them in 32-bit or
5573         byte arrays.
5574
5575 2005-01-27  Havoc Pennington  <hp@redhat.com>
5576
5577         * dbus/dbus-message.c: byteswap the message if you init an
5578         iterator to read/write from it
5579         
5580         * dbus/dbus-marshal-byteswap.c: new file implementing 
5581         _dbus_marshal_byteswap()
5582
5583         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5584
5585 2005-01-26  Havoc Pennington  <hp@redhat.com>
5586         
5587         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5588         build, apparently - nobody noticed?)
5589         
5590 2005-01-26  Havoc Pennington  <hp@redhat.com>
5591
5592         * dbus/dbus-marshal-recursive.h: remove todo comment
5593
5594 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5595
5596         * Land the mono binding changes to conform to the new APIs.
5597
5598         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5599         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5600
5601         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5602         type code as a string.
5603         (InitAppending): Rename dbus_message_append_iter_init() to
5604         dbus_message_iter_init_append().
5605
5606         * mono/BusDriver.cs: Rename ServiceEventHandler to
5607         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5608         Rename ServiceOwnerChanged to NameOwnerChanged.
5609
5610         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5611         underlying C call.
5612
5613         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5614
5615         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5616         dbus_bus_acquire_service() to dbus_bus_request_name().
5617
5618         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5619         of Type.UnderlyingSystemType to get the correct element type for
5620         the array.
5621         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5622         dbus_message_get_{element|arg}_type() instead of
5623         dbus_message_iter_init_array_iterator().
5624         (Append): Replace dbus_message_iter_append_array() with
5625         dbus_message_iter_open_container() and
5626         dbus_message_iter_close_container().
5627
5628         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5629         types have been removed.
5630         
5631         * mono/DBusType/*.cs: Replace calls of
5632         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5633         but specify the type in the DllImport extern declaration.  Ditto
5634         for dbus_message_iter_append_[type]() ->
5635         dbus_message_iter_append_basic().
5636
5637         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5638         NameOwnerChangedHandler.
5639
5640 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5641
5642         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5643                 - get_base_service -> get_unique_name
5644                 - bus_get_base_service -> bus_get_unique_name
5645                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5646                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5647                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5648                 - bus_activate_service -> bus_start_service_by_name
5649                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5650                 - bus_acquire_service -> bus_request_name
5651                 - dbus_bus_acquire_service -> dbus_bus_request_name
5652                 - bus_service_exists -> bus_name_has_owner
5653                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5654
5655         * python/dbus.py: Rename of methods
5656                 - activate_service -> start_service_by_name
5657                 - bus_acquire_service -> bus_request_name
5658                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5659                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5660
5661         
5662 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5663
5664         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5665         signature for the method that can't be found.
5666
5667         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5668         the message has any arguments, we need to call
5669         _dbus_type_reader_get_current_type(), not
5670         _dbus_type_reader_has_next().
5671
5672 2005-01-24  Havoc Pennington  <hp@redhat.com>
5673
5674         * dbus/dbus-message-factory.c: more testing of message validation
5675
5676         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5677         header
5678
5679 2005-01-23  Havoc Pennington  <hp@redhat.com>
5680
5681         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5682         get this all working, not many tests in the framework yet though
5683
5684 2005-01-22  Havoc Pennington  <hp@redhat.com>
5685
5686         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5687         tutorial, based on work from David Wheeler.
5688
5689 2005-01-21  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-bus.c: add more return_if_fail checks
5692
5693         * dbus/dbus-message.c (load_message): have the "no validation"
5694         mode (have to edit the code to toggle the mode for now though)
5695
5696         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5697         skips all validation; I want to use this at least for benchmark
5698         baseline, I'm not sure if it should be a publicly-available switch.
5699
5700 2005-01-21  Havoc Pennington  <hp@redhat.com>
5701
5702         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5703         toplevel doxygen group as the low-level API stuff
5704
5705         * dbus/dbus.h: note that libdbus is the low-level API
5706
5707 2005-01-20  Havoc Pennington  <hp@redhat.com>
5708
5709         * update-dbus-docs.sh: script to update docs on the web site, only
5710         works for me though. neener.
5711
5712 2005-01-20  Havoc Pennington  <hp@redhat.com>
5713
5714         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5715         code can reveal bugs in it
5716
5717 2005-01-20  Havoc Pennington  <hp@redhat.com>
5718
5719         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5720         select() version, patches from Tor Lillqvist
5721
5722 2005-01-20  Havoc Pennington  <hp@redhat.com>
5723
5724         * doc/dbus-tutorial.xml: replace > with &gt;
5725
5726         * bus/services.c (bus_registry_acquire_service): validate the name
5727         and return a better error if it's no good.
5728
5729         * doc/dbus-specification.xml: note NO_AUTO_START change
5730
5731         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5732         from AUTO_START, we're toggling the default
5733
5734         * bus/dispatch.c: adapt the tests to change of auto-start default
5735
5736 2005-01-18  Havoc Pennington  <hp@redhat.com>
5737
5738         * rename dbus-daemon-1 to dbus-daemon throughout
5739
5740 2005-01-18  Havoc Pennington  <hp@redhat.com>
5741
5742         * Throughout, grand renaming to strip out the use of "service",
5743         just say "name" instead (or "bus name" when ambiguous).  Did not
5744         change the internal code of the message bus itself, only the
5745         programmer-facing API and messages.
5746         
5747         * doc/dbus-specification.xml: further update the message bus section
5748         
5749         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5750         in error case
5751
5752 2005-01-17  Havoc Pennington  <hp@redhat.com>
5753
5754         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5755         ever
5756
5757         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5758         "invalid name character" not only non-ASCII
5759
5760         * doc/dbus-specification.xml: further update spec, message bus 
5761         parts are still out-of-date but the marshaling etc. stuff is now
5762         accurate-ish
5763
5764 2005-01-17  Havoc Pennington  <hp@redhat.com>
5765
5766         * doc/dbus-specification.xml: partially update spec
5767
5768 2005-01-17  Havoc Pennington  <hp@redhat.com>
5769
5770         * Throughout, align variant bodies according to the contained
5771         type, rather than always to 8. Should save a fair bit of space in
5772         message headers.
5773         
5774         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5775         fix handling of case where p == end
5776
5777         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5778
5779 2005-01-17  Havoc Pennington  <hp@redhat.com>
5780
5781         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5782
5783         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5784         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5785         are marshaling/unmarshaling a boolean.
5786
5787 2005-01-16  Havoc Pennington  <hp@redhat.com>
5788
5789         This is about it on what can be disabled/deleted from libdbus
5790         easily, back below 150K anyhow. Deeper cuts are more work than 
5791         just turning the code off as I've done here.
5792         
5793         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5794         signed int convenience funcs
5795
5796         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5797         verbose mode
5798
5799         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5800         things out of libdbus
5801
5802         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5803         
5804         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5805         tests-enabled-only, though it should probably be deleted)
5806
5807         * dbus/dbus-message-util.c: same stuff
5808
5809         * dbus/dbus-auth-util.c: same stuff
5810
5811 2005-01-16  Havoc Pennington  <hp@redhat.com>
5812
5813         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5814
5815         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5816         way for stripping down dbus-userdb.c stuff included in libdbus.
5817         Rename _dbus_parse_uid for consistency.
5818
5819 2005-01-16  Havoc Pennington  <hp@redhat.com>
5820
5821         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5822         name the assertion failed in
5823
5824         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5825         (_dbus_return_val_if_fail): assert that the name of the function
5826         containing the check doesn't start with '_', since we only want to 
5827         use checks on public functions
5828         
5829         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5830         checks to assertions
5831
5832         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5833         change checks to asserts for private function
5834
5835         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5836         to asserts for private function
5837
5838         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5839         broken assertion that was breaking make check
5840         (_dbus_type_reader_array_is_empty): remove this rather than fix
5841         it, was only used in assertions
5842
5843 2005-01-16  Havoc Pennington  <hp@redhat.com>
5844
5845         * test/unused-code-gc.py: hacky script to find code that's used
5846         only by the bus (not libdbus) or used only by tests or not used at
5847         all. It has some false alarms, but looks like we can clean up a
5848         lot of size from libdbus.
5849
5850         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5851         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5852         
5853 2005-01-16  Havoc Pennington  <hp@redhat.com>
5854
5855         * Add and fix docs according to Doxygen warnings throughout
5856         source.
5857         
5858         * dbus/dbus-marshal-recursive.c
5859         (_dbus_type_reader_array_is_empty): change this to just call
5860         array_reader_get_array_len() and make it static
5861
5862         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5863         from get_array_type
5864         (dbus_message_iter_init_append): rename from append_iter_init
5865
5866         * dbus/dbus-marshal-recursive.c
5867         (_dbus_type_reader_get_element_type): rename from
5868         _dbus_type_reader_get_array_type
5869
5870 2005-01-15  Havoc Pennington  <hp@redhat.com>
5871
5872         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5873
5874         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5875         when DBUS_DISABLE_ASSERT
5876         (_dbus_marshal_set_basic): be sure we align for the string length
5877
5878         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5879         this look faster
5880
5881         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5882         inline macro version
5883         (_dbus_string_set_byte): provide inline macro version
5884
5885 2005-01-15  Havoc Pennington  <hp@redhat.com>
5886
5887         * Land the new message args API and type system.
5888
5889         This patch is huge, but the public API change is not 
5890         really large. The set of D-BUS types has changed somewhat, 
5891         and the arg "getters" are more geared toward language bindings;
5892         they don't make a copy, etc.
5893
5894         There are also some known issues. See these emails for details
5895         on this huge patch:
5896         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5897         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5898         
5899         * dbus/dbus-marshal-*: all the new stuff
5900
5901         * dbus/dbus-message.c: basically rewritten
5902
5903         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5904         freed blocks to be all non-nul bytes so using freed memory is less
5905         likely to work right
5906
5907         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5908         DBUS_FAIL_MALLOC=N environment variable, so you can do
5909         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5910         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5911         thorough.
5912
5913         * qt/message.cpp: port to the new message args API
5914         (operator<<): use str.utf8() rather than str.unicode()
5915         (pretty sure this is right from the Qt docs?)
5916
5917         * glib/dbus-gvalue.c: port to the new message args API
5918
5919         * bus/dispatch.c, bus/driver.c: port to the new message args API
5920
5921         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5922         "locked" flag to TRUE and align_offset to 0; I guess we never
5923         looked at these anyhow, but seems cleaner.
5924
5925         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5926         move allocation padding macro to this header; use it to implement
5927         (_DBUS_STRING_STATIC): ability to declare a static string.
5928
5929         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5930         change to return TRUE if the interface is not set.
5931
5932         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5933         to dbus-marshal-validate.[hc]
5934
5935         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5936         dbus-internals.c
5937
5938         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5939         to dbus-marshal-*.[hc]
5940
5941         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5942         function here from dbus-marshal.c
5943
5944 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5945
5946         * NEWS: Update for 0.23.
5947
5948         * configure.in: Release 0.23.
5949
5950 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5951
5952         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5953         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5954         behind.
5955
5956         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5957         uninstall"
5958
5959         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5960         is an enum, get the enum's underlying type.  Another mono
5961         1.1.3 fix.
5962
5963 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5964
5965         Patch from Sjoerd Simons <sjoerd@luon.net>
5966
5967         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5968         DESTDIR.  It breaks stuff.
5969
5970 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5971
5972         Patch from Tambet Ingo <tambet@ximian.com>
5973
5974         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5975         calling type.GetElementType().  The code previously depended on
5976         broken Mono behavior, which was fixed in Mono 1.1.3.
5977
5978         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5979         Activator.CreateInstance() so that the class's constructor is
5980         called with the right parameters.
5981
5982 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5983
5984         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5985
5986         * dbus/dbus-connection.c
5987         (_dbus_connection_queue_received_message_link): Call
5988         _dbus_connection_remove_timeout() instead of the _locked()
5989         variant, since it's always called from
5990         _dbus_connection_handle_watch(), which handles the locking.
5991         Removed the _locked() variant since it's no longer used.
5992
5993 2005-01-03  Havoc Pennington  <hp@redhat.com>
5994
5995         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
5996         return
5997         
5998 2004-12-26  Havoc Pennington  <hp@redhat.com>
5999
6000         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6001
6002 2005-01-03  Havoc Pennington  <hp@redhat.com>
6003
6004         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6005         floating point
6006
6007         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6008
6009 2005-01-02  Havoc Pennington  <hp@redhat.com>
6010
6011         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6012
6013 2005-01-01  Havoc Pennington  <hp@redhat.com>
6014
6015         * configure.in: add -Wfloat-equal
6016
6017 2005-01-01  Havoc Pennington  <hp@redhat.com>
6018
6019         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6020         for a variety of reasons '==' doesn't do this.
6021
6022 2004-12-31  Havoc Pennington  <hp@redhat.com>
6023
6024         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6025         I keep wishing I had
6026
6027 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6028
6029         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6030
6031 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6032
6033         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6034         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6035         dbus-protocol.h.  Because they are defines and not enums they are not
6036         autogenerated.
6037
6038 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6039
6040         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6041         dbus_bus_activate_service
6042
6043         * python/dbus.py (Bus.activate_service): activate a service on the
6044         bus.
6045
6046 2004-12-24  Havoc Pennington  <hp@redhat.com>
6047
6048         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6049         file format has also changed and I haven't adapted to that yet
6050         
6051         * Makefile.am: load .gcno files from latest gcc
6052
6053 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6054         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6055
6056         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6057         lowlevel binding
6058
6059         * python/dbus.py (get_unix_user): Added binding to 
6060         call dbus_bindings.bus_get_unix_user
6061
6062         * python/extract.py: Modified the proto_pat regex to
6063         handle unsigned long
6064
6065 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6066
6067         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6068         better POSIX compliance.
6069
6070 2004-12-19  Havoc Pennington  <hp@redhat.com>
6071
6072         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6073         (_dbus_string_insert_8_aligned): new functions
6074
6075         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6076
6077 2004-12-18  Havoc Pennington  <hp@redhat.com>
6078
6079         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6080         macro
6081
6082         * dbus/dbus-message.c: fix a comment, and add a still-unused
6083         not-implemented function
6084
6085         * dbus/dbus-marshal.h: fix comment
6086
6087         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6088
6089 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6090
6091         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6092         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6093         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6094         Type.UnderlyingSystemType to get the actual system type
6095         underneath.  This code previously depended on the broken Mono
6096         behavior, which was fixed in 1.1.3.
6097
6098 2004-11-27  Havoc Pennington  <hp@redhat.com>
6099
6100         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6101         are disabled
6102         (_dbus_string_get_const_data): inline when asserts are disabled
6103
6104         * dbus/dbus-message.c: record the _dbus_current_generation of
6105         creation so we can complain if dbus_shutdown() is used improperly.
6106         Do this only if checks are enabled.
6107
6108         * dbus/dbus-connection.c: ditto
6109         
6110 2004-11-26  Havoc Pennington  <hp@redhat.com>
6111
6112         * test/glib/test-profile.c: add with_bus mode to profile echoes
6113         that go through the bus.
6114
6115         * test/glib/run-test.sh: add ability to run test-profile
6116
6117         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6118         config file reload.
6119
6120 2004-11-26  Havoc Pennington  <hp@redhat.com>
6121
6122         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6123         thing was implemented
6124
6125 2004-11-26  Havoc Pennington  <hp@redhat.com>
6126
6127         * test/glib/test-profile.c: tweak a bit, add support for some
6128         made-up minimal malloc overhead with plain sockets, since in 
6129         real life some sort of buffers are unavoidable thus we could 
6130         count them in the theoretical best case
6131
6132 2004-11-26  Havoc Pennington  <hp@redhat.com>
6133
6134         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6135         where I was trying to cache one too many messages
6136
6137 2004-11-26  Havoc Pennington  <hp@redhat.com>
6138
6139         * dbus/dbus-message.c: reimplement message cache as an array which 
6140         makes the cache about twice as fast and saves maybe 1.5% overall
6141
6142 2004-11-26  Havoc Pennington  <hp@redhat.com>
6143
6144         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6145         message cache lock here
6146
6147 2004-11-26  Havoc Pennington  <hp@redhat.com>
6148
6149         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6150         the "char byte_order" next to each other to save 4 bytes
6151         (dbus_message_new_empty_header): reduce preallocation, since the
6152         message cache should achieve a similar effect
6153         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6154         message cache that keeps a few DBusMessage around in a pool,
6155         another 8% speedup or so.
6156
6157         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6158
6159 2004-11-25  Havoc Pennington  <hp@redhat.com>
6160
6161         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6162         to write, without reading or blocking, try it before the poll()
6163         and skip the poll() if nothing remains to write. This is about a
6164         3% speedup in the echo client/server
6165
6166 2004-11-25  Havoc Pennington  <hp@redhat.com>
6167
6168         The primary change here is to always write() once before adding
6169         the write watch, which gives us about a 10% performance increase.
6170         
6171         * dbus/dbus-transport-unix.c: a number of modifications to cope
6172         with removing messages_pending
6173         (check_write_watch): properly handle
6174         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6175         messages_pending stuff
6176         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6177         AUTHENTICATED cases
6178         (unix_handle_watch): after writing, see if the write watch can be
6179         removed
6180         (unix_do_iteration): assert that write_watch/read_watch are
6181         non-NULL rather than testing that they aren't, since they 
6182         aren't allowed to be NULL. check_write_watch() at the end so 
6183         we add the watch if we did not finish writing (e.g. got EAGAIN)
6184
6185         * dbus/dbus-transport-protected.h: remove messages_pending call,
6186         since it resulted in too much inefficient watch adding/removing; 
6187         instead we now require that the transport user does an iteration 
6188         after queueing outgoing messages, and after trying the first
6189         write() we add a write watch if we got EAGAIN or exceeded our 
6190         max bytes to write per iteration setting
6191
6192         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6193         function
6194
6195         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6196         freed and then accessed, valgrind flagged this bug, fix it
6197
6198         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6199         as the last valid field plus 1, where really it is equal to the
6200         last valid field. Corrects some message corruption issues.
6201
6202         * dbus/dbus-mainloop.c: verbosity changes
6203
6204         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6205         instead of aborting in one of the test codepaths
6206
6207         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6208         caused not printing the pid ever again if a verbose was missing
6209         the newline at the end
6210         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6211
6212         * dbus/dbus-connection.c: verbosity changes; 
6213         (dbus_connection_has_messages_to_send): new function
6214         (_dbus_connection_message_sent): no longer call transport->messages_pending
6215         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6216         try to write() immediately, so we can avoid the write watch. This
6217         is the core purpose of this patchset
6218         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6219         dump the outgoing message queue, so nobody will get confused
6220         trying to send them or thinking stuff is pending to be sent
6221
6222         * bus/test.c: verbosity changes
6223
6224         * bus/driver.c: verbosity/assertion changes
6225
6226         * bus/dispatch.c: a bunch of little tweaks to get it working again
6227         because this patchset changes when/where you need to block.
6228
6229 2004-11-23  Havoc Pennington  <hp@redhat.com>
6230
6231         * test/glib/test-profile.c: modify to accept a plain_sockets
6232         argument in which case it will bench plain sockets instead of
6233         libdbus, for comparison purposes.
6234
6235 2004-11-22  Havoc Pennington  <hp@redhat.com>
6236
6237         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6238         threads for more time, so sysprof can get a grip on it.
6239
6240         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6241         pointless variable
6242
6243 2004-11-13  Havoc Pennington  <hp@redhat.com>
6244
6245         * test/glib/test-profile.c: fix this thing up a bit
6246
6247         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6248         preallocation sizes by a fair bit; not sure if this will be an
6249         overall performance win or not, but it does reduce reallocs.
6250
6251         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6252         the test hack that forced constant realloc if asserts are
6253         disabled, so we can profile sanely. Sprinkle in some
6254         _DBUS_UNLIKELY() which are probably pointless, but before I
6255         noticed the real performance problem I put them in.
6256         (_dbus_string_validate_utf8): micro-optimize this thing a little
6257         bit, though callgrind says it didn't help; then special-case
6258         ascii, which did help a lot; then be sure we detect nul bytes as
6259         invalid, which is a bugfix.
6260         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6261         superstition; use memset to nul the padding instead of a manual
6262         loop.
6263         (_dbus_string_get_length): inline this as a
6264         macro; it showed up in the profile because it's used for loop
6265         tests and so forth
6266
6267 2004-11-10  Colin Walters  <walters@verbum.org>
6268
6269         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6270         for extra paranoia.
6271
6272 2004-11-09  Colin Walters  <walters@verbum.org>
6273
6274         * dbus/dbus-string.c (_dbus_string_get_length): New
6275         function, writes DBusString to C buffer.
6276
6277         * dbus/dbus-string.h: Prototype it.
6278
6279         * dbus/dbus-message.c (dbus_message_type_to_string): New
6280         function, converts message type into C string.
6281
6282         * dbus/dbus-message.h: Prototype it.
6283
6284         * bus/selinux.c (bus_selinux_check): Take source pid,
6285         target pid, and audit data.  Pass audit data to
6286         avc_has_perm.
6287         (log_audit_callback): New function, appends extra
6288         audit information.
6289         (bus_selinux_allows_acquire_service): Also take
6290         service name, add it to audit data.
6291         (bus_selinux_allows_send): Also take message
6292         type, interface, method member, error name,
6293         and destination, and add them to audit data.
6294         (log_cb): Initialize func_audit.
6295         
6296         * bus/selinux.h (bus_selinux_allows_acquire_service)
6297         (bus_selinux_allows_send): Update prototypes 
6298
6299         * bus/services.c (bus_registry_acquire_service): Pass
6300         service name to bus_selinux_allows_acquire_service.
6301
6302         * bus/bus.c (bus_context_check_security_policy): Pass
6303         additional audit data.  Move assignment of dest
6304         to its own line.
6305
6306 2004-11-07  Colin Walters  <walters@verbum.org>
6307
6308         * dbus/dbus-transport-unix.c (do_authentication): Always
6309         initialize auth_completed.
6310         
6311 2004-11-07  Colin Walters  <walters@verbum.org>
6312
6313         * bus/bus.c (load_config): Break into three
6314         separate functions: process_config_first_time_only,
6315         process_config_every_time, and process_config_postinit.
6316         (process_config_every_time): Move call of
6317         bus_registry_set_service_context_table into
6318         process_config_postinit.
6319         (process_config_postinit): New function, does
6320         any processing that needs to happen late
6321         in initialization (and also on reload).
6322         (bus_context_new): Instead of calling load_config,
6323         open config parser here and call process_config_first_time_only
6324         and process_config_every_time directly.  Later, after
6325         we have forked but before changing UID,
6326         invoke bus_selinux_full_init, and then call
6327         process_config_postinit.
6328         (bus_context_reload_config): As in bus_context_new,
6329         load parse file inside here, and call process_config_every_time
6330         and process_config_postinit.
6331
6332         * bus/services.h, bus/services.c
6333         (bus_registry_set_service_context_table): Rename
6334         from bus_registry_set_sid_table.  Take string hash from config
6335         parser, and convert them here into SIDs.
6336
6337         * bus/config-parser.c (struct BusConfigParser): Have
6338         config parser only store a mapping of service->context
6339         string.
6340         (merge_service_context_hash): New function.
6341         (merge_included): Merge context string hashes instead
6342         of using bus_selinux_id_table_union.
6343         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6344         simply create a new string hash.
6345         (bus_config_parser_unref): Unref it.
6346         (start_selinux_child): Simply insert strings into hash,
6347         don't call bus_selinux_id_table_copy_over.
6348
6349         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6350         (bus_selinux_id_table_copy_over): Delete.
6351
6352 2004-11-03  Colin Walters  <walters@verbum.org>
6353
6354         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6355         variables.
6356         
6357 2004-11-03  Colin Walters  <walters@verbum.org>
6358
6359         * bus/test-main.c (test_pre_hook): Fix test logic,
6360         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6361
6362 2004-11-02  Colin Walters  <walters@redhat.com>
6363
6364         * bus/selinux.c (bus_selinux_init): Split into two functions,
6365         bus_selinux_pre_init and bus_selinux_post_init.
6366         (bus_selinux_pre_init): Just determine whether SELinux is
6367         enabled.
6368         (bus_selinux_post_init): Do everything else.
6369
6370         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6371         config file, and bus_selinux_post_init after.  This ensures that
6372         we don't lose the policyreload notification thread that
6373         bus_selinux_init created before forking previously.
6374         
6375         * bus/test-main.c (test_pre_hook): Update for split.
6376
6377 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6378
6379         Patch from Johan Fischer <linux@fischaz.com>
6380         
6381         * mono/doc/Makefile.am (install-data-local): Added directory
6382         install for DESTDIR
6383
6384 2004-10-29  Colin Walters  <walters@redhat.com>
6385
6386         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6387         parameter for fd to write pid to.       
6388
6389         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6390         
6391         * bus/bus.c (bus_context_new): Pass print_pid_fd
6392         to _dbus_become_daemon (bug #1720)
6393
6394 2004-10-29  Colin Walters  <walters@redhat.com>
6395
6396         Patch from Ed Catmur <ed@catmur.co.uk>
6397
6398         * mono/doc/Makefile.am (install-data-local): Handle
6399         DESTDIR.
6400
6401 2004-10-29  Colin Walters  <walters@redhat.com>
6402
6403         * bus/.cvsignore, qt/.cvsignore: Update.
6404
6405 2004-10-29  Colin Walters  <walters@redhat.com>
6406
6407         Patch from Kristof Vansant <de_lupus@pandora.be>
6408
6409         * configure.in: Detect Slackware.
6410         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6411         * bus/rc.messagebus.in: New file.
6412
6413 2004-10-29  Colin Walters  <walters@redhat.com>
6414
6415         * tools/dbus-monitor.c (filter_func): Return
6416         DBUS_HANDLER_RESULT_HANDLED in filter function
6417         for now.  See:
6418         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6419
6420 2004-10-29  Colin Walters  <walters@redhat.com>
6421
6422         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6423
6424         * bus/services.c (bus_registry_acquire_service): 
6425         Correctly retrieve service name from DBusString
6426         for printing.
6427
6428 2004-10-29  Colin Walters  <walters@redhat.com>
6429
6430         * dbus/dbus-glib.h: Update documentation to not
6431         refer to internal APIs.
6432
6433 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6434
6435         * mono/Arguments.cs (GetDBusTypeConstructor):
6436         type.UnderlyingSystemType will return "System.Byte" if you do it
6437         on "byte[]", which is not what we want.  So check the type.IsArray
6438         property and use System.Array instead.
6439
6440 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6441
6442         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6443         the DBusUserInfo structure since this is passed into the function.
6444         This would cause a double free when the function that allocated
6445         the structure would try to free it when an error occured.
6446
6447         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6448         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6449         for service activation to avoid 32bit/64bit parallel install issues
6450
6451 2004-10-21  Colin Walters  <walters@verbum.org>
6452
6453         * AUTHORS: Fix my email address, the @gnu.org one
6454         has been bouncing for some time.  Also add J5.
6455         
6456 2004-10-21  Colin Walters  <walters@verbum.org>
6457
6458         * dbus/dbus-transport-unix.c (do_authentication): Return
6459         authentication status to callers.
6460         (unix_handle_watch): If we completed authentication this round,
6461         don't do another read.  Instead wait until the next iteration,
6462         after we've read any pending data in the auth buffer.
6463         (unix_do_iteration): Ditto.
6464         (unix_handle_watch): Updated for new do_authentication prototype.
6465
6466 2004-10-18  Colin Walters  <walters@verbum.org>
6467
6468         * bus/selinux.c (bus_selinux_enabled): Handle
6469         --disable-selinux case.
6470         
6471 2004-10-18  Colin Walters  <walters@verbum.org>
6472
6473         * bus/selinux.h: Add bus_selinux_enabled.
6474         
6475         * bus/selinux.c (bus_selinux_enabled): Implement it.
6476         
6477         * bus/config-parser.c (struct include): Add
6478         if_selinux_enabled member.
6479         (start_busconfig_child): Parse if_selinux_enabled
6480         attribute for include.
6481         (bus_config_parser_content): Handle it.
6482
6483         * bus/session.conf.in, bus/system.conf.in: Add
6484         inclusion of context mapping to default config files;
6485         conditional on SELinux being enabled.
6486         
6487         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6488         
6489         * test/data/invalid-config-files/badselinux-1.conf, 
6490         test/data/invalid-config-files/badselinux-2.conf:
6491         Test files for bad syntax.
6492         
6493 2004-10-17  Colin Walters  <walters@verbum.org>
6494
6495         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6496         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6497         format specifier mismatches.
6498
6499 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6500
6501         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6502         format string.
6503
6504         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6505         pointer (bug #1540, Leonardo Boiko).
6506
6507 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6508
6509         * mono/BusDriver.cs: Changed BusDriver struct to remove
6510         the ServiceCreated and ServiceDeleted events and replace them
6511         with the new ServiceOwnerChanged event.
6512
6513         * mono/example/BusListener.cs: Added a new example program,
6514         which listens for and reports any ServiceOwnerChanged events
6515         on the bus driver.
6516
6517         * mono/example/Makefile.am (DESTDIR): Build changes for the
6518         new BusListener.cs example.
6519
6520 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6521
6522         * bus/signals.c (bus_match_rule_parse): validate the components of
6523         match rules (bug #1439).
6524
6525         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6526
6527 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6528
6529         * doc/dbus-specification.xml: document ServiceOwnerChanged
6530         signal.
6531         
6532         * bus/driver.c, bus/driver.h, bus/services.c: Use
6533         ServiceOwnerChanged signal instead of ServiceCreated and
6534         ServiceDeleted.
6535         
6536         * bus/dispatch.c: update testcase for the new signal.
6537
6538 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6539
6540         Patch from Nat Friedman <nat@novell.com>
6541
6542         * mono/Makefile.am: A number of small build fixes to allow "make
6543         distcheck" to succeed.
6544
6545         * mono/example/Makefile.am: "make distcheck" fixes.
6546
6547         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6548         key in @srcdir@.
6549
6550         * test/Makefile.am: "make distcheck" fixes.
6551
6552 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6553
6554         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6555
6556         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6557
6558         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6559         messages after the first one (bug #1389).
6560         
6561         * bus/dispatch.c (check_double_hello_message): add a test case for
6562         the double hello message bug.
6563         (check_existent_service_activation): fix check of spawning error.
6564         
6565 2004-09-16  David Zeuthen  <david@fubar.dk>
6566
6567         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6568
6569 2004-09-12  David Zeuthen  <david@fubar.dk>
6570
6571         Patch from Kay Sievers <kay.sievers@vrfy.org>
6572
6573         * bus/bus.c (bus_context_new):
6574         * bus/bus.h:
6575         * bus/main.c (usage)
6576         (main):
6577         Add commandline option --nofork to override configuration file
6578         setting.
6579
6580 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6581
6582         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6583         compilers don't like it (bug #974).
6584
6585 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6586
6587         * qt/connection.*: Applied patch by Jérôme Lodewyck
6588         <lodewyck@clipper.ens.fr> to integrate an existing
6589         connection into the Qt eventloop
6590
6591 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6592
6593         * mono/BusDriver.cs: Added.  This is a class for interacting with
6594         the org.freedesktop.DBus service.
6595
6596         * mono/Message.cs: Added a mechanism to expose the message that is
6597         currently being dispatched via the static Message.Current
6598         property.  Added Message.Sender and Message.Destination
6599         properties.
6600
6601         * mono/Handler.cs: Expose the dispatched message via
6602         Message.Current when handling method calls.
6603
6604         * mono/Service.cs: Expose the dispatched message via
6605         Message.Current when handling signal emissions.
6606         
6607         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6608         Connection.BaseService property.
6609
6610 2004-08-28  Havoc Pennington  <hp@redhat.com>
6611
6612         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6613
6614         More fixes from Steve Grubb
6615         
6616         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6617         (_dbus_listen_tcp_socket): fix fd leak
6618
6619         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6620         EINTR to a bit lower in the code
6621
6622 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6623
6624         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6625         TRUE if we are inquiring about the existence of the built-in
6626         org.freedesktop.DBus service.
6627
6628 2004-08-25  John Palmieri  <johnp@redhat.com>
6629         * bus/config-parser.c:
6630         (struct PolicyType): Add POLICY_CONSOLE
6631         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6632         (start_busconfig_child): Sets up console element when
6633         <policy at_console=""> is encountered in a policy file
6634         (append_rule_from_element): Convert console elements to console
6635         rules.
6636
6637         * bus/policy.c: 
6638         (bus_policy_create_client_policy): Add console rules to the client
6639         policy based on if the client is at the console
6640         (bus_policy_append_console_rule): New function for adding a
6641         console rule to a policy
6642         (bus_policy_merge): Handle console rule merging
6643
6644         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6645         where we check for console user files
6646         
6647         * dbus/dbus-sysdeps.c:
6648         (_dbus_file_exists): New function which checks if the given
6649         file exists
6650         (_dbus_user_at_console): New function which does the system
6651         specific process of checking if the user is at the console
6652
6653         * dbus/dbus-userdb.c:
6654         (_dbus_is_console_user): New function converts a UID to user name
6655         and then calls the system specific _dbus_user_at_console to 
6656         see if the user is at the console and therefor a console user
6657
6658 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6659
6660         * bus/config-parser.c (set_limit):
6661         * bus/dbus-daemon-1.1.in:
6662         * test/data/valid-config-files/many-rules.conf: set the
6663         max_match_rules_per_connection limt from the config file. 
6664
6665         * doc/busconfig.dtd: update the DTD.
6666
6667         * bus/driver.c: remove some unused variables.
6668
6669 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6670
6671         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6672         it's been replaced by dbus_g_bus_get
6673
6674 2004-08-23  Colin Walters  <walters@redhat.com>
6675
6676         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6677
6678         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6679
6680         * bus/selinux.c: Create a thread for policy reload notification.
6681         (bus_selinux_get_policy_root): Implement.
6682
6683         * bus/config-parser.c (start_busconfig_child)
6684         (bus_config_parser_content): Support SELinux-root relative
6685         inclusion.
6686
6687         * configure.in <HAVE_SELINUX>: Add -lpthread.
6688         
6689         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6690         (test_post_hook): Move memory checking into here.
6691         (test_pre_hook, test_post_hook): Move SELinux checks in
6692         here, but conditional on a DBUS_TEST_SELINUX environment
6693         variable.  Unfortunately we can't run the SELinux checks
6694         as a normal user, since they won't have any permissions
6695         for /selinux.  So this will have to be tested manually
6696         for now, until we have virtualization for most of
6697         libselinux.
6698         
6699 2004-08-23  Havoc Pennington  <hp@redhat.com>
6700
6701         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6702         drop supplementary groups, suggested by Steve Grubb
6703
6704 2004-08-20  Colin Walters  <walters@redhat.com>
6705
6706         * bus/config-parser.c (start_busconfig_child): Remove some unused
6707         variables.
6708         
6709         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6710         warning.
6711
6712 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6713
6714         * configure.in: If --enable-mono is passed in, if we can't find
6715         mono error out.
6716
6717         * mono/Makefile.am: Use /gacutil to install assemblies into the
6718         GAC and not /root.
6719
6720 2004-08-12  Havoc Pennington  <hp@redhat.com>
6721
6722         * NEWS: update for 0.22
6723
6724         * configure.in: release 0.22
6725
6726 2004-08-11  Colin Walters  <walters@redhat.com>
6727
6728         * tools/dbus-send.c (main, usage): Add --reply-timeout
6729         argument.
6730
6731 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6732
6733         * bus/bus.c (process_config_first_time_only): get rid of an unused
6734         DBusError that was causing a memoy leak (bug #989).
6735
6736         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6737         fix compilation on Solaris/Forte C (bug #974)
6738
6739         * bus/main.c (main): plug two minuscule memleaks.
6740
6741 2004-08-10  Havoc Pennington  <hp@redhat.com>
6742
6743         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6744
6745 2004-08-09  Havoc Pennington  <hp@redhat.com>
6746
6747         * COPYING: switch to Academic Free License version 2.1 instead of
6748         2.0, to resolve complaints about patent termination clause.
6749
6750 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6751
6752         * README: added documentation for the --enable-python 
6753         configure switch.
6754
6755 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6756
6757         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6758         _unref in the SELinux support.
6759
6760         * doc/busconfig.dtd: update DTD for SELinux support.
6761
6762         * bus/config-loader-libxml.c: fix error handler and parser
6763         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6764
6765         * configure.in: remove the warning about libxml2.
6766
6767         * dbus/dbus-bus.c: silence doxygen warning.
6768
6769 2004-07-31  Colin Walters  <walters@redhat.com>
6770
6771         * configure.in: Move #error in SELinux check to its own line.
6772
6773 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6774
6775         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6776         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6777         dbus_error_set.
6778
6779         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6780         broken by the change in the _SET_OOM macros.
6781
6782 2004-07-31  Colin Walters  <walters@redhat.com>
6783
6784         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6785         BUS_SET_OOM.
6786
6787 2004-07-31  Colin Walters  <walters@redhat.com>
6788
6789         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6790         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6791         AC_MSG_CHECKING.
6792
6793 2004-07-24  Havoc Pennington  <hp@redhat.com>
6794
6795         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6796
6797         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6798         functionality
6799
6800         * configure.in: add --enable-selinux
6801         
6802         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6803
6804         * bus/main.c (main): initialize and shut down selinux
6805
6806         * bus/connection.c: store SELinux ID on each connection, to avoid 
6807         repeated getting of the string context and converting it into 
6808         an ID
6809
6810         * bus/bus.c (bus_context_get_policy): new accessor, though it
6811         isn't used
6812         (bus_context_check_security_policy): check whether the security
6813         context of sender connection can send to the security context of
6814         recipient connection
6815
6816         * bus/config-parser.c: add parsing for <selinux> and <associate>
6817         
6818         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6819         implement dbus_connection_get_unix_fd()
6820
6821         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6822         function, used by the selinux stuff
6823         
6824 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6825
6826         * bus/config-loader-libxml.c: complete the implementation of
6827         libxml backend for config file loader. Doesn't work with full OOM
6828         test yet. 
6829         
6830         * configure.in: change error when selecting libxml into a warning.
6831         
6832         * test/data/invalid-config-files: add two non-well-formed XML
6833         files. 
6834         
6835         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6836         
6837         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6838         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6839         be necessary to read all the buffer. (bug #894)
6840
6841         * bus/activation.c (bus_activation_activate_service): fix a
6842         potential assertion failure (bug #896). Small optimization in the
6843         case of auto-activation messages.
6844
6845         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6846         add test case for byte-through-vararg bug (#901). patch by Kimmo
6847         Hämäläinen. 
6848
6849 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6850
6851         * python/dbus.py:
6852         * python/dbus_bindings.pyx.in:
6853         Add dbus.init_gthreads (), allow emit_signal to pass
6854         arguments to the signal.
6855         
6856 2004-07-24  Havoc Pennington  <hp@redhat.com>
6857
6858         * AUTHORS: add some people, not really comprehensively, let me
6859         know if I missed you
6860
6861 2004-07-24  Havoc Pennington  <hp@redhat.com>
6862
6863         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6864         Owen
6865
6866         * test/Makefile.am (DIST_SUBDIRS): here also
6867
6868 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6869
6870         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6871         breaking build on Solaris, reported by Farhad Saberi on the ML.
6872
6873         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6874         va_arg invocation to account for integer promotion in the case of
6875         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6876
6877         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6878         _dbus_list_get_first_link, not _dbus_list_get_first.
6879
6880         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6881
6882         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6883         handler functions so that the asserts in _dbus_object_subtree_unref
6884         do not fail.
6885
6886         * dbus/dbus-transport-unix.c (do_reading):
6887         _dbus_transport_queue_messages return value is of type
6888         dbus_bool_t, not DBusDispatchStatus.
6889         
6890 2004-07-19  David Zeuthen  <david@fubar.dk>
6891
6892         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6893
6894         * bus/dispatch.c:
6895         (check_get_connection_unix_user): Debug says GetProperty; but the
6896         method is called GetConnectionUnixUser
6897         (check_get_connection_unix_process_id): New function
6898         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6899         also call check_get_connection_unix_process_id()
6900         
6901         * bus/driver.c:
6902         (bus_driver_handle_get_connection_unix_process_id): New function,
6903         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6904         interface
6905         
6906         * dbus/dbus-auth.c:
6907         (handle_server_data_external_mech): Set pid from the credentials
6908         obtained from the socket
6909         
6910         * dbus/dbus-connection.c:
6911         (dbus_connection_get_unix_process_id): New function
6912         
6913         * dbus/dbus-connection.h: 
6914         Add prototype for dbus_connection_get_unix_process_id
6915         
6916         * dbus/dbus-transport.c:
6917         (_dbus_transport_get_unix_process_id): New function
6918         
6919         * dbus/dbus-transport.h:
6920         Add prototype for _dbus_transport_get_unix_process_id
6921         
6922 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6923
6924         * dbus/dbus-message.c: Message counter fix, patch by Christian
6925         Hammond <chipx86@gnupdate.org>
6926
6927 2004-07-18  Seth Nickell  <seth@gnome.org>
6928
6929         * python/dbus.py:
6930         * python/dbus_bindings.pyx.in:
6931         * python/tests/test-client.py:
6932
6933         Add dbus.ByteArray and dbus_bindings.ByteArray
6934         types so that byte streams can be passed back.
6935
6936         Give jdahlin the heaps of credit that are so
6937         rightfully his.
6938         
6939 2004-07-12  Seth Nickell  <seth@gnome.org>
6940
6941         * python/dbus.py:
6942
6943         Add message argument to the default object_method_handler
6944         function.
6945         
6946         * python/dbus_bindings.pyx.in:
6947
6948         Automatically return NIL when passed an empty list
6949         (we can't pass back a list since lists are typed
6950         and we don't have any idea what type the the client
6951         intended the list to be... :-( )
6952         
6953 2004-07-10  Seth Nickell  <seth@gnome.org>
6954
6955         * python/examples/Makefile.am:
6956
6957         Fix distcheck breakage caused by new examples.
6958
6959 2004-07-10  Seth Nickell  <seth@gnome.org>
6960
6961         * python/dbus.py:
6962
6963         Add "message" argument to service-side dbus.Object
6964         methods. This will break existing services written
6965         using the python bindings, but will allow extraction
6966         of all the message information (e.g. who its from).
6967
6968         Add improved "object oriented" signal handling/emission.
6969         
6970         * python/examples/example-service.py:
6971
6972         Nix this example.
6973         
6974         * python/examples/example-signal-emitter.py:
6975         * python/examples/example-signal-recipient.py:
6976
6977         Two new examples that show how to emit and receive
6978         signals using the new APIs.
6979         
6980         * python/examples/example-signals.py:
6981         * python/examples/gconf-proxy-service.py:
6982         * python/examples/gconf-proxy-service2.py:
6983
6984         Add "message" argument to service methods.
6985
6986 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6987
6988         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6989         * dbus/bus.c (dbus_bus_get_unix_user)
6990         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6991         method of org.freedesktop.DBus interface.
6992
6993         * bus/dispatch.c: test case
6994
6995 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
6996
6997         * python/Makefile.am: switched include directory from glib/ to dbus/
6998         since dbus-glib.h moved
6999  
7000 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7001
7002         * configure.in: prevent building the gcj stuff and libxml loader
7003         since they are broken.
7004
7005 2004-06-20  Havoc Pennington  <hp@redhat.com>
7006
7007         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7008         codes from the dbus error names
7009         
7010         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7011         as dbus/dbus-glib.h and that breakage is now visible due to 
7012         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7013         
7014         * glib/dbus-glib.h: s/gproxy/g_proxy/
7015
7016         * dbus/dbus-shared.h: new header to hold stuff shared with
7017         binding APIs
7018         
7019         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7020         than dbus-errors.h
7021
7022         * glib/dbus-glib.h (dbus_set_g_error): move to
7023         dbus-glib-lowlevel.h
7024
7025         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7026         of stuff to enable this
7027
7028         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7029
7030         * a bunch of other changes with the same basic "separate glib 
7031         bindings from dbus.h" theme
7032         
7033 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7034
7035         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7036
7037         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7038
7039 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7040
7041         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7042         the reply value of the ServiceExists message.
7043
7044 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7045
7046         * python/dbus_bindings.pyx.in: No longer need to parse path
7047         elements and pass them as arrays of strings.  The C API now
7048         accepts plain path strings.
7049         (_build_parsed_path): removed 
7050
7051 2004-06-07  Havoc Pennington  <hp@redhat.com>
7052
7053         * doc/TODO: remove auto-activation item since it's done; sort
7054         items by importance/milestone
7055
7056 2004-06-07  Havoc Pennington  <hp@redhat.com>
7057
7058         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7059         random signature when using REQUIRED_FIELDS (this hack won't work
7060         in the long term)
7061
7062         * dbus/dbus-message.c: change the signature to be a header field,
7063         instead of message->signature special-case string. Incremental
7064         step forward. Then we can fix up code to send the signature in the
7065         message, then fix up code to validate said signature, then fix up
7066         code to not put the typecodes inline, etc.
7067         (load_one_message): don't make up the signature after the fact
7068         (decode_header_data): require signature field for the known
7069         message types
7070
7071         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7072
7073         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7074
7075 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7076
7077         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7078
7079         * mono/Handler.cs: Updated to follow new path argument for
7080         (un-)registering objects.
7081
7082         * mono/example/Makefile.am:
7083         * mono/Makefile.am:
7084         * configure.in: Bumped required version for mono and use new -pkg
7085         syntax for deps
7086
7087 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7088
7089         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7090         registration functions take the path argument as char* instead of
7091         char**.
7092
7093         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7094         split off the path decompostion part of
7095         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7096         warnings. 
7097
7098         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7099         
7100 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7101  
7102         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7103         machine approach.  A state is implemented as a function that
7104         handles incoming events as specified for that state.
7105         
7106         * doc/dbus-specification.xml: Update auth protocol state machine
7107         specification to match implementation.  Remove some leftover
7108         base64 examples.
7109
7110 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7111
7112         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7113         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7114         quiet doxygen.
7115
7116         * Doxyfile.in: remove deprecated options.
7117
7118         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7119         glib/test-thread.h, glib/test-thread-client.c,
7120         glib/test-thread-server.c, glib/test-profile.c,
7121         glib/test-dbus-glib.c: remove these unused files.
7122
7123 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7124
7125         * dbus/dbus-object-tree.c
7126         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7127         non-fallback handlers (bug #684).
7128         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7129         (find_subtree_recurse): report wether the returned subtree is an
7130         exact match or a "fallback" match higher up in the tree.
7131         (object_tree_test_iteration): update test case.
7132
7133 2004-06-01  Seth Nickell  <seth@gnome.org>
7134
7135         * python/dbus_bindings.pyx.in:
7136         * python/tests/test-client.py:
7137
7138         Round off basic type support. Add dicts (yay!), and 
7139         remaining array types.
7140
7141         Make MessageIter more general so it works for dicts too.
7142
7143         Mark all loop variables as C integers.
7144         
7145 2004-05-31  Havoc Pennington  <hp@redhat.com>
7146
7147         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7148         "in" before "out"
7149
7150         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7151
7152         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7153         option that runs the tests, and start filling in some code
7154         including for starters just dumping the interfaces to stdout
7155
7156         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7157
7158         * test/data/valid-introspection-files/lots-of-types.xml: test of
7159         an example introspection file
7160
7161         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7162         "node" (I think...)
7163
7164 2004-05-31  Seth Nickell  <seth@gnome.org>
7165
7166         * python/dbus_bindings.pyx.in:
7167         * python/tests/test-client.py:
7168
7169         Test Suite: 1
7170         Python Bindings: 0
7171
7172         Fix string array memory trashing bug... oops...
7173
7174 2004-05-30  Seth Nickell  <seth@gnome.org>
7175
7176         * python/dbus.py:
7177
7178         Add a nicer-but-less-flexible alternate API for handling 
7179         calls to virtual objects in dbus.ObjectTree.
7180
7181         Screw up the argument order to the dbus.Object constructor
7182         for consistency with dbus.ObjectTree (and to make dbus_methods
7183         optional for future extension)
7184         
7185         * python/examples/Makefile.am:
7186         * python/examples/gconf-proxy-service.py:
7187         * python/examples/gconf-proxy-service2.py:
7188
7189         Alternate implementation of gconf-proxy-service using the
7190         nicer dbus.ObjectTree API.
7191         
7192         * python/examples/example-service.py:
7193         * python/tests/test-server.py
7194
7195         Reverse the argument order to deal with dbus.Object constructor
7196         changes.
7197         
7198 2004-05-30  Seth Nickell  <seth@gnome.org>
7199
7200         * python/examples/example-client.py:
7201         * python/examples/example-service.py:
7202
7203         Take it back. Lists seem to work but they're broken
7204         in the test suite. Make the base examples use
7205         lists (works fine).
7206
7207 2004-05-30  Seth Nickell  <seth@gnome.org>
7208
7209         * python/dbus_bindings.pyx.in:
7210         * python/tests/test-client.py:
7211
7212         Add some more tests and fix errors that crop up.
7213         Unfortunately, currently it seems like marshalling
7214         and unmarshalling of lists is completely broken :-(
7215
7216 2004-05-30  Seth Nickell  <seth@gnome.org>
7217
7218         * python/dbus_bindings.pyx.in:
7219
7220         Add support for ObjectPath type.
7221
7222         * python/dbus.py:
7223
7224         Refactor message handling code to a common function.
7225         
7226         * python/tests/test-client.py:
7227         * python/tests/test-server.py:
7228
7229         Add tests that check to make sure values of all types
7230         can be echoed from a service w/o mangling.
7231         
7232 2004-05-29  Seth Nickell  <seth@gnome.org>
7233
7234         * python/dbus.py:
7235
7236         Add ObjectTree class which allows implementation
7237         of trees of "virtual" objects. Basically the python
7238         wrapper for "register_fallback".
7239         
7240         * python/examples/Makefile.am
7241         * python/examples/gconf-proxy-client.py:
7242         * python/examples/gconf-proxy-service.py:
7243
7244         Implement a simple GConf proxy service that supports
7245         get/set on string and int GConf keys using the ObjectTree.
7246         
7247 2004-05-29  Seth Nickell  <seth@gnome.org>
7248
7249         * python/dbus.py:
7250         * python/examples/example-client.py:
7251         * python/examples/example-service.py:
7252         * python/examples/list-system-services.py:
7253
7254         Add SessionBus, SystemBus and ActivationBus classes
7255         so you don't need to know the special little BUS_TYPE
7256         flag.
7257         
7258 2004-05-29  Havoc Pennington  <hp@redhat.com>
7259
7260         * bus/config-parser.c (process_test_valid_subdir): temporarily
7261         stop testing config parser OOM handling, since expat has issues
7262         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7263
7264         * bus/dbus-daemon-1.1.in: change requested_reply to
7265         send_requested_reply/receive_requested_reply so we can send the
7266         replies, not just receive them.
7267
7268         * bus/config-parser.c: parse the new
7269         send_requested_reply/receive_requested_reply
7270
7271         * bus/policy.c (bus_client_policy_check_can_send): add
7272         requested_reply argument and use it
7273
7274         * bus/bus.c (bus_context_check_security_policy): pass through
7275         requested_reply status to message send check
7276
7277         * bus/system.conf.in: adapt to requested_reply change
7278         
7279 2004-05-28  Havoc Pennington  <hp@redhat.com>
7280
7281         * test/glib/test-service-glib.c (main): remove unused variable
7282
7283         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7284
7285         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7286         from the enum, no longer in use.
7287
7288         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7289         works right.
7290
7291         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7292         whether error_name passed in is a valid error name.
7293
7294 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7295
7296         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7297         OBJECT_PATH and OBJECT_PATH_ARRAY
7298
7299 2004-05-28  Seth Nickell  <seth@gnome.org>
7300
7301         * python/examples/Makefile.am:
7302
7303         Forget to add Makefile.am. Do not pass go.
7304
7305 2004-05-28  Michael Meeks  <michael@ximian.com>
7306
7307         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7308         fix no int64 case.
7309
7310         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7311
7312         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7313         (_dbus_message_iter_get_basic_type_array): impl.
7314         drastically simplify ~all relevant _get methods to use these.
7315         (_dbus_message_iter_append_basic_array),
7316         (dbus_message_iter_append_basic): impl
7317         drastically simplify ~all relevant _append methods to use these.
7318
7319         * dbus/dbus-message-builder.c (parse_basic_type) 
7320         (parse_basic_array, lookup_basic_type): impl.
7321         (_dbus_message_data_load): prune scads of duplicate /
7322         cut & paste coding.
7323
7324         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7325         (_dbus_demarshal_basic_type): implement,
7326         (demarshal_and_validate_len/arg): beef up debug.
7327         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7328
7329 2004-05-27  Seth Nickell  <seth@gnome.org>
7330
7331         * configure.in:
7332         * python/Makefile.am:
7333
7334         Include the example python apps in the tarball.
7335         
7336         * python/examples/list-system-services.py
7337
7338         Add a python new example that fetches the list of services
7339         from the system bus.
7340         
7341 2004-05-27  Seth Nickell  <seth@gnome.org>
7342
7343         * python/dbus.py:
7344         * python/dbus_bindings.pyx.in:
7345
7346         Fix failure to notify that a signal was not handled,
7347         resulted in hung functions.
7348         
7349 2004-05-25  Colin Walters  <walters@redhat.com>
7350
7351         * tools/dbus-monitor.c (main): Monitor all types of messages.
7352
7353 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7354
7355         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7356         which unregisters the object path and disposes the handler.
7357
7358 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7359  
7360         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7361          
7362         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7363         operands to && so we call dbus_message_iter_next () for the last
7364         argument also.
7365
7366 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7367
7368         * dbus/dbus-object-tree.c
7369         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7370         children even if the requested path isn't registered.
7371         (object_tree_test_iteration): test object_tree_list_registered.
7372
7373         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7374         it to 0.
7375         
7376 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7377
7378         * doc/TODO: Remove resolved items.
7379
7380         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7381         field.
7382         
7383         * bus/connection.c (bus_connections_expect_reply): Enforce the
7384         per-connection limit on pending replies.
7385         
7386         Patch from Jon Trowbridge <trow@ximian.com>:
7387  
7388         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7389         up a watch that triggers a config reload when one end of the pipe
7390         becomes readable.
7391         (signal_handler): Instead of doing the config reload in our SIGHUP
7392         handler, just write to the reload pipe and let the associated
7393         watch handle the reload when control returns to the main loop.
7394  
7395         * bus/driver.c (bus_driver_handle_reload_config): Added.
7396         Implements a ReloadConfig method for requesting a configuration
7397         file reload via the bus driver.
7398  
7399 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7400
7401         * HACKING: Updated release instructions concerning the wiki page.
7402
7403 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7404
7405         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7406         filter against auth->allowed_mechs; we only add allowed mechs in
7407         record_mechanisms().
7408  
7409         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7410         ALLOWED_MECHS to auth-script format so we can set the list of
7411         allowed mechanisms.
7412  
7413         * data/auth/client-out-of-mechanisms.auth-script: New test to
7414         check client disconnects when it is out of mechanisms to try.
7415  
7416         * dbus/dbus-auth.c (process_command): Remove check for lines
7417         longer that 1 MB; we only buffer up maximum 16 kB.
7418  
7419         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7420         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7421         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7422         assume there might be unused bytes.
7423  
7424         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7425         client-out-of-mechs, it is handled in process_reject(). Move check
7426         for max failures to send_rejected(), as it's a server-only thing.
7427
7428         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7429         send_auth(), send_data(), send_rejected(), send_error(),
7430         send_ok(), send_begin() and send_cancel().
7431
7432 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7433
7434         Remove base64 encoding, replace with hex encoding. Original patch
7435         from trow@ximian.com, added error handling.
7436
7437         * dbus/dbus-string.c (_dbus_string_base64_encode)
7438         (_dbus_string_base64_decode): Remove.
7439         (_dbus_string_hex_decode): Add end_return argument so we can
7440         distinguish between OOM and invalid hex encoding.
7441         (_dbus_string_test): Remove base64 tests and add test case for
7442         invalid hex.
7443
7444         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7445         Replace base64 with hex.
7446
7447         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7448         for invalid hex encoded data in auth protocol.
7449
7450 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7451
7452         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7453         leak.
7454
7455 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7456
7457         * mono/dbus-sharp.dll.config.in: Added for GAC
7458         * mono/dbus-sharp.snk: Added for GAC
7459         * mono/Assembly.cs.in: Added for GAC
7460         * mono/Makefile.am: Changes for GAC installation        
7461         * configure.in: Added refs for dbus-sharp.dll.config.in and
7462         Assembly.cs.in. More fixes for mono testing
7463         * mono/example/Makefile.am: Changed var to CSC
7464         * Makefile.am: Changed flag name to DBUS_USE_CSC
7465
7466 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7467
7468         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7469         * mono/doc/*: Added documentation framework
7470         * configure.in: Added monodoc check
7471         * README: Added description of mono configure flags
7472
7473 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7474
7475         * doc/dbus-specification.xml: Added a "Required" column to the 
7476         header fields table and changed the "zero or more" verbage in
7477         the above paragraph to read "The header must contain the required 
7478         named header fields and zero or more of the optional named header 
7479         fields".
7480         * test/data/invalid-messages/*.message: Added the required PATH 
7481         named header field to the tests so that they don't fail on 
7482         'Missing path field'
7483
7484 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7485
7486         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7487         the stack by implicitly defining variable and parameter types and
7488         removing the hack of defining C pointers as python objects and later
7489         casting them.
7490
7491 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7492
7493         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7494
7495 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7496
7497         * mono/DBusType/Dict.cs: Handle empty dicts
7498         * mono/DBusType/Array.cs: Handle empty arrays
7499         * mono/Arguments.cs: Handle empty arguments
7500
7501 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7502
7503         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7504         field
7505
7506 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7507
7508         * test/data/valid-messages/standard-*.message: Update message
7509         test scripts to new header field names.
7510
7511 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7512
7513         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7514         overflow to times_we_did_each_thing array which would chop off the
7515         first character of the failure_dir string. Increased the size of
7516         the array to 7 to reflect the number of random mutation functions
7517         we have.
7518
7519 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7520
7521         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7522         unix_server->watch here, it is unreffed in disconnect.
7523         (_dbus_server_new_for_tcp_socket): convert NULL host to
7524         "localhost" here so we don't append NULL to address.
7525         
7526         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7527         various addresses, including tcp with no explicit host.
7528
7529 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7530
7531         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7532         fix incorrect setting of .name_offset in the HeaderField (it was
7533         off by two bytes, positioned right after the name and typecode)
7534
7535         * bus/bus.c (bus_context_new, bus_context_unref): test before
7536         calling dbus_server_free_data_slot and _dbus_user_database_unref
7537         in case of an error.
7538
7539         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7540         by libdbus-gtool.
7541
7542 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7543
7544         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7545         _dbus_poll() instead of select().
7546
7547 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7548
7549         * bus/main.c (signal_handler): Reload the configuration files
7550         on SIGHUP.
7551         (main): Set up our SIGHUP handler.
7552
7553         * bus/bus.c (struct BusContext): Store the config file, user and
7554         fork flag in the BusContext.
7555         (process_config_first_time_only): Added.  Contains the code
7556         (previously in bus_context_new) for setting up the BusContext from
7557         the BusConfigParser that should only be run the first time the
7558         config files are read.
7559         (process_config_every_time): Added.  Contains the code (previously
7560         in bus_context_new) for setting up the BusContext from the
7561         BusConfigParser that should be run every time the config files are
7562         read.
7563         (load_config): Added.  Builds a BusConfigParser from the config
7564         files and passes the resulting structure off to
7565         process_config_first_time_only (assuming this is the first time)
7566         and process_config_every_time.
7567         (bus_context_new): All of the config-related code has been moved
7568         to process_config_first_time_only and process_config_every_time.
7569         Now this function just does the non-config-related initializations
7570         and calls load_config.
7571         (bus_context_reload_config): Added.
7572
7573 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7574
7575         * bus/driver.c (bus_driver_handle_get_service_owner):
7576         implement a GetServiceOwner method.
7577         * doc/dbus-specification.xml: document it.
7578         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7579         
7580         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7581         implement, using the bus GetServiceOwner method.
7582
7583         * test/glib/test-dbus-glib.c:
7584         use dbus_gproxy_new_for_service_owner so that we can receive the
7585         signal. 
7586
7587 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7588
7589         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7590         dbus/dbus-message.c, dbus/dbus-protocol.h
7591         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7592
7593         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7594         dbus/dbus-message.c, dbus/dbus-protocol.h
7595         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7596
7597         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7598         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7599         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7600
7601         * doc/dbus-specification.xml (Header Fields Table):
7602         s/SERVICE/DESTINATION
7603         s/SENDER_SERVICE/SENDER
7604
7605
7606 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7607
7608         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7609         a few seconds.
7610
7611 2004-04-13  Michael Meeks  <michael@ximian.com>
7612
7613         * glib/dbus-gobject.c (handle_introspect): split out
7614         (introspect_properties): this.
7615         (handle_introspect): implement this.
7616
7617         * test/glib/Makefile.am: use the absolute path so the bus
7618         daemon's chdir ("/") doesn't kill us dead.
7619
7620         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7621
7622 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7623
7624         * bus/config-parser.c (struct BusConfigParser): Added
7625         included_files field.
7626         (seen_include): Added.  Checks whether or not a file has already
7627         been included by any parent BusConfigParser.
7628         (bus_config_parser_new): Copy the parent's included_files.
7629         (include_file): Track which files have been included, and fail on
7630         circular inclusions.
7631         (process_test_valid_subdir): Changed printf to report if we are
7632         testing valid or invalid conf files.
7633         (all_are_equiv): Changed printf to be a bit clearer about
7634         what we are actually doing.
7635         (bus_config_parser_test): Test invalid configuration files.
7636
7637 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7638
7639         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7640         argument.  If non-null, the newly-constructed BusConfigParser will
7641         be initialized with the parent's BusLimits instead of the default
7642         values.
7643         (include_file): When including a config file, pass in
7644         the current parser as the parent and then copy the BusLimits
7645         from the included BusConfigParser pack to the current parser.
7646         (process_test_valid_subdir): Renamed from process_test_subdir.
7647         (process_test_equiv_subdir): Added.  Walks through a directory,
7648         descending into each subdirectory and loading the config files
7649         it finds there.  If any subdirectory contains two config files
7650         that don't produce identical BusConfigParser structs, fail.
7651         For now, the BusConfigParser's BusPolicies are not compared.
7652         (bus_config_parser_test): Call both process_test_valid_subdir and
7653         process_test_equiv_subdir.
7654
7655         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7656         argument and pass it along to the call to bus_config_parser_new.
7657         Also made a few small changes to allow this code to compile.
7658
7659         * bus/config-loader-expat.c (bus_config_load): Take a parent
7660         argument and pass it along to the call to bus_config_parser_new.
7661
7662         * bus/bus.c (bus_context_new): Load the config file
7663         with a NULL parent argument.
7664
7665 2004-03-29  Michael Meeks  <michael@ximian.com>
7666
7667         * glib/dbus-gobject.c (introspect_properties): split
7668         out, fix mangled 'while' flow control.
7669         (introspect_signals): implement.
7670         (handle_introspect): update.
7671
7672 2004-03-29  Michael Meeks  <michael@ximian.com>
7673
7674         * glib/dbus-gobject.c (set_object_property): split out / 
7675         re-work, use the property type, and not the message type(!)
7676         (get_object_property): ditto.
7677
7678         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7679         (dbus_gvalue_marshal): make this code re-usable, needed
7680         for signals too, also on both proxy and server side.
7681         Re-write for more efficiency / readability.
7682
7683 2004-03-29  Michael Meeks  <michael@ximian.com>
7684
7685         * dbus/dbus-message.c
7686         (dbus_message_new_error_printf): impl.
7687
7688         * dbus/dbus-connection.c
7689         (dbus_connection_unregister_object_path): fix warning.
7690
7691         * configure.in: fix no-mono-installed situation.
7692
7693 2004-03-27  Havoc Pennington  <hp@redhat.com>
7694
7695         Patch from Timo Teräs:
7696         
7697         * tools/dbus-send.c (main): if --print-reply, assume type is
7698         method call; support boolean type args
7699         
7700         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7701         bunch of memleak and logic bugs
7702         
7703 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7704
7705         * mono/Arguments.cs:
7706         * mono/Introspector.cs:
7707         * mono/Handler.cs:
7708         * mono/InterfaceProxy.cs:
7709         * mono/Message.cs
7710         * mono/ProxyBuilder.cs:
7711         * mono/Service.cs:
7712         Added InterfaceProxy class to avoid building proxies for every
7713         object.
7714
7715         * dbus-message.h:
7716         * dbus-message.c (dbus_message_append_args_valist)
7717         (dbus_message_iter_get_object_path)
7718         (dbus_message_iter_get_object_path_array)
7719         (dbus_message_iter_append_object_path)
7720         (dbus_message_iter_append_object_path_array):
7721         Added object_path iter functions to handle OBJECT_PATH arguments
7722         
7723 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7724
7725         First checkin of mono bindings.
7726         * configure.in:
7727         * Makefile.am:
7728         Build stuff for the bindings
7729         * dbus-sharp.pc.in: Added for pkgconfig
7730         
7731 2004-03-21  Havoc Pennington  <hp@redhat.com>
7732
7733         * test/test-service.c (main): remove debug spew
7734
7735 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7736
7737         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7738         arrays
7739
7740         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7741         (dbus_message_iter_init_array_iterator)
7742         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7743         indicate whether the iterator is empty
7744
7745         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7746         warnings
7747
7748 2004-03-19  Havoc Pennington  <hp@redhat.com>
7749
7750         * NEWS: 0.21 updates
7751
7752         * configure.in: 0.21
7753
7754         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7755         
7756         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7757         you don't need pyrex to make dist
7758
7759         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7760         sources; run moc
7761         
7762 2004-03-18  Richard Hult  <richard@imendio.com>
7763
7764         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7765         (dbus_message_set_auto_activation): Add doxygen docs.
7766
7767 2004-03-16  Richard Hult  <richard@imendio.com>
7768
7769         * bus/activation.c: (bus_activation_service_created),
7770         (bus_activation_send_pending_auto_activation_messages),
7771         (bus_activation_activate_service):
7772         * bus/activation.h:
7773         * bus/dispatch.c: (bus_dispatch),
7774         (check_nonexistent_service_auto_activation),
7775         (check_service_auto_activated),
7776         (check_segfault_service_auto_activation),
7777         (check_existent_service_auto_activation), (bus_dispatch_test):
7778         * bus/driver.c: (bus_driver_handle_activate_service):
7779         * bus/services.c: (bus_registry_acquire_service):
7780         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7781         (dbus_message_get_auto_activation):
7782         * dbus/dbus-message.h:
7783         * dbus/dbus-protocol.h: Implement auto-activation.
7784         
7785         * doc/dbus-specification.xml: Add auto-activation to the spec.
7786
7787 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7788
7789         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7790         fix a bug with CUSTOM types.
7791
7792         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7793         a unit test for this bug (used to fail).
7794
7795 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7796
7797         * bus/activation.c:
7798         (babysitter_watch_callback): notify all pending activations waiting for
7799           the same exec that the activation failed.
7800         (bus_activation_activate_service): shortcut the activation if we 
7801           already waiting for the same executable to start up.
7802
7803 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7804
7805         * bus/activation.c: 
7806         - Added service file reloading. 
7807           Each service files directory is kept in an hash table in 
7808           BusActivation and each BusActivationEntry knows what .service-file it
7809           was read from. So when you try to activate a service the bus will 
7810           check if it's been updated, removed or if new .service-files has 
7811           been installed.
7812         - Test code at the bottom for the service file reloading.
7813         * bus/test-main.c: (main):
7814         * bus/test.h:
7815         - added service reloading test.
7816         * dbus/dbus-sysdeps.c: 
7817         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7818
7819 2004-03-08  Michael Meeks  <michael@ximian.com>
7820
7821         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7822         bail immediately if disconnected, to avoid busy loop.
7823
7824         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7825         cleanup cut/paste/inefficiency.
7826
7827 2004-03-01  David Zeuthen  <david@fubar.dk>
7828
7829         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7830         bug where args were used twice. This bug resulted in a segfault
7831         on a Debian/PPC system when starting the messagebus daemon. Include
7832         dbus-sysdeps.h for DBUS_VA_COPY
7833
7834         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7835
7836         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7837         appropriate va_copy implementation. From GLib
7838         
7839 2004-02-24  Joe Shaw  <joe@ximian.com>
7840
7841         * bus/services.c (bus_registry_acquire_service): We need to pass
7842         in the service name to dbus_set_error() to prevent a crash.
7843
7844 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7845
7846         * AUTHORS: Reveal my True identity.
7847
7848 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7849
7850         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7851         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7852
7853 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7854
7855         * doc/TODO: Added not about better error check of configuration files.
7856
7857 2003-12-02  Richard Hult  <richard@imendio.com>
7858
7859         * Update AFL version to 2.0 throughout the source files to reflect
7860         the update that was done a while ago.
7861
7862 2003-12-02  Richard Hult  <richard@imendio.com>
7863
7864         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7865         wrote_dict_key to FALSE on the iter that the dict is appended to,
7866         just like when appending other types. Fixes a bug where a dict
7867         couldn't be put inside a dict.
7868         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7869         (message_iter_test, _dbus_message_test): Add test case for dict
7870         inside dict.
7871
7872 2003-12-01  David Zeuthen  <david@fubar.dk>
7873
7874         * python/dbus.py: Add the actual message when calling the reciever
7875         of a signal such that parameters can be inspected. Add the method
7876         remove_signal_receiver
7877         
7878 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7879
7880         * bus/*.[ch]:
7881         * dbus/*.[ch]:
7882         * glib/*.[ch]: Made ref functions return the pointer
7883
7884 2003-11-25  Zack Rusin  <zack@kde.org>
7885
7886         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7887
7888         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7889         wrappers,
7890
7891         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7892         the Integrator and to better fit with the server,
7893
7894 2003-11-24  Zack Rusin  <zack@kde.org>
7895
7896         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7897         the integrator handles it now
7898
7899         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7900         since QTimer wasn't really meant to be used the way DBusTimeout is
7901
7902 2003-11-24  Zack Rusin  <zack@kde.org>
7903
7904         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7905         Integrator class which integrates D-BUS with the Qt event loop,
7906
7907         * qt/connection.h, qt/connection.cpp: Move all the code which
7908         was dealing with D-BUS integration to the Integrator class,
7909         and start using Integrator,
7910
7911 2003-11-23  Zack Rusin  <zack@kde.org>
7912
7913         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7914         wrapper
7915
7916         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7917         switching namespaces to DBusQt, reworking the class,
7918
7919         * Makefile.cvs: switching dependencies so that it matches KDE 
7920         schematics,
7921         
7922         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7923         the library
7924
7925 2003-11-19  Havoc Pennington  <hp@redhat.com>
7926
7927         * NEWS: update
7928
7929         * configure.in: bump version to 0.20
7930
7931         * configure.in (have_qt): add yet another place to look for qt
7932         (someone hand trolltech a .pc file...)
7933
7934 2003-11-01  Havoc Pennington  <hp@redhat.com>
7935
7936         * doc/dbus-specification.xml: add state machine docs on the auth
7937         protocol; just a first draft, I'm sure it's wrong.      
7938
7939 2003-10-28  David Zeuthen  <david@fubar.dk>
7940
7941         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7942         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7943         
7944 2003-10-28  Havoc Pennington  <hp@redhat.com>
7945
7946         * dbus/dbus-message.c (get_next_field): delete unused function
7947
7948 2003-10-28  Havoc Pennington  <hp@redhat.com>
7949
7950         * bus/expirelist.c (do_expiration_with_current_time): detect
7951         failure of the expire_func due to OOM
7952
7953         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7954
7955         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7956         NoReply error that's now created by the bus when the service exits
7957
7958 2003-10-28  Havoc Pennington  <hp@redhat.com>
7959
7960         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7961         tests for set_path, set_interface, set_member, etc.
7962
7963         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7964
7965         * dbus/dbus-message.c (set_string_field): always just delete and
7966         re-append the field; accept NULL for deletion
7967         (re_align_fields_recurse): reimplement
7968         
7969 2003-10-26  Havoc Pennington  <hp@redhat.com>
7970
7971         * dbus/dbus-connection.c: fix docs to properly describe the
7972         disconnected message
7973         (_dbus_connection_notify_disconnected): remove this function; 
7974         we can't synchronously add the disconnected message, we have to 
7975         do it after we've queued any remaining real messages
7976         (_dbus_connection_get_dispatch_status_unlocked): queue the
7977         disconnect message only if the transport has finished queueing all
7978         its real messages and is disconnected.
7979         (dbus_connection_disconnect): update the dispatch status here
7980
7981 2003-10-22  Havoc Pennington  <hp@redhat.com>
7982
7983         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7984
7985         * bus/connection.c (bus_transaction_send_from_driver): set the
7986         destination to the connection's base service
7987
7988 2003-10-20  Havoc Pennington  <hp@redhat.com>
7989
7990         hmm, make check is currently not passing.
7991         
7992         * doc/dbus-specification.xml: add requirement that custom type
7993         names follow the same rules as interface names.
7994
7995         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
7996         duplication and allow 'c' to be 'custom'; dict is now 'm' for
7997         'map'
7998
7999         * doc/dbus-specification.xml: update type codes to match
8000         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8001         CUSTOM. Add type OBJECT_PATH to the spec.
8002
8003 2003-10-17  Havoc Pennington  <hp@redhat.com>
8004
8005         * bus/driver.c (create_unique_client_name): use "." as separator
8006         in base service names instead of '-'
8007
8008         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8009         byte at the end of the string
8010
8011         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8012         optimization macros since string validation seems to be a slow
8013         point.
8014         
8015         * doc/dbus-specification.xml: restrict valid
8016         service/interface/member/error names. Add test suite code for the
8017         name validation.
8018
8019         * dbus/dbus-string.c: limit service/interface/member/error names 
8020         to [0-9][A-Z][a-z]_
8021
8022         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8023         format arg to verbose spew
8024
8025         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8026         memory, return instead of g_error
8027
8028         * test/test-service.c (path_message_func): support emitting a
8029         signal on request
8030
8031         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8032         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8033         assuming the activation bus was the session bus so that services
8034         started manually will still register.
8035         (init_connections_unlocked): fix so that in OOM situation we get
8036         the same semantics when retrying the function
8037         
8038         * test/test-service.c (main): change to use path registration, to
8039         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8040         than DBUS_BUS_SESSION
8041
8042 2003-10-16  Havoc Pennington  <hp@redhat.com>
8043
8044         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8045
8046         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8047         coverage of the tests
8048         (coverage-report.txt): don't move the .da and .bbg files around
8049
8050 2003-10-16  Havoc Pennington  <hp@redhat.com>
8051
8052         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8053         to put there
8054
8055 2003-10-16  Havoc Pennington  <hp@redhat.com>
8056
8057         * bus/connection.c (bus_pending_reply_expired): either cancel or
8058         execute, not both
8059         (bus_connections_check_reply): use unlink, not remove_link, as we
8060         don't want to free the link; fixes double free mess
8061
8062         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8063         where no reply was received
8064
8065         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8066         fix a refcount leak
8067
8068         * bus/signals.c (match_rule_matches): add special cases for the
8069         bus driver, so you can match on sender/destination for it.
8070
8071         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8072         DBUS_PRINT_BACKTRACE is set
8073
8074         * dbus/dbus-internals.c: add pid to assertion failure messages
8075
8076         * dbus/dbus-connection.c: add message type code to the debug spew
8077
8078         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8079         sender=foo not service=foo
8080
8081         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8082         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8083         DBUS_ACTIVATION_ADDRESS instead
8084
8085         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8086         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8087
8088         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8089         context struct
8090
8091         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8092         (dbus_message_iter_get_object_path_array): new function (half
8093         finished, disabled for the moment)
8094         
8095         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8096         DBUS_MESSAGE_TYPE_ERROR
8097
8098         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8099         avoid redirecting stderr to /dev/null
8100         (babysit): close stdin if not doing the "exit_with_session" thing
8101
8102         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8103         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8104         stdout/stdin, so things don't get confused
8105         
8106         * bus/system.conf.in: fix to allow replies, I modified .conf
8107         instead of .conf.in again.
8108
8109 2003-10-14  David Zeuthen  <david@fubar.dk>
8110
8111         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8112         argtype to arg_type when raising unknown arg type exception.
8113         Changed type list to reflect the changes in dbus-protocol.h so 
8114         the bindings actually work.
8115
8116 2003-10-14  Havoc Pennington  <hp@redhat.com>
8117
8118         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8119         to have a bug keeping it from outputting the .da files sometimes
8120         (string_get_string): don't append garbage nul bytes to the string.
8121
8122 2003-10-15  Seth Nickell  <seth@gnome.org>
8123
8124         * python/Makefile.am:
8125
8126         Include dbus_h_wrapper.h in the dist tarball.
8127
8128 2003-10-14  Havoc Pennington  <hp@redhat.com>
8129
8130         * bus/bus.c (bus_context_check_security_policy): revamp this to
8131         work more sanely with new policy-based requested reply setup
8132
8133         * bus/connection.c (bus_transaction_send_from_driver): set bus
8134         driver messages as no reply
8135
8136         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8137         requested_reply attribute on allow/deny rules
8138
8139         * bus/system.conf: add <allow requested_reply="true"/>
8140
8141         * bus/driver.c (bus_driver_handle_message): fix check for replies
8142         sent to the bus driver, which was backward. How did this ever work
8143         at all though? I think I'm missing something.
8144
8145         * dbus/dbus-message.c (decode_header_data): require error and
8146         method return messages to have a reply serial field to be valid
8147         (_dbus_message_loader_queue_messages): break up this function;
8148         validate that reply serial and plain serial are nonzero; 
8149         clean up the OOM/error handling.
8150         (get_uint_field): don't return -1 from this
8151         (dbus_message_create_header): fix signed/unsigned bug
8152
8153         * bus/connection.c (bus_connections_expect_reply): save serial of
8154         the incoming message, not reply serial
8155
8156 2003-10-14  Havoc Pennington  <hp@redhat.com>
8157
8158         * bus/connection.c: implement pending reply tracking using
8159         BusExpireList
8160
8161         * bus/bus.c (bus_context_check_security_policy): verify that a
8162         reply is pending in order to allow a reply to be sent. Deny 
8163         messages of unknown type.
8164
8165         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8166
8167         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8168         (bus_context_get_reply_timeout): new
8169
8170 2003-10-13  Seth Nickell  <seth@gnome.org>
8171
8172         * python/Makefile.am:
8173
8174         Pass "make distcheck": remove a couple files from DIST_FILES
8175         that weren't included in the final version.
8176
8177 2003-10-12  Havoc Pennington  <hp@pobox.com>
8178
8179         Added test code that 1) starts an actual bus daemon and 2) uses
8180         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8181         more testing possible, but this is the basic framework.
8182         
8183         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8184         empty proxy lists from the proxy list hash
8185
8186         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8187         couple of return_if_fail checks
8188
8189         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8190         to allocate, so everything is cleared to NULL as it should be.
8191
8192         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8193         source as data to dbus_connection_set_timeout_functions() as the 
8194         timeout functions expected
8195
8196         * test/glib/run-test.sh: add a little script to start up a message
8197         bus and run tests using it
8198
8199         * tools/dbus-launch.1: updates
8200
8201         * tools/dbus-launch.c (main): add --config-file option
8202
8203         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8204         that could never be reached.
8205
8206         * dbus/dbus-message.c (dbus_message_new_method_return) 
8207         (dbus_message_new_error, dbus_message_new_signal): set the
8208         no-reply-expected flag on all these. Redundant, but may
8209         as well be consistent.
8210
8211 2003-10-11  Havoc Pennington  <hp@pobox.com>
8212
8213         * test/decode-gcov.c (function_solve_graph): make broken block
8214         graph a nonfatal error since it seems to be broken. Need to debug
8215         this.
8216
8217         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8218         can't just check type > INVALID < LAST anymore
8219
8220         * dbus/dbus-message.c (dbus_message_get_signature): new function
8221         (dbus_message_has_signature): new function
8222         (struct DBusMessage): add signature field (right now it isn't sent
8223         over the wire, just generated on the fly)
8224         (dbus_message_copy): copy the signature, and init strings to
8225         proper length to avoid some reallocs
8226         (dbus_message_iter_init_array_iterator): return void, since it
8227         can't fail
8228         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8229         (_dbus_message_loader_queue_messages): add silly temporary hack to
8230         fill in message->signature on load
8231
8232         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8233         characters, so they are relatively human-readable.
8234
8235 2003-10-11  Havoc Pennington  <hp@pobox.com>
8236
8237         * dbus/dbus-message.c (_dbus_message_test): add more test
8238         coverage, but #if 0 for now since they uncover a bug 
8239         not fixed yet; I think in re_align_field_recurse()
8240         (re_align_field_recurse): add FIXME about broken assertion
8241
8242         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8243
8244         * bus/connection.c: share a couple code bits with expirelist.c
8245
8246         * bus/expirelist.h, bus/expirelist.c: implement a generic
8247         expire-items-after-N-seconds facility, was going to share between
8248         expiring connections and replies, decided not to use for expiring
8249         connections for now.
8250
8251         * COPYING: include AFL 2.0 (still need to change all the file headers)
8252
8253 2003-10-09  Havoc Pennington  <hp@redhat.com>
8254
8255         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8256         gcc 3.3. Not that we do anything about it yet.
8257
8258         * bus/signals.c (bus_match_rule_parse): impose max length on the
8259         match rule text
8260
8261         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8262
8263 2003-10-09  Havoc Pennington  <hp@redhat.com>
8264
8265         Make matching rules theoretically work (add parser).
8266         
8267         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8268         the case where destination is explicitly specified as bus driver
8269         and someone else is eavesdropping.
8270         
8271         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8272         definition of eavesdropping and assertion
8273
8274         * tools/dbus-send.c (main): use dbus_message_type_from_string
8275
8276         * bus/signals.c (bus_match_rule_parse): implement
8277
8278         * dbus/dbus-message.c (dbus_message_type_from_string): new
8279
8280         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8281
8282 2003-10-02  Havoc Pennington  <hp@pobox.com>
8283
8284         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8285         dbus_gproxy_oneway_call
8286
8287         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8288         (dbus_server_setup_with_g_main): fix to allow calling them more
8289         than once on the same args
8290         (dbus_bus_get_with_g_main): new function
8291
8292 2003-10-02  Havoc Pennington  <hp@redhat.com>
8293
8294         * doc/dbus-tutorial.xml: write some stuff
8295
8296 2003-09-29  Havoc Pennington  <hp@pobox.com>
8297
8298         * configure.in: split checks for Doxygen from XML docs, check for
8299         xmlto
8300
8301         * doc/Makefile.am: XML-ify all the docs, and add a blank
8302         dbus-tutorial.xml
8303
8304 2003-09-29  Havoc Pennington  <hp@pobox.com>
8305
8306         * Merge dbus-object-names branch. To see the entire patch 
8307         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8308         it's huuuuge though.
8309         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8310         
8311 2003-09-28  Havoc Pennington  <hp@pobox.com>
8312
8313         * HACKING: update to reflect new server
8314
8315 2003-09-26  Seth Nickell  <seth@gnome.org>
8316
8317         * python/dbus.py:
8318         * python/examples/example-signals.py:
8319
8320         Start implementing some notions of signals. The API
8321         is really terrible, but they sort of work (with the
8322         exception of being able to filter by service, and to
8323         transmit signals *as* a particular service). Need to
8324         figure out how to make messages come from the service
8325         we registered :-(
8326         
8327         * python/dbus_bindings.pyx.in:
8328
8329         Removed duplicate message_handler callbacks.
8330         
8331 2003-09-25  Havoc Pennington  <hp@redhat.com>
8332
8333         * bus/session.conf.in: fix my mess
8334
8335 2003-09-25  Havoc Pennington  <hp@pobox.com>
8336
8337         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8338
8339 2003-09-25  Seth Nickell  <seth@gnome.org>
8340
8341         * python/examples/example-service.py:
8342
8343         Johan notices complete wrong code in example-service, but
8344         completely wrong in a way that works exactly the same (!).
8345         Johan is confused, how could this possibly work? Example
8346         code fails to serve purpose of making things clear.
8347         Seth fixes.
8348
8349 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8350
8351         * doc/dbus-specification.sgml: don't require header fields
8352         to be 4-byte aligned and specify that fields should be
8353         distinguished from padding by the fact that zero is not
8354         a valid field name.
8355         
8356         * doc/TODO: remove re-alignment item and add item to doc
8357         the OBJECT_PATH type.
8358         
8359         * dbus/dbus-message.c:
8360         (HeaderField): rename the original member to value_offset
8361         and introduce a name_offset member to keep track of where
8362         the field actually begins.
8363         (adjust_field_offsets): remove.
8364         (append_int_field), (append_uint_field),
8365         (append_string_field): don't align the start of the header
8366         field to a 4-byte boundary.
8367         (get_next_field): impl finding the next marhsalled field
8368         after a given field.
8369         (re_align_field_recurse): impl re-aligning a number of
8370         already marshalled fields.
8371         (delete_field): impl deleting a field of any type and
8372         re-aligning any following fields.
8373         (delete_int_or_uint_field), (delete_string_field): remove.
8374         (set_int_field), (set_uint_field): no need to re-check
8375         that we have the correct type for the field.
8376         (set_string_field): ditto and impl re-aligning any
8377         following fields.
8378         (decode_header_data): update to take into account that
8379         the fields aren't 4-byte aligned any more and the new
8380         way to distinguish padding from header fields. Also,
8381         don't exit when there is too much header padding.
8382         (process_test_subdir): print the directory.
8383         (_dbus_message_test): add test to make sure a following
8384         field is re-aligned correctly after field deletion.
8385         
8386         * dbus/dbus-string.[ch]:
8387         (_dbus_string_insert_bytes): rename from insert_byte and
8388         allow the insert of multiple bytes.
8389         (_dbus_string_test): test inserting multiple bytes.
8390
8391         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8392         warning note to docs about having to re-align any
8393         marshalled values following the string.
8394         
8395         * dbus/dbus-message-builder.c:
8396         (append_string_field), (_dbus_message_data_load):
8397         don't align the header field.
8398         
8399         * dbus/dbus-auth.c: (process_test_subdir): print the
8400         directory.
8401         
8402         * test/break-loader.c: (randomly_add_one_byte): upd. for
8403         insert_byte change.
8404         
8405         * test/data/invalid-messages/bad-header-field-alignment.message:
8406         new test case.
8407         
8408         * test/data/valid-messages/unknown-header-field.message: shove
8409         a dict in the unknown field.
8410
8411 2003-09-25  Seth Nickell  <seth@gnome.org>
8412
8413         * python/dbus.py:
8414         * python/dbus_bindings.pyx.in:
8415
8416         Handle return values.
8417         
8418         * python/examples/example-client.py:
8419         * python/examples/example-service.py:
8420
8421         Pass back return values from the service to the client.
8422         
8423 2003-09-24  Seth Nickell  <seth@gnome.org>
8424
8425         * python/dbus.py:
8426
8427         Connect Object methods (when you are sharing an object) up... pass
8428         in a list of methods to be shared. Sharing all the methods just
8429         worked out too weird. You can now create nice Services over the
8430         DBus in Python. :-)
8431         
8432         * python/dbus_bindings.pyx.in:
8433
8434         Keep references to user_data tuples passed into C functions so 
8435         Python doesn't garbage collect on us.
8436
8437         Implement MethodReturn and Error subclasses of Message for creating
8438         DBusMessage's of those types.
8439         
8440         * python/examples/example-client.py:
8441         * python/examples/example-service.py:
8442
8443         Simple example code showing both how create DBus services and objects,
8444         and how to use them.
8445
8446 2003-09-23  Havoc Pennington  <hp@pobox.com>
8447
8448         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8449
8450 2003-09-23  Havoc Pennington  <hp@redhat.com>
8451
8452         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8453         (dbus_gproxy_disconnect_signal): implement
8454         (dbus_gproxy_manager_remove_signal_match): implement
8455         (dbus_gproxy_manager_add_signal_match): implement
8456         (dbus_gproxy_oneway_call): implement
8457
8458 2003-09-23  Havoc Pennington  <hp@pobox.com>
8459
8460         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8461         subclass. This means dropping the transparent thread safety of the
8462         proxy; you now need a separate proxy per-thread, or your own
8463         locking on the proxy. Probably right anyway.
8464         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8465
8466 2003-09-22  Havoc Pennington  <hp@redhat.com>
8467
8468         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8469
8470 2003-09-21  Seth Nickell  <seth@gnome.org>
8471
8472         First checkin of the Python bindings.
8473         
8474         * python/.cvsignore:
8475         * python/Makefile.am:
8476         * python/dbus_bindings.pyx.in:
8477         * python/dbus_h_wrapper.h:
8478
8479         Pieces for Pyrex to operate on, building a dbus_bindings.so
8480         python module for low-level access to the DBus APIs.
8481         
8482         * python/dbus.py:
8483
8484         High-level Python module for accessing DBus objects.
8485
8486         * configure.in:
8487         * Makefile.am:
8488
8489         Build stuff for the python bindings.
8490
8491         * acinclude.m4:
8492
8493         Extra macro needed for finding the Python C header files.
8494
8495 2003-09-21  Havoc Pennington  <hp@pobox.com>
8496
8497         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8498         implementing the proxy manager, didn't get very far.
8499
8500         * dbus/dbus-bus.c (dbus_bus_add_match): new
8501         (dbus_bus_remove_match): new
8502
8503         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8504         path_name argument; adjust the other not-yet-implemented 
8505         gproxy constructors to be what I think they should be.
8506
8507 2003-09-21  Havoc Pennington  <hp@pobox.com>
8508
8509         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8510         by default for message bus connections.
8511
8512         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8513         exit_on_disconnect flag is set and we process the disconnected
8514         signal.
8515         (dbus_connection_set_exit_on_disconnect): new function
8516
8517 2003-09-21  Havoc Pennington  <hp@pobox.com>
8518
8519         Get matching rules mostly working in the bus; only actually
8520         parsing the rule text remains. However, the client side of
8521         "signal connections" hasn't been started, this patch is only the
8522         bus side.
8523         
8524         * dbus/dispatch.c: fix for the matching rules changes
8525         
8526         * bus/driver.c (bus_driver_handle_remove_match)
8527         (bus_driver_handle_add_match): send an ack reply from these
8528         method calls
8529
8530         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8531         arguments, reported by Seth Nickell
8532
8533         * bus/config-parser.c (append_rule_from_element): support
8534         eavesdrop=true|false attribute on policies so match rules 
8535         can be prevented from snooping on the system bus.
8536
8537         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8538         and "destination" in attribute names; fix some docs bugs; 
8539         add eavesdrop=true|false attribute
8540
8541         * bus/driver.c (bus_driver_handle_add_match)
8542         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8543         messages
8544
8545         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8546         rid of broadcast service concept, signals are just always broadcast
8547
8548         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8549         mostly implement matching rules stuff (currently only exposed as signal
8550         connections)
8551
8552 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8553
8554         * doc/dbus-specification.sgml: Change the header field name
8555         to be an enum and update the rest of the spec to reference
8556         the fields using the conventinal name.
8557
8558         * dbus/dbus-protocol.h: update to reflect the spec.
8559
8560         * doc/TODO: add item to remove the 4 byte alignment requirement.
8561         
8562         * dbus/dbus-message.c: Remove the code to generalise the
8563         header/body length and serial number header fields as named
8564         header fields so we can reference field names using the 
8565         protocol values.
8566         (append_int_field), (append_uint_field), (append_string_field):
8567         Append the field name as a byte rather than four chars.
8568         (delete_int_or_uint_field), (delete_string_field): reflect the
8569         fact that the field name and typecode now occupy 4 bytes instead
8570         of 8.
8571         (decode_string_field), (decode_header_data): update to reflect
8572         protocol changes and move the field specific encoding from
8573         decode_string_field() back into decode_header_data().
8574         
8575         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8576         Add utility to aid debugging.
8577         
8578         * dbus/dbus-message-builder.c:
8579         (append_string_field), (_dbus_message_data_load): Update to
8580         reflect protocol changes; Change the FIELD_NAME directive
8581         to HEADER_FIELD and allow it to take the field's conventional
8582         name rather than the actual value.
8583         
8584         * test/data/*/*.message: Update to use HEADER_FIELD instead
8585         of FIELD_NAME; Always align the header on an 8 byte boundary
8586         *before* updating the header length.
8587
8588 2003-09-15  Havoc Pennington  <hp@pobox.com>
8589
8590         * dbus/dbus-pending-call.c: add the get/set object data
8591         boilerplate as for DBusConnection, etc. Use generic object data
8592         for the notify callback.
8593
8594         * glib/dbus-gparser.c (parse_node): parse child nodes
8595
8596         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8597         
8598         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8599         contain functions shared between the convenience lib and the
8600         installed lib
8601
8602         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8603         -export-symbols-regex to the GLib library
8604
8605         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8606         fix the locking in here, and add a default handler for
8607         Introspect() that just returns sub-nodes.
8608
8609 2003-09-14  Havoc Pennington  <hp@pobox.com>
8610
8611         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8612         rather than gfoo consistent
8613
8614         * glib/dbus-gproxy.h: delete for now, move contents to
8615         dbus-glib.h, because the include files don't work right since we
8616         aren't in the dbus/ subdir.
8617         
8618         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8619         (dbus_gproxy_end_call): finish
8620         (dbus_gproxy_begin_call): finish
8621
8622         * glib/dbus-gmain.c (dbus_set_g_error): new
8623
8624         * glib/dbus-gobject.c (handle_introspect): include information
8625         about child nodes in the introspection
8626
8627         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8628         function to help in implementation of introspection
8629
8630         * dbus/dbus-object-tree.c
8631         (_dbus_object_tree_list_registered_and_unlock): new function
8632
8633 2003-09-12  Havoc Pennington  <hp@pobox.com>
8634
8635         * glib/dbus-gidl.h: add common base class for all the foo_info
8636         types
8637
8638         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8639         similar to kdcop
8640
8641         * test/Makefile.am: try test srcdir -ef . in addition to test
8642         srcdir = ., one of them should work (yeah lame)
8643         
8644         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8645         library
8646         
8647         * glib/dbus-gparser.h: make description_load routines return
8648         NodeInfo* not Parser*
8649
8650         * Makefile.am (SUBDIRS): build test dir after all library dirs
8651
8652         * configure.in: add GTK+ detection
8653
8654 2003-09-07  Havoc Pennington  <hp@pobox.com>
8655
8656         * Make Doxygen contented.
8657
8658 2003-09-07  Havoc Pennington  <hp@pobox.com>
8659
8660         * doc/dbus-specification.sgml: more updates
8661
8662 2003-09-06  Havoc Pennington  <hp@pobox.com>
8663
8664         * doc/dbus-specification.sgml: partial updates
8665
8666         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8667         zillionth time; hopefully I edited the right file this time.
8668
8669         * bus/config-parser.c (append_rule_from_element): support
8670         send_type, send_path, receive_type, receive_path
8671
8672         * bus/policy.c: add message type and path to the list of things
8673         that can be "firewalled"
8674
8675 2003-09-06  Havoc Pennington  <hp@pobox.com>
8676
8677         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8678         (dbus_connection_register_object_path): make this not handle
8679         messages to paths below the given path
8680
8681 2003-09-03  Havoc Pennington  <hp@pobox.com>
8682
8683         * test/glib/Makefile.am: add this with random glib-linked test
8684         programs
8685
8686         * glib/Makefile.am: remove the random test programs from here,
8687         leave only the unit tests
8688
8689         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8690         uscore/javacaps conversion, and fix     
8691         (get_object_property, set_object_property): change to .NET
8692         convention for mapping props to methods, set_FooBar/get_FooBar, 
8693         since one language has such a convention we may as well copy it. 
8694         Plus real methods in either getFooBar or get_foo_bar style won't 
8695         collide with this convention.
8696
8697 2003-09-01  Havoc Pennington  <hp@pobox.com>
8698
8699         * glib/dbus-gparser.c: implement
8700
8701         * glib/dbus-gobject.c: start implementing skeletons support
8702
8703         * configure.in: when disabling checks/assert, also define
8704         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8705
8706 2003-09-01  Havoc Pennington  <hp@pobox.com>
8707
8708         * glib/Makefile.am: rearrange a bunch of files and get "make
8709         check" framework set up
8710
8711 2003-08-31  Havoc Pennington  <hp@pobox.com>
8712
8713         * fix build with --disable-tests
8714
8715 2003-08-30  Havoc Pennington  <hp@pobox.com>
8716
8717         * dbus/dbus-connection.c: purge DBusMessageHandler
8718
8719         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8720         use callbacks everywhere
8721
8722 2003-08-30  Havoc Pennington  <hp@pobox.com>
8723
8724         * test/data/valid-config-files/system.d/test.conf: change to 
8725         root for the user so warnings don't get printed
8726
8727         * dbus/dbus-message.c: add dbus_message_get_path,
8728         dbus_message_set_path
8729         
8730         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8731         dispatching to a path
8732
8733         * dbus/dbus-string.c (_dbus_string_validate_path): add
8734
8735         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8736         (_dbus_marshal_object_path): implement
8737
8738         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8739         to contain the path to the target object
8740         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8741         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8742
8743 2003-08-30  Havoc Pennington  <hp@pobox.com>
8744
8745         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8746
8747 2003-08-29  Havoc Pennington  <hp@pobox.com>
8748
8749         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8750         registered
8751         (struct DBusObjectSubtree): shrink this
8752         a lot, since we may have a lot of them
8753         (_dbus_object_tree_free_all_unlocked): implement
8754         (_dbus_object_tree_dispatch_and_unlock): implement
8755
8756 2003-08-29  Havoc Pennington  <hp@pobox.com>
8757
8758         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8759
8760 2003-08-28  Havoc Pennington  <hp@pobox.com>
8761
8762         purge DBusObjectID
8763         
8764         * dbus/dbus-connection.c: port to no ObjectID, create a
8765         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8766
8767         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8768         everything except UnregisterFunction and MessageFunction
8769         
8770         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8771         add DBUS_TYPE_OBJECT_PATH
8772         
8773         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8774         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8775         path-based object IDs
8776
8777 2003-08-25  Havoc Pennington  <hp@pobox.com>
8778
8779         Just noticed that dbus_message_test is hosed, I wonder when I
8780         broke that. I thought make check was passing earlier...
8781         
8782         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8783         container tree, will replace most of dbus-object-registry
8784
8785         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8786         screwup
8787
8788 2003-08-19  Havoc Pennington  <hp@pobox.com>
8789
8790         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8791         (dbus_message_is_error): fix this function
8792
8793         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8794         match
8795
8796         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8797         reflect clarified man page
8798         (bus_client_policy_check_can_send): ditto
8799         
8800         * bus/session.conf.in: fixup
8801
8802         * bus/system.conf.in: fixup
8803
8804 2003-08-18  Havoc Pennington  <hp@redhat.com>
8805
8806         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8807
8808         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8809         dumb bug created earlier (wrong order of args to
8810         decode_header_data())
8811         
8812         * tools/dbus-send.c: port
8813
8814         * tools/dbus-print-message.c (print_message): port
8815
8816         * test/data/*messages: port all messages over
8817         
8818         * dbus/dbus-message-builder.c: support including 
8819         message type
8820         
8821         * bus/driver.c: port over
8822         
8823         * bus/dispatch.c: port over to new stuff
8824
8825         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8826         rename disconnect signal to "Disconnected"
8827
8828 2003-08-17  Havoc Pennington  <hp@pobox.com>
8829
8830         This doesn't compile yet, but syncing up so I can hack on it from
8831         work. What are branches for if not broken code? ;-)
8832         
8833         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8834         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8835         DBUS_HEADER_FIELD_ERROR_NAME
8836         
8837         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8838         for the interface+member pairs
8839         (string_hash): change to use g_str_hash algorithm
8840         (find_direct_function, find_string_function): refactor these to
8841         share most code.
8842         
8843         * dbus/dbus-message.c: port all of this over to support 
8844         interface/member fields instead of name field
8845
8846         * dbus/dbus-object-registry.c: port over
8847         
8848         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8849         from _dbus_string_validate_name
8850
8851         * bus/dbus-daemon-1.1: change file format for the 
8852         <deny>/<allow> stuff to match new message naming scheme
8853
8854         * bus/policy.c: port over
8855
8856         * bus/config-parser.c: parse new format
8857         
8858 2003-08-16  Havoc Pennington  <hp@pobox.com>
8859
8860         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8861         broken assertion
8862
8863         * glib/dbus-gproxy.c: some hacking
8864
8865 2003-08-15  Havoc Pennington  <hp@redhat.com>
8866
8867         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8868
8869         * dbus/dbus-connection.c
8870         (dbus_connection_send_with_reply_and_block): factor out internals;
8871         change to convert any error replies to DBusError instead of 
8872         returning them as a message
8873
8874 2003-08-15  Havoc Pennington  <hp@pobox.com>
8875
8876         * dbus/dbus-connection.c, 
8877         dbus/dbus-pending-call.c: Finish the pending call stuff
8878
8879 2003-08-14  Havoc Pennington  <hp@redhat.com>
8880
8881         * dbus/dbus-pending-call.c: start on new object that will replace
8882         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8883         replies
8884
8885         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8886         with remote interfaces
8887
8888         * dbus/dbus-gidl.c: do the boring boilerplate in here
8889         
8890 2003-08-12  Havoc Pennington  <hp@pobox.com>
8891
8892         * bus/dispatch.c (bus_dispatch): make this return proper 
8893         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8894
8895         * dbus/dbus-errors.c (dbus_set_error): use
8896         _dbus_string_append_printf_valist
8897
8898         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8899         (_dbus_string_append_printf): new
8900
8901         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8902         UNKNOWN_METHOD
8903
8904         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8905         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8906         message is unhandled.
8907
8908 2003-08-11  Havoc Pennington  <hp@pobox.com>
8909
8910         * bus/test.c (client_disconnect_handler): change to return
8911         HANDLED (would have been REMOVE_MESSAGE)
8912
8913         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8914         HANDLED/NOT_YET_HANDLED instead of
8915         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8916         should be used.
8917
8918 2003-08-10  Havoc Pennington  <hp@pobox.com>
8919
8920         * tools/dbus-send.c (main): add --type argument, for now
8921         supporting only method_call and signal types.
8922
8923         * tools/dbus-print-message.c: print message type
8924
8925         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8926         init connection->objects
8927
8928         * doc/dbus-specification.sgml: fix sgml
8929
8930         * bus/*.c: port over to object-instance API changes
8931
8932         * test/test-service.c: ditto
8933         
8934         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8935         name, we will have to fix up the rest of the code to also handle
8936         this
8937         (dbus_message_new): generic message-creation call
8938         (set_string_field): allow appending name field
8939
8940 2003-08-06  Havoc Pennington  <hp@pobox.com>
8941
8942         * dbus/dbus-object-registry.c: implement signal connection 
8943         and dispatch
8944
8945         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8946
8947         * dbus/dbus-internals.c (_dbus_memdup): new function
8948
8949 2003-08-02  Havoc Pennington  <hp@pobox.com>
8950
8951         * dbus/dbus-message.c (dbus_message_get_no_reply)
8952         (dbus_message_set_no_reply): add these and remove
8953         set_is_error/get_is_error
8954
8955         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8956         remove the ERROR flag, since there's now an ERROR type
8957
8958 2003-08-01  Havoc Pennington  <hp@pobox.com>
8959
8960         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8961         implement
8962
8963         * dbus/dbus-message.c (dbus_message_get_type): new function
8964
8965         * doc/dbus-specification.sgml: add "type" byte to messages
8966
8967 2003-08-01  Havoc Pennington  <hp@pobox.com>
8968
8969         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8970         a message type enum to distinguish kinds of message
8971         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8972         that need not be replied to
8973
8974 2003-08-01  Havoc Pennington  <hp@pobox.com>
8975
8976         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8977         (unpack_8_octets): fix no-64-bit-int bug
8978
8979         * dbus/dbus-object-registry.c (validate_id): validate the 
8980         connection ID bits, not just the instance ID.
8981
8982         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8983         the connection-global 33 bits of the object ID
8984
8985         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8986         object ID in the new way
8987
8988         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8989         define server/client/instance bits.
8990
8991 2003-07-30  Havoc Pennington  <hp@pobox.com>
8992
8993         * dbus/dbus-connection.c (dbus_connection_register_object): fix
8994         build
8995
8996 2003-07-13  Havoc Pennington  <hp@pobox.com>
8997
8998         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
8999         fields to DBusObjectVTable and DBusObjectInfo
9000
9001 2003-07-12  Havoc Pennington  <hp@pobox.com>
9002
9003         * dbus/dbus-object-registry.c: implement unit test,
9004         fix bugs discovered in process
9005
9006         * dbus/dbus-connection.c: remove handler_table and
9007         register_handler(), add DBusObjectRegistry usage
9008
9009         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9010         (dbus_object_id_set_null): new functions
9011
9012 2003-07-08  Havoc Pennington  <hp@pobox.com>
9013
9014         * dbus/dbus-object.c: implement some of this
9015
9016         * dbus/dbus-object-registry.c
9017         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9018         param
9019         (_dbus_object_registry_new): handle OOM
9020
9021 2003-07-08  Havoc Pennington  <hp@pobox.com>
9022
9023         * dbus/dbus-object.h: sketch out an API for registering objects
9024         with a connection, that allows us to use as little as 24 bytes
9025         per object and lets application code represent an object in 
9026         any conceivable way.
9027
9028         * dbus/dbus-object-registry.c: implement the hard bits of the
9029         DBusConnection aspect of object API. Not yet wired up.
9030         
9031 2003-07-06  Havoc Pennington  <hp@pobox.com>
9032
9033         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9034         (_dbus_marshal_object_id): new
9035         (_dbus_demarshal_object_id): new
9036         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9037         consolidate identical switch cases. Don't conditionalize handling
9038         of DBUS_TYPE_UINT64, need to handle the type always.
9039         (_dbus_marshal_validate_arg): consolidate identical cases, and
9040         handle DBUS_TYPE_OBJECT_ID
9041
9042         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9043
9044         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9045
9046 2003-09-28  Havoc Pennington  <hp@pobox.com>
9047
9048         * real 0.13 release
9049
9050 2003-09-28  Havoc Pennington  <hp@pobox.com>
9051
9052         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9053         to work with Debian db2html
9054
9055 2003-09-28  Havoc Pennington  <hp@pobox.com>
9056
9057         * configure.in: 0.13
9058
9059         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9060         stylesheet-images for benefit of Debian
9061         
9062         Change back to using filesystem-linked sockets for the system
9063         bus, so only root can create the default system bus address.
9064         
9065         * bus/system.conf.in: change to use
9066         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9067
9068         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9069         from here.
9070
9071         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9072         here, and AC_DEFINE DBUS_SYSTEM_PATH
9073
9074 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9075
9076         * doc/TODO:
9077         * doc/busconfig.dtd:
9078         Add busconfig DTD.
9079         
9080 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9081
9082         * doc/dbus-specification.sgml:
9083         Add activation reply values.
9084         
9085 2003-08-05  Havoc Pennington  <hp@redhat.com>
9086
9087         * configure.in: 0.12
9088
9089 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9090
9091         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9092         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9093         (add_watch), (remove_watch), (create_source):
9094         Refcount fds, fixes some reentrancy issues.
9095         
9096 2003-07-30  Havoc Pennington  <hp@redhat.com>
9097
9098         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9099         bus address to be abstract if we have abstract sockets
9100
9101         * NEWS: update
9102
9103 2003-07-28  Havoc Pennington  <hp@redhat.com>
9104
9105         * bus/messagebus.in: fix to avoid processname/servicename 
9106         confusion, from Michael Kearey
9107         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9108         
9109 2003-07-23  Havoc Pennington  <hp@pobox.com>
9110
9111         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9112         fix from Andy Hanton to remove broken "+1"
9113
9114 2003-07-16  Havoc Pennington  <hp@pobox.com>
9115
9116         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9117         babysitter process, as suggested by Thomas Leonard, so 
9118         an "eval `dbus-launch --exit-with-session`" will actually 
9119         return
9120
9121 2003-07-16  Havoc Pennington  <hp@pobox.com>
9122
9123         * configure.in: print out EXPANDED_* variables in the summary at
9124         the end; clean up the code that computes EXPANDED_ variables and
9125         get the ones using exec_prefix right. Should make things work
9126         when you build without --prefix
9127
9128 2003-06-29  Havoc Pennington  <hp@pobox.com>
9129
9130         * mono/Test.cs (class Test): fire up a main loop and run it
9131
9132         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9133         done once, the app has to do it
9134
9135 2003-06-26  Havoc Pennington  <hp@pobox.com>
9136
9137         * mono/Connection.cs: set up connection with the glib main loop
9138
9139 2003-07-01  Havoc Pennington  <hp@redhat.com>
9140
9141         * doc/dbus-specification.sgml: clarify the format of a type code,
9142         change suggested by Jim Blandy
9143
9144 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9145
9146         * doc/Makefile.am:
9147         * tools/Makefile.am: Don't assume srcdir == builddir.
9148
9149         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9150         the allocated block.
9151         (_dbus_memory_test): New function.
9152         * dbus/dbus-test.h: Add _dbus_memory_test ().
9153         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9154
9155         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9156         of %c%c%c%c.
9157         (dbus_message_new): Remove obsolete @todo.
9158
9159         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9160         (_dbus_marshal_set_uint64): Fix comment.
9161
9162         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9163         hardcode FIELD_REPLY_SERIAL.
9164
9165         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9166         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9167
9168         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9169         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9170
9171 2003-06-24  Havoc Pennington  <hp@pobox.com>
9172
9173         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9174
9175 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9176
9177         * configure.in:
9178         * gcj/.cvsignore:
9179         * gcj/Hello.java:
9180         * gcj/Makefile.am:
9181         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9182         * gcj/org/.cvsignore:
9183         * gcj/org/Makefile.am:
9184         * gcj/org/freedesktop/.cvsignore:
9185         * gcj/org/freedesktop/Makefile.am:
9186         * gcj/org/freedesktop/dbus/.cvsignore:
9187         * gcj/org/freedesktop/dbus/Makefile.am:
9188         * gcj/org/freedesktop/dbus/Message.java: (Message),
9189         (Message.Message):
9190         * gcj/org/freedesktop/dbus/natMessage.cc:
9191         Fix the build system.
9192
9193 2003-06-22  Havoc Pennington  <hp@pobox.com>
9194
9195         * mono/Connection.cs: add more bindings
9196
9197         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9198         more than once.
9199
9200 2003-06-22  Havoc Pennington  <hp@pobox.com>
9201
9202         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9203         Start wrapping more stuff.
9204
9205 2003-06-22  Havoc Pennington  <hp@pobox.com>
9206
9207         * mono/Message.cs: implement Message.Wrap() that ensures we only
9208         have a single C# wrapper per DBusMessage, assuming it works which
9209         it probably doesn't.
9210
9211         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9212         (dbus_message_free_data_slot): new
9213         (dbus_message_set_data): new
9214         (dbus_message_get_data): new
9215
9216 2003-06-22  Havoc Pennington  <hp@pobox.com>
9217
9218         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9219         (_dbus_data_slot_allocator_alloc): rework these to keep a
9220         reference count on each slot and automatically manage a global
9221         slot ID variable passed in by address
9222
9223         * bus/bus.c: convert to new dataslot API
9224
9225         * dbus/dbus-bus.c: convert to new dataslot API
9226
9227         * dbus/dbus-connection.c: convert to new dataslot API
9228
9229         * dbus/dbus-server.c: convert to new dataslot API
9230
9231         * glib/dbus-gmain.c: ditto
9232
9233         * bus/test.c: ditto
9234
9235         * bus/connection.c: ditto
9236
9237 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9238
9239         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9240         after the gcj checks so that the correct configuration tags
9241         will be added to libtool.
9242
9243         * dbus-glib-1.pc.in: No need to specify any includes since
9244         dbus-1.pc.in has those.
9245
9246 2003-06-22  Havoc Pennington  <hp@pobox.com>
9247
9248         * mono/*, gcj/*, configure.in, Makefile.am:
9249         Check in makefiles and subdirs for mono and gcj bindings.
9250         Neither binding actually exists, just trying to get through
9251         all the build and other boring bits.
9252
9253 2003-06-21  Philip Blundell  <philb@gnu.org>
9254
9255         * tools/dbus-monitor.1: Updated.
9256
9257         * tools/dbus-send.1: Likewise.
9258
9259 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9260
9261         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9262         for hangup and error after checking read so we won't discard
9263         pending data if both hangup and read are set.
9264
9265 2003-06-19  Philip Blundell  <philb@gnu.org>
9266
9267         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9268
9269         * tools/dbus-send.c: Accept both --system and --session.
9270
9271         * tools/dbus-monitor.c: Same here.
9272
9273 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9274
9275         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9276         from C++ (Patch by Miloslav Trmac).
9277
9278 2003-06-15  Joe Shaw  <joe@assbarn.com>
9279
9280         * configure.in: Check for socklen_t.
9281
9282         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9283
9284         * test/test-segfault.c: Add #include <sys/time.h>
9285
9286         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9287         dbus-launch needs it.
9288
9289 2003-06-09  Havoc Pennington  <hp@redhat.com>
9290
9291         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9292         SUN_LEN, it breaks abstract socket usage
9293
9294         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9295         starts of lines.
9296
9297 2003-06-04  Havoc Pennington  <hp@pobox.com>
9298
9299         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9300         using unix:abstract=/foo, and when listening in a tmpdir
9301         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9302
9303         * dbus/dbus-transport.c (_dbus_transport_open): support
9304         unix:abstract=/foo
9305
9306         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9307         support abstract sockets
9308
9309         * dbus/dbus-transport-unix.c
9310         (_dbus_transport_new_for_domain_socket): support abstract sockets
9311
9312         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9313         toggle as an argument, implement abstract namespace support
9314         (_dbus_listen_unix_socket): ditto
9315
9316         * configure.in: add --enable-abstract-sockets and implement
9317         a configure check for autodetection of the right value.
9318
9319 2003-06-01  Havoc Pennington  <hp@pobox.com>
9320
9321         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9322         in /tmp (though on Linux this will end up being useless,
9323         when we add abstract namespace support)
9324
9325         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9326         subst'ing it
9327
9328 2003-05-28  Colin Walters  <walters@verbum.org>
9329
9330         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9331
9332 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9333
9334         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9335
9336 2003-05-17  Colin Walters  <walters@gnu.org>
9337
9338         * tools/dbus-send.c: Don't exit with an error code if --help was
9339         passed.  Default to using the session bus instead of the system
9340         one.
9341
9342         * tools/dbus-launch.c: Ditto.
9343
9344         * tools/dbus-monitor.c: Ditto.
9345
9346         * tools/dbus-send.1: Update with new arguments.
9347
9348         * tools/dbus-launch.c: Emit code to export variables.  New
9349         arguments -s and -c to specify shell syntax, and a bit of code to
9350         autodetect syntax.  Also, allow specifying a program to run.
9351
9352         * tools/dbus-launch.1: Update with new arguments.
9353
9354         * tools/dbus-send.1: Ditto.
9355
9356         * tools/dbus-monitor.1: Ditto.
9357
9358 2003-05-17  Havoc Pennington  <hp@pobox.com>
9359
9360         * bus/config-parser.c (merge_included): merge in policies from
9361         child configuration file.
9362
9363         * bus/policy.c (bus_policy_merge): function to merge two policies
9364         together
9365
9366 2003-05-16  Havoc Pennington  <hp@redhat.com>
9367
9368         * dbus/dbus-connection.c: disable verbose lock spew
9369
9370         * tools/dbus-send.c: add --print-reply command line option
9371
9372         * tools/dbus-print-message.h (print_message): new util function
9373         shared by dbus-send and dbus-monitor
9374
9375         * tools/dbus-monitor.c (handler_func): exit on disconnect
9376
9377         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9378         disconnected, don't try to use the read_watch
9379
9380         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9381         so we can find this bug more easily
9382
9383 2003-05-16  Havoc Pennington  <hp@redhat.com>
9384
9385         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9386         NULL as DBusHashTable is annoyingly likely to do.
9387
9388 2003-05-16  Colin Walters  <walters@verbum.org>
9389
9390         * tools/dbus-monitor.c: Add --session argument and usage()
9391         function.
9392
9393         * tools/dbus-monitor.1: Update with new --session arg.
9394
9395         * bus/Makefile.am (install-data-hook): Create
9396         $(libdir)/dbus-1.0/services so that the session bus is happy.
9397
9398 2003-05-15  Havoc Pennington  <hp@redhat.com>
9399
9400         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9401         on non-x86. ifdef's are evil.
9402
9403 2003-05-15  Havoc Pennington  <hp@redhat.com>
9404
9405         * configure.in: 0.11
9406
9407         * NEWS: update
9408
9409         * bus/Makefile.am (initddir): apparently we are supposed to put
9410         init scripts in /etc/rc.d/init.d not /etc/init.d
9411
9412         * bus/Makefile.am: remove the "you must --enable-tests to make
9413         check" as it broke distcheck
9414
9415         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9416
9417 2003-05-13  James Willcox  <jwillcox@gnome.org>
9418
9419         * configure.in:
9420         * bus/activation.c: (bus_activation_service_created),
9421         (bus_activation_activate_service):
9422         * bus/driver.c: (bus_driver_send_service_deleted),
9423         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9424         (bus_driver_send_service_acquired),
9425         (bus_driver_send_welcome_message),
9426         (bus_driver_handle_list_services):
9427         * bus/session.conf.in:
9428         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9429         (dbus_bus_service_exists), (dbus_bus_activate_service):
9430         * dbus/dbus-bus.h:
9431
9432         Add some convenience API which lets you activate a service, and did a
9433         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9434         and dbus_message_get_args()
9435
9436 2003-05-11  Havoc Pennington  <hp@pobox.com>
9437
9438         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9439         calling _dbus_marshal_validate_arg() for every byte in a byte
9440         array, etc.
9441
9442         * dbus/dbus-message-handler.c: use atomic reference counting to
9443         reduce number of locks slightly; the global lock in here sucks
9444
9445         * dbus/dbus-connection.c
9446         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9447         update_dispatch_status that can be called with lock held; then use
9448         in a couple places to reduce locking/unlocking
9449         (dbus_connection_send): hold the lock over the whole function
9450         instead of acquiring it twice.
9451
9452         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9453
9454         * bus/connection.c (bus_connections_setup_connection): fix access
9455         to already-freed memory.
9456
9457         * dbus/dbus-connection.c: keep a little cache of linked list
9458         nodes, to avoid using the global linked list alloc lock in the
9459         normal send-message case. Instead we just use the connection lock
9460         that we already have to take.
9461
9462         * dbus/dbus-list.c (_dbus_list_find_last): new function
9463
9464         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9465         change to use a struct for the atomic type; fix docs,
9466         they return value before increment, not after increment.
9467
9468         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9469         (_dbus_string_append_8_aligned): new functions to try to
9470         microoptimize this operation.
9471         (reallocate_for_length): break this out of set_length(), to
9472         improve profile info, and also so we can consider inlining the
9473         set_length() part.
9474
9475         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9476         strings with some preallocation, cuts down on our calls to realloc
9477         a fair bit. Though if we can get the "move entire string to empty
9478         string" optimization below to kick in here, it would be better.
9479
9480         * dbus/dbus-string.c (_dbus_string_move): just call
9481         _dbus_string_move_len
9482         (_dbus_string_move_len): add a special case for moving
9483         an entire string into an empty string; we can just
9484         swap the string data instead of doing any reallocs.
9485         (_dbus_string_init_preallocated): new function
9486
9487 2003-05-11  Havoc Pennington  <hp@pobox.com>
9488
9489         Write a "test-profile" that does echo client-server with threads;
9490         profile reveals lock contention, memcpy/realloc of buffers, and
9491         UTF-8 validation as hot spots. 20% of lock contention eliminated
9492         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9493         contention is global mempool locks for GList and DBusList.
9494
9495         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9496         x86 implementation
9497
9498         * dbus/dbus-connection.c (struct DBusConnection): use
9499         dbus_atomic_t for the reference count
9500
9501         * dbus/dbus-message.c (struct DBusMessage): declare
9502         dbus_atomic_t values as volatile
9503
9504         * configure.in: code to detect ability to use atomic integer
9505         operations in assembly, from GLib patch
9506
9507         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9508         time, tired of it being wrong in threads and forked processes
9509
9510         * glib/test-profile.c: a little program to bounce messages back
9511         and forth between threads and eat CPU
9512
9513         * dbus/dbus-connection.c: add debug spew macros for debugging
9514         thread locks; include config.h at top; fix deadlock in
9515         dbus_connection_flush()
9516
9517 2003-05-08  Havoc Pennington  <hp@pobox.com>
9518
9519         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9520         data from getting written, and there wasn't a good reason to
9521         use _exit really.
9522
9523         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9524         dbus_verbose lines in test coverage
9525         (main): add list of functions sorted by # of untested blocks
9526         to the coverage report
9527
9528         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9529
9530         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9531
9532         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9533         extend test coverage
9534
9535         * test/data/auth/cancel.auth-script: test canceling an
9536         authentication
9537
9538         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9539         aren't used. in CVS history if we end up needing them.
9540
9541 2003-05-04  Havoc Pennington  <hp@pobox.com>
9542
9543         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9544         unit test
9545
9546         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9547         function, which assumed length was in # of strings, not bytes
9548
9549         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9550         missing coverage
9551
9552         * dbus/dbus-connection.c
9553         (_dbus_connection_queue_received_message): disable function for
9554         now, we are only using it in test mode
9555
9556         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9557         remove a mistaken FIXME
9558
9559 2003-05-04  Havoc Pennington  <hp@pobox.com>
9560
9561         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9562         unlock mutex on successful return, patch from Anders Gustafsson
9563
9564 2003-05-04  Havoc Pennington  <hp@pobox.com>
9565
9566         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9567         Anders Gustafsson
9568
9569 2003-05-04  Havoc Pennington  <hp@pobox.com>
9570
9571         * tools/dbus-launch.c: implement
9572
9573         * bus/main.c (main), bus/bus.c (bus_context_new):
9574         implement --print-pid and --fork
9575
9576 2003-05-03  Havoc Pennington  <hp@redhat.com>
9577
9578         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9579         the address had no value, and add to test suite. Fix and
9580         regression test from Miloslav Trmac
9581
9582 2003-05-03  Havoc Pennington  <hp@pobox.com>
9583
9584         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9585         watch is invalid when handled
9586
9587         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9588         dbus-launch utility to launch the bus from a shell script.  Didn't
9589         actually implement dbus-launch yet, it's just a placeholder still.
9590
9591 2003-05-03  Havoc Pennington  <hp@pobox.com>
9592
9593         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9594         daemon; also documents daemon config file, so replaces
9595         doc/config-file.txt. Corrected some stuff from config-file.txt in
9596         the process of moving it.
9597
9598 2003-05-03  Havoc Pennington  <hp@pobox.com>
9599
9600         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9601         add some man pages
9602
9603 2003-05-03  Colin Walters  <walters@verbum.org>
9604
9605         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9606         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9607
9608         * Makefile.am: Update to use new .pc versioning scheme.
9609
9610 2003-05-02  Havoc Pennington  <hp@redhat.com>
9611
9612         * bus/system.conf.in: allow send/receive to/from message bus
9613         service
9614
9615 2003-04-30  Havoc Pennington  <hp@redhat.com>
9616
9617         * configure.in: print a note when building with unit tests and
9618         without assertions
9619
9620 2003-04-30  Havoc Pennington  <hp@redhat.com>
9621
9622         * Makefile.am: add a check-local that complains if you didn't
9623         configure with --enable-tests
9624
9625 2003-04-29  Havoc Pennington  <hp@redhat.com>
9626
9627         * glib/dbus-gmain.c: docs cleanups
9628
9629         * dbus/dbus-types.h: add docs on int64 types
9630
9631         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9632         public API docs section
9633
9634 2003-04-29  Havoc Pennington  <hp@redhat.com>
9635
9636         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9637         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9638         parallel install API version, not with the D-BUS package version.
9639
9640         * HACKING: move some of README over here
9641
9642         * README: updates, and document API/ABI policy
9643
9644         * configure.in: reindentation
9645
9646 2003-04-29  Havoc Pennington  <hp@redhat.com>
9647
9648         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9649         to use this library" to be sure people have the right
9650         expectations.
9651
9652 2003-04-28  Havoc Pennington  <hp@redhat.com>
9653
9654         * configure.in: add --enable-docs which by default is auto yes if
9655         doxygen and db2html found, no otherwise; but can be forced on/off
9656
9657         * doc/Makefile.am: conditionalize whether to build docs on
9658         --enable-docs
9659
9660 2003-04-28  Havoc Pennington  <hp@redhat.com>
9661
9662         * configure.in: 0.10
9663
9664         * NEWS: update
9665
9666         * bus/system.conf.in: add <includedir>system.d</includedir>
9667
9668         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9669         username was provided but not uid
9670
9671         * bus/config-parser.c (struct BusConfigParser): keep track of
9672         whether the parser is toplevel or was included; change some
9673         of the error handling if it's included.
9674
9675 2003-04-27  Havoc Pennington  <hp@pobox.com>
9676
9677         Unbreak my code...
9678
9679         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9680         report correct status if we finish processing authentication
9681         inside this function.
9682
9683         * bus/activation.c (try_send_activation_failure): use
9684         bus_transaction_send_error_reply
9685
9686         * bus/connection.c (bus_connection_get_groups): return an error
9687         explaining the problem
9688
9689         * bus/bus.c (bus_context_check_security_policy): implement
9690         restriction here that inactive connections can only send the
9691         hello message. Also, allow bus driver to send anything to
9692         any recipient.
9693
9694         * bus/connection.c (bus_connection_complete): create the
9695         BusClientPolicy here instead of on-demand.
9696         (bus_connection_get_policy): don't return an error
9697
9698         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9699         sender field in message being replied to
9700
9701         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9702         causing it to return FALSE always
9703
9704         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9705         we checked sender rather than destination
9706
9707 2003-04-25  Havoc Pennington  <hp@redhat.com>
9708
9709         test suite is slightly hosed at the moment, will fix soon
9710
9711         * bus/connection.c (bus_connections_expire_incomplete): fix to
9712         properly disable the timeout when required
9713         (bus_connection_set_name): check whether we can remove incomplete
9714         connections timeout after we complete each connection.
9715
9716         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9717         probably still broken.
9718
9719         * bus/services.c (bus_registry_acquire_service): implement max
9720         number of services owned, and honor allow/deny rules on which
9721         services a connection can own.
9722
9723         * bus/connection.c (bus_connection_get_policy): report errors here
9724
9725         * bus/activation.c: implement limit on number of pending
9726         activations
9727
9728 2003-04-25  Havoc Pennington  <hp@redhat.com>
9729
9730         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9731         where we used >= 0 instead of != DBUS_UID_UNSET.
9732
9733 2003-04-25  Havoc Pennington  <hp@redhat.com>
9734
9735         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9736         were toggled without add/remove, fix from Anders Gustafsson
9737
9738 2003-04-24  Havoc Pennington  <hp@redhat.com>
9739
9740         * test/data/valid-config-files/basic.conf: add <limit> tags to
9741         this test
9742
9743         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9744         <limit> tag in configuration file.
9745
9746 2003-04-24  Havoc Pennington  <hp@redhat.com>
9747
9748         * bus/dispatch.c: somehow missed some name_is
9749
9750         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9751         (_dbus_timeout_set_interval): new
9752
9753         * bus/connection.c (bus_connections_setup_connection): record time
9754         when each connection is first set up, and expire them after the
9755         auth timeout passes.
9756
9757 2003-04-24  Havoc Pennington  <hp@redhat.com>
9758
9759         * dbus/dbus-message.c (dbus_message_name_is): rename
9760         (dbus_message_service_is): rename
9761         (dbus_message_sender_is): rename
9762         (dbus_message_get_service): rename
9763
9764 2003-04-24  Havoc Pennington  <hp@redhat.com>
9765
9766         * configure.in: add --enable-checks
9767
9768         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9769
9770         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9771         to use thread locks.
9772         (_dbus_connection_handler_destroyed_locked): move some private
9773         functions into proper docs group
9774
9775         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9776         _dbus_return_val_if_fail
9777
9778         Throughout: use dbus_return_if_fail
9779
9780 2003-04-23  James Willcox  <jwillcox@gnome.org>
9781
9782         * glib/dbus-glib.h:
9783         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9784         (dbus_connection_setup_with_g_main),
9785         (dbus_server_setup_with_g_main):
9786         * glib/test-dbus-glib.c: (main):
9787         * glib/test-thread-client.c: (main):
9788         * glib/test-thread-server.c: (new_connection_callback), (main):
9789         * tools/dbus-monitor.c: (main):
9790
9791         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9792         and dbus_server_setup_with_g_main().
9793
9794 2003-04-20  Havoc Pennington  <hp@pobox.com>
9795
9796         * doc/dbus-specification.sgml: document the restrictions on
9797         message and service names
9798
9799 2003-04-22  Havoc Pennington  <hp@redhat.com>
9800
9801         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9802         support, and do some code cleanups to share more code and
9803         speed up array marshal/demarshal.
9804
9805         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9806
9807         * configure.in: generate dbus-arch-deps.h
9808
9809         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9810         64-bit typecodes
9811
9812 2003-04-22  Havoc Pennington  <hp@redhat.com>
9813
9814         * test/data/valid-messages/opposite-endian.message: fix test
9815         to use proper type for rply field
9816
9817         * test/data/invalid-messages: add tests for below validation
9818
9819         * dbus/dbus-message.c (decode_header_data): validate field types,
9820         and validate that named fields are valid names
9821         (decode_name_field): consider messages in the
9822         org.freedesktop.Local. namespace to be invalid.
9823
9824         * dbus/dbus-string.c (_dbus_string_validate_name): new
9825
9826 2003-04-19  Havoc Pennington  <hp@pobox.com>
9827
9828         * bus/driver.c (bus_driver_handle_hello): check limits and
9829         return an error if they are exceeded.
9830
9831         * bus/connection.c: maintain separate lists of active and inactive
9832         connections, and a count of each. Maintain count of completed
9833         connections per user. Implement code to check connection limits.
9834
9835         * dbus/dbus-list.c (_dbus_list_unlink): export
9836
9837         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9838         number of bytes in the message queue for a connection
9839
9840 2003-04-18  Havoc Pennington  <hp@pobox.com>
9841
9842         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9843
9844         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9845         memleaks
9846
9847         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9848         on realloc be sure to update the pointer in the keyring
9849
9850         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9851         offset to avoid writing to unallocated memory
9852
9853         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9854         try the next mechanism, so we properly handle OOM
9855
9856         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9857         on OOM.
9858         (_dbus_keyring_new): fix OOM bug
9859         (_dbus_keyring_new_homedir): always set error; impose a maximum
9860         number of keys we'll load from the file, mostly to speed up the
9861         test suite and make its OOM checks more useful, but also for
9862         general sanity.
9863
9864         * dbus/dbus-auth.c (process_error_server): reject authentication
9865         if we get an error from the client
9866         (process_cancel): on cancel, send REJECTED, per the spec
9867         (process_error_client): send CANCEL if we get an error from the
9868         server.
9869
9870 2003-04-18  Havoc Pennington  <hp@pobox.com>
9871
9872         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9873         debug spew
9874
9875         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9876         handling problem
9877
9878         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9879         about DBUS_TEST_HOMEDIR once
9880
9881         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9882         the environment
9883
9884         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9885         config file so we test the right thing
9886
9887         Throughout: assorted docs improvements
9888
9889 2003-04-18  Havoc Pennington  <hp@pobox.com>
9890
9891         * glib/dbus-gmain.c: adapt to watch changes
9892
9893         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9894
9895         * dbus/dbus-server.h: remove dbus_server_handle_watch
9896
9897         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9898
9899         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9900         like DBusTimeout, so we don't need dbus_connection_handle_watch
9901         etc.
9902
9903 2003-04-17  Havoc Pennington  <hp@redhat.com>
9904
9905         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9906         database usage so it all goes via the DBusUserDatabase cache.
9907
9908 2003-04-17  Havoc Pennington  <hp@redhat.com>
9909
9910         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9911         there was an OOM watch we skipped, we always return TRUE so we
9912         iterate again to have a look at it again. Fixes test suite hang.
9913         Code rearrangement also lets us lose some memset and only iterate
9914         over callbacks once.
9915
9916         * bus/driver.c (bus_driver_handle_message): sense of test for
9917         reply was backward
9918
9919 2003-04-16  Havoc Pennington  <hp@pobox.com>
9920
9921         * doc/dbus-specification.sgml: make spec say serials are unsigned
9922
9923         * dbus/dbus-message.h: change message serials to unsigned
9924
9925         * dbus/dbus-connection.c: adapt to message serials being unsigned
9926
9927 2003-04-15  Havoc Pennington  <hp@pobox.com>
9928
9929         * bus/bus.c: create and keep around a shared DBusUserDatabase
9930         object.
9931
9932         * bus/connection.c (bus_connection_get_groups): don't cache
9933         groups for user in the connection object, since user database
9934         object now does that.
9935
9936 2003-04-16  Havoc Pennington  <hp@redhat.com>
9937
9938         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9939         list of size counters
9940         (_dbus_message_loader_putback_message_link): put back a popped link
9941
9942         * dbus/dbus-connection.c
9943         (dbus_connection_set_max_live_messages_size): rename
9944         max_received_size
9945         (dbus_connection_get_outgoing_size): get size of outgoing
9946         queue
9947         (_dbus_connection_set_connection_counter): remove this cruft
9948
9949 2003-04-14  Havoc Pennington  <hp@redhat.com>
9950
9951         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9952         caching, but at some point we might want to be able to use a
9953         different database.
9954
9955         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9956         SHA1 conf file to test the sha1 auth mechanism, since the regular
9957         test always uses EXTERNAL when available.
9958
9959         * configure.in,
9960         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9961         add conf file that requires use of sha1 auth
9962
9963 2003-04-13  Havoc Pennington  <hp@pobox.com>
9964
9965         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9966         from Philip Blundell to send messages and monitor them.
9967
9968 2003-04-13  Havoc Pennington  <hp@pobox.com>
9969
9970         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9971         callbacks
9972
9973         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9974         users
9975
9976         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9977         fix to only recover unused bytes if we're already authenticated
9978         (_dbus_transport_get_is_authenticated): fix to still mark us
9979         authenticated if there are unused bytes.
9980
9981         * bus/dispatch.c: implement security policy checking
9982
9983         * bus/connection.c (bus_transaction_send_from_driver): new
9984
9985         * bus/bus.c (bus_context_check_security_policy): new
9986
9987         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9988         now we just set the DBusError and it gets converted to an error
9989         reply.
9990
9991         * bus/connection.c (allow_user_function): enable code using actual
9992         data from the config file
9993
9994         * bus/policy.c (list_allows_user): handle wildcard rules for
9995         user/group connection perms
9996
9997 2003-04-13  Havoc Pennington  <hp@pobox.com>
9998
9999         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10000
10001         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10002
10003         * bus/policy.c (bus_policy_append_mandatory_rule)
10004         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10005         (bus_policy_append_group_rule): new functions
10006
10007 2003-04-12  Havoc Pennington  <hp@pobox.com>
10008
10009         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10010
10011         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10012         the pid/gid/uid, just for paranoia.
10013
10014         * test/break-loader.c (randomly_do_n_things): find a byte
10015         containing a type code, and randomly change it to a different
10016         type code.
10017
10018 2003-04-12  Havoc Pennington  <hp@pobox.com>
10019
10020         * bus/policy.h: change BusPolicy to be the thing from the config
10021         file, and rename old BusPolicy to BusClientPolicy
10022
10023         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10024         match change in how policy works
10025
10026         * dbus/dbus-internals.h: mark assert_not_reached as
10027         __attribute((noreturn))__
10028
10029 2003-04-11  Havoc Pennington  <hp@redhat.com>
10030
10031         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10032         the broadcast service. Use boolean return for ServiceExists.
10033
10034 2003-04-11  Havoc Pennington  <hp@redhat.com>
10035
10036         * configure.in: add another directory to look for qt in.
10037
10038 2003-04-11  Havoc Pennington  <hp@redhat.com>
10039
10040         * AUTHORS: add Colin Walters
10041
10042 2003-04-11  Havoc Pennington  <hp@redhat.com>
10043
10044         * NEWS: update
10045
10046         * configure.in: 0.9
10047
10048 2003-04-11  Havoc Pennington  <hp@redhat.com>
10049
10050         * bus/messagebus.in: remove pid file when stopping the
10051         message bus, since the bus won't have privileges to remove it
10052         itself.
10053
10054 2003-04-11  Havoc Pennington  <hp@redhat.com>
10055
10056         * bus/bus.c (bus_context_new): move credentials change after
10057         creating pidfile
10058
10059 2003-04-11  Havoc Pennington  <hp@pobox.com>
10060
10061         * test/decode-gcov.c: add "below average functions" to the
10062         coverage report, and change how some of the code works.
10063
10064         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10065         not in the coverage stats.
10066
10067         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10068         couple places so running the test suite doesn't result in megaspam.
10069
10070 2003-04-11  Havoc Pennington  <hp@pobox.com>
10071
10072         * bus/dispatch.c (check_existent_service_activation): accept a no
10073         memory error in a place we didn't before
10074
10075         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10076         in case the first one failed," since the test suite is less
10077         broken now.
10078
10079 2003-04-10  Havoc Pennington  <hp@pobox.com>
10080
10081         * bus/dispatch.c (check_segfault_service_activation): add test
10082         for launching an executable that just crashes.
10083
10084         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10085         don't leave a million cores. We'll see how portable this is.
10086
10087 2003-04-10  Havoc Pennington  <hp@pobox.com>
10088
10089         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10090         the possible parent failures before we fork, so that we don't
10091         fail to create a babysitter after creating the child.
10092
10093         * bus/activation.c (bus_activation_activate_service): kill child
10094         if we don't successfully complete the activation.
10095
10096 2003-04-10  Havoc Pennington  <hp@redhat.com>
10097
10098         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10099         the connection if it's disconnected
10100
10101         * bus/activation.c (bus_activation_service_created): use new
10102         transaction features to roll back removal of pending activation if
10103         we don't successfully create the service after all. Don't remove
10104         pending activation if the function fails.
10105
10106         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10107         (_dbus_list_insert_after_link): new code to facilitate
10108         services.c fixes
10109
10110         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10111         new functionality, so we can preallocate the ability to insert
10112         into a hash table.
10113
10114         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10115         allowing us to put custom hooks in a transaction to be used for
10116         cancelling said transaction
10117
10118         * doc/dbus-specification.sgml: add some discussion of secondary
10119         service owners, and disallow zero-length service names
10120
10121         * bus/services.c (bus_registry_acquire_service): new function,
10122         splits out part of bus_driver_handle_acquire_service() and fixes
10123         a bug where we didn't remove the service doing the acquiring
10124         from the secondary queue if we failed to remove the current owner
10125         from the front of the queue.
10126
10127 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10128
10129         * doc/dbus-specification.sgml:
10130         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10131
10132 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10133
10134         * bus/.cvsignore:
10135         * glib/.cvsignore:
10136         * test/.cvsignore:
10137         Added files to cvsignore
10138
10139         * dbus/dbus-message.h:
10140         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10141         Make get_named() take two out argument and return a boolean.
10142         (dbus_message_iter_get_args_valist):
10143         Update usage of get_named().
10144         (dbus_message_iter_append_byte):
10145         Fix typo
10146         (dbus_message_iter_append_named)
10147         Fix typo
10148         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10149         More tests.
10150
10151 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10152
10153         * dbus/dbus-marshal.[ch]:
10154         Add array_type_pos argument to _dbus_marshal_validate_arg.
10155         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10156
10157         * dbus/dbus-message.[ch]:
10158         Multi-dimensional arrays have full type specification in the
10159         outermost array. Iter code re-arranged to handle this.
10160         Added some more iter tests.
10161
10162         * doc/dbus-specification.sgml:
10163         Add me to authors.
10164         Remove old FIXME.
10165         Update new array encoding description.
10166         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10167
10168         * test/data/invalid-messages/array-with-mixed-types.message:
10169         * test/data/valid-messages/array-of-array-of-uint32.message:
10170         Change to the new array format.
10171
10172         * test/data/invalid-messages/too-short-dict.message:
10173         Fix bug in test.
10174
10175         * test/data/valid-messages/recursive-types.message:
10176         Fix up and extend test.
10177
10178 2003-04-10  Havoc Pennington  <hp@pobox.com>
10179
10180         * bus/dispatch.c: lots of fixes
10181
10182         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10183         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10184         that was crack, broke the test service.
10185
10186         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10187         handling to avoid piling up errors if we get a failure on the
10188         first address.
10189
10190         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10191         pid in assertion failures.
10192
10193         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10194         to some fixed size of file descriptor array. Don't return TRUE
10195         anytime a timeout exists, that led to lots of busy loop silliness
10196         in the tests.
10197
10198 2003-04-09  Havoc Pennington  <hp@redhat.com>
10199
10200         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10201         I'd checked this in earlier but hadn't.
10202
10203 2003-04-09  Havoc Pennington  <hp@redhat.com>
10204
10205         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10206         the activation test (man this is getting old!)
10207
10208 2003-04-09  Havoc Pennington  <hp@redhat.com>
10209
10210         * test/test-utils.c: use dispatch status function to fix this up
10211
10212         * bus/connection.c (connection_watch_callback): don't dispatch
10213         from here
10214         (connection_timeout_callback): don't dispatch from here
10215         (bus_connections_setup_connection): set the dispatch status function
10216         (bus_connection_disconnected): unset it
10217
10218         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10219         used to add a connection to be dispatched
10220         (_dbus_loop_iterate): do the dispatching at the end of each
10221         iteration
10222
10223         * dbus/dbus-connection.c
10224         (dbus_connection_set_dispatch_status_function): new function
10225         allowing us to fix up main loop usage
10226         (_dbus_connection_last_unref): free all the various function
10227         user data
10228         (dbus_connection_dispatch): call the DispatchStatusFunction
10229         whenever this function returns
10230         (dbus_connection_handle_watch): call DispatchStatusFunction
10231         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10232         (reply_handler_timeout): call DispatchStatusFunction
10233         (dbus_connection_flush): call DispatchStatusFunction
10234
10235 2003-04-09  Havoc Pennington  <hp@redhat.com>
10236
10237         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10238         a memory leak
10239
10240         * bus/dispatch.c (check_service_activated): fix bug in test
10241
10242         * dbus/dbus-mainloop.c (check_timeout): fix this up
10243
10244         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10245         verbose output so we can sort out output from different processes,
10246         e.g. in the activation case.
10247
10248 2003-04-08  Colin Walters  <walters@gnu.org>
10249
10250         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10251         the pid file.
10252         (bus_context_new): Set it.
10253         (bus_context_unref): Use it to delete the pid file.
10254
10255 2003-04-08  Havoc Pennington  <hp@redhat.com>
10256
10257         * test/data/invalid-messages/array-with-mixed-types.message:
10258         regression test that fails for the moment
10259
10260         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10261         tests for convenience
10262
10263         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10264         array of nil, it broke things.
10265
10266         * test/data/invalid-messages/array-of-nil.message: regression test
10267
10268         * test/data/valid-messages/array-of-array-of-uint32.message:
10269         happened to write this so added it to suite
10270
10271 2003-04-08  Havoc Pennington  <hp@redhat.com>
10272
10273         * bus/driver.c (bus_driver_handle_acquire_service): init
10274         retval/reply before checking name
10275
10276         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10277         recursion depth argument
10278
10279         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10280         in the public struct for future extension
10281
10282         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10283         typo
10284
10285         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10286         message
10287
10288         * doc/dbus-specification.sgml: fix typo
10289
10290 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10291
10292         Implemented recursive types, named types and new-style iters
10293
10294         * bus/driver.c:
10295         * glib/test-thread-client.c: (thread_func):
10296         * glib/test-thread-server.c: (handle_test_message):
10297         * test/test-service.c: (handle_echo):
10298         Update to new api
10299
10300         * dbus/Makefile.am:
10301         * dbus/dbus-dict.c:
10302         * dbus/dbus-dict.h:
10303         * dbus/dbus.h
10304         Remove DBusDict
10305
10306         * dbus/dbus-internals.c: (_dbus_type_to_string):
10307         Update for new types.
10308
10309         * dbus/dbus-marshal.[ch]:
10310         Implement recursive types and the new marshalling format.
10311         Remove hardcoded dict marshalling.
10312         Marshal named types.
10313
10314         * dbus/dbus-message-builder.c:
10315         Add BYTE_ARRAY.
10316         Remove references to old types
10317
10318         * dbus/dbus-message.[ch]:
10319         New non-refcounted iter API that supports recursive iters.
10320         Use iters for appending, including support for recursive
10321         iters.
10322         Add byte and named type support.
10323         Update everything to new marshalling formats.
10324         Add tests for new API.
10325
10326         * dbus/dbus-protocol.h:
10327         Remove old array types.
10328         Add types: BYTE, ARRAY, DICT, NAMED
10329
10330         * dbus/dbus-string.c:
10331         * dbus/dbus-sysdeps.c:
10332         Make parse_double locale safe.
10333
10334         * dbus/dbus-test-main.c:
10335         Call setlocale.
10336
10337         * dbus/dbus-test.c:
10338         Kill dict test
10339
10340         * doc/dbus-specification.sgml:
10341         Update spec
10342
10343         * test/data/incomplete-messages/missing-body.message:
10344         * test/data/invalid-messages/bad-boolean.message:
10345         * test/data/invalid-messages/bad-boolean-array.message:
10346         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10347         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10348         * test/data/invalid-messages/too-short-dict.message:
10349         * test/data/valid-messages/dict-simple.message:
10350         * test/data/valid-messages/dict.message:
10351         * test/data/valid-messages/emptiness.message:
10352         * test/data/valid-messages/lots-of-arguments.message:
10353         * test/data/valid-messages/no-padding.message:
10354         * test/data/valid-messages/recursive-types.message:
10355         Add missing NAME fields
10356         Fix up dicts & arrays
10357
10358         * test/data/invalid-messages/dict-with-nil-value.message:
10359         Removed, this is not invalid anymore.
10360
10361         * test/data/valid-messages/recursive-types.message:
10362         Add new test for deeply recursive types.
10363
10364 2003-04-07  Havoc Pennington  <hp@pobox.com>
10365
10366         * bus/driver.c (bus_driver_handle_acquire_service): return an
10367         error if you try to acquire a service that starts with ':'
10368
10369 2003-04-07  Havoc Pennington  <hp@redhat.com>
10370
10371         * doc/dbus-specification.sgml: require that base service names
10372         start with ':' and that the base service is created/deleted
10373         as first and last things a connection does on the bus
10374
10375         * bus/dispatch.c (check_existent_service_activation): lots more
10376         work on the activation test; it doesn't fully pass yet...
10377
10378         * test/test-service.c (main): fix so we don't memleak the
10379         connection to the message bus
10380         (filter_func): accept a message asking us to exit
10381
10382 2003-04-06  Havoc Pennington  <hp@pobox.com>
10383
10384         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10385         from Colin Walters
10386
10387         * configure.in: fixes to Qt detection from Colin Walters
10388
10389         * doc/Makefile.am: Only remove generated docbook dirs if they
10390         exist, from Colin Walters
10391
10392         * dbus/dbus-bus.c: change how we set well-known connections to
10393         NULL, so that it works if a single connection is stored in
10394         two well-known array slots.
10395
10396         * test/Makefile.am: remove a lot of stuff that isn't immediately
10397         useful, it's in CVS history if we want it.
10398
10399         * test/test-service.c: use dbus-mainloop instead of that
10400         watch.[hc] crack
10401
10402 2003-04-06  Havoc Pennington  <hp@pobox.com>
10403
10404         * dbus/Makefile.am: split lists of sources into stuff that goes in
10405         the library, util functions that go in the lib and are also used
10406         elsewhere, and util functions that are used in tests/daemon but
10407         don't go in the lib.
10408
10409         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10410         here so it can be used in test binaries also
10411
10412 2003-04-06  Havoc Pennington  <hp@pobox.com>
10413
10414         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10415         here in the parent process, so we can return an error if it
10416         fails. Also, move some of the code into the child so the parent
10417         is less hosed if we fail midway through.
10418
10419         * bus/bus.c (bus_context_new): move pidfile detection further up
10420         in the function, before we start overwriting sockets and such.
10421
10422         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10423
10424         * configure.in: add --with-system-pid-file and --with-system-socket
10425
10426 2003-04-06  Colin Walters  <walters@verbum.org>
10427
10428         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10429
10430         * bus/system.conf.in: Declare a pidfile.
10431
10432         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10433         create one (if appropriate).
10434
10435         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10436         (struct BusConfigParser) [pidfile]: New.
10437         (element_type_to_name, merge_included, start_busconfig_child)
10438         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10439         (bus_config_parser_unref): Free it.
10440         (bus_config_parser_get_pidfile): New function.
10441
10442         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10443
10444         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10445
10446         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10447
10448         * dbus/dbus-sysdeps.h: Prototype it.
10449
10450 2003-04-06  Havoc Pennington  <hp@pobox.com>
10451
10452         * bus/bus.c (bus_context_new): print the address in here, rather
10453         than in main(), because we need to do it before forking the daemon
10454
10455         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10456         on the service nonexistent error
10457
10458         * bus/driver.c (bus_driver_handle_acquire_service): set the
10459         sender on the AcquireService reply
10460
10461         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10462         server also listen on a UNIX socket so services can connect to it.
10463
10464 2003-04-06  Havoc Pennington  <hp@pobox.com>
10465
10466         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10467         so it detects deadlocks and also we actually init threads when
10468         debugging.
10469
10470 2003-04-06  Havoc Pennington  <hp@pobox.com>
10471
10472         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10473         save the domain socket name, and unlink it when we disconnect the
10474         server. Means that at least when we exit normally, we won't leave
10475         a bunch of junk in /tmp
10476
10477         * dbus/dbus-transport-unix.c
10478         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10479         memory management). (I was making a real change here but then
10480         didn't)
10481
10482 2003-04-06  Havoc Pennington  <hp@pobox.com>
10483
10484         * bus/bus.c (bus_context_new): fix wrong handling of
10485         server_data_slot_unref() in the error case.
10486
10487         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10488         "(condition) != 0" to _dbus_real_assert so that
10489         "_dbus_assert (pointer)" doesn't cause a warning
10490
10491         * bus/main.c (main): accept --print-address option to print out
10492         the message bus address
10493
10494         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10495
10496         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10497         "tmpdir" option to unix: address on client side
10498
10499         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10500         to unix: address
10501
10502         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10503         we can use to create sockets in the test suite.
10504
10505         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10506         cleanly. To be used for testing.
10507
10508         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10509
10510         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10511
10512         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10513         handle trying to call this when there's no servers active
10514
10515 2003-04-05  Havoc Pennington  <hp@pobox.com>
10516
10517         * NEWS: update
10518
10519         * configure.in: 0.8
10520
10521 2003-04-05  Havoc Pennington  <hp@pobox.com>
10522
10523         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10524         crash on startup. Need to get "try starting the daemon"
10525         in the test suite I guess. ;-)
10526
10527         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10528         tracked the number of open connections; it's better done in
10529         application-specific code as you want it to span all servers etc.
10530
10531 2003-04-05  Havoc Pennington  <hp@pobox.com>
10532
10533         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10534         patch from Colin Walters
10535
10536 2003-04-05  Havoc Pennington  <hp@pobox.com>
10537
10538         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10539         reality; in fact multiple mechanisms are allowed.
10540
10541         * dbus/dbus-internals.c (_dbus_real_assert)
10542         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10543         _dbus_assert_not_reached() into functions, so that they don't show
10544         up in basic block counts for test coverage, and don't use up as
10545         much disk space. Does mean slower execution speed though, so
10546         assumes --disable-asserts is the normal production case.
10547
10548 2003-04-05  Havoc Pennington  <hp@pobox.com>
10549
10550         * test/Makefile.am (dist-hook): also dist *.in files
10551
10552         * NEWS: update
10553
10554         * configure.in: 0.7
10555
10556 2003-04-05  Havoc Pennington  <hp@pobox.com>
10557
10558         * dbus/dbus-string.c: docs warning
10559
10560         * dbus/dbus-spawn.c: missing docs
10561
10562         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10563
10564 2003-04-05  Havoc Pennington  <hp@pobox.com>
10565
10566         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10567         magic from GLib
10568
10569         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10570         to -1 once we've reaped the babysitter
10571         (_dbus_babysitter_handle_watch): do as much work as we can, not
10572         just one go of it
10573
10574         * bus/activation.c: add code using DBusBabysitter so that we
10575         handle it when a service fails to start up properly.
10576         (bus_activation_service_created): don't remove the activation
10577         entries as we go, just let them get removed when we free the pending
10578         activation. Unref reply messages after sending them.
10579
10580 2003-04-05  Havoc Pennington  <hp@pobox.com>
10581
10582         * test/decode-gcov.c (main): print per-directory stats in the report
10583
10584         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10585
10586 2003-04-05  Havoc Pennington  <hp@pobox.com>
10587
10588         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10589
10590         * test/decode-gcov.c: hack up a little program to suck data
10591         out of gcov files. Yes this is sort of silly.
10592
10593         * configure.in: define something in config.h and do an
10594         AM_CONDITIONAL when gcov is enabled
10595
10596 2003-04-04  Havoc Pennington  <hp@redhat.com>
10597
10598         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10599         return a "babysitter" object that is used to monitor the status of
10600         the spawned process and reap it when required.
10601
10602         * test/test-segfault.c, test/test-exit.c,
10603         test/test-sleep-forever.c: binaries that do various lame things,
10604         used in the test suite.
10605
10606         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10607
10608 2003-04-03  Havoc Pennington  <hp@pobox.com>
10609
10610         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10611         in preparation for modifying it, dbus-sysdeps is getting
10612         a bit unmanageable.
10613
10614 2003-04-03  Havoc Pennington  <hp@redhat.com>
10615
10616         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10617         have multiple ones
10618
10619         * bus/*.[hc]: adapt to mainloop change
10620
10621 2003-04-03  Havoc Pennington  <hp@redhat.com>
10622
10623         * bus/activation.c (load_directory): fix up memleaks
10624         (bus_activation_entry_free): free the entry
10625
10626         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10627         we get one from the message bus; fix memleaks.
10628
10629         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10630
10631 2003-04-03  Havoc Pennington  <hp@pobox.com>
10632
10633         * bus/config-parser.c (bus_config_parser_unref): free
10634         list of mechanisms, bug discovered by test suite enhancements
10635         (putting system.conf and session.conf into suite)
10636
10637         * test/Makefile.am, test/test-service.c: add placeholder for a
10638         test service that we'll activate as part of test suite. Doesn't
10639         do anything yet.
10640
10641         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10642         setting NULL value, and use system malloc not dbus_malloc()
10643         when we have unavoidable memleakage.
10644
10645         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10646         didn't work, and support DBUS_BUS_ACTIVATION.
10647
10648         * bus/activation.c (child_setup): pass our well-known bus type to
10649         the child
10650
10651         * bus/config-parser.c: support <type> to specify well-known type
10652
10653         * doc/dbus-specification.sgml: document the env variables to
10654         locate well-known buses and find service activator
10655
10656 2003-04-02  Havoc Pennington  <hp@redhat.com>
10657
10658         * test/Makefile.am (all-local): add a rule to copy tests to
10659         builddir, so we can have generated tests. Use this to remove the
10660         silly hack for testing system.conf and session.conf. Will use this
10661         shortly to generate .service files pointing to test binaries.
10662
10663 2003-04-02  Havoc Pennington  <hp@redhat.com>
10664
10665         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10666         current alloc and needed new length, not max of the doubled
10667         allocation and needed new length. Also, when building tests,
10668         don't do the double-allocation stuff, just realloc every time.
10669
10670 2003-04-02  Havoc Pennington  <hp@redhat.com>
10671
10672         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10673         in error messages
10674         (_dbus_string_get_dirname): new
10675         (_dbus_sysdeps_test): new
10676         (_dbus_directory_open): include dirnames in error messages
10677
10678         * bus/config-parser.c: interpret <include> and <includedir> and
10679         <servicedir> relative to config file location if the given
10680         filename is not absolute.
10681
10682         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10683
10684 2003-04-02  Havoc Pennington  <hp@redhat.com>
10685
10686         * bus/connection.c (bus_transaction_send_error_reply): set sender
10687         service for the error, and unref the reply on success
10688
10689         * bus/activation.c: convert to use BusTransaction so OOM can be
10690         handled correctly
10691         (bus_activation_service_created): set sender of the message
10692
10693 2003-04-01  Havoc Pennington  <hp@redhat.com>
10694
10695         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10696         <includedir> (at least mostly)
10697
10698         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10699         first, then the user ID
10700
10701 2003-04-01  Havoc Pennington  <hp@pobox.com>
10702
10703         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10704         function
10705
10706         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10707
10708         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10709
10710         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10711         socket 0777, and unlink any existing socket.
10712
10713         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10714         the configuration file so specifies; set up auth mechanism
10715         restrictions
10716
10717         * bus/config-parser.c (bus_config_parser_content): add support
10718         for <fork> option and fill in code for <auth>
10719
10720         * bus/system.conf.in: add <fork/> to default configuration,
10721         and limit auth mechanisms to EXTERNAL
10722
10723         * doc/config-file.txt (Elements): add <fork>
10724
10725         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10726         (_dbus_change_identity): new function
10727
10728 2003-03-31  Havoc Pennington  <hp@redhat.com>
10729
10730         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10731         (_dbus_listen_unix_socket): fix off-by-one error in null
10732         termination spotted by Nalin
10733
10734 2003-03-31  Havoc Pennington  <hp@redhat.com>
10735
10736         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10737         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10738         having a real home directory available.
10739
10740 2003-03-31  Havoc Pennington  <hp@redhat.com>
10741
10742         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10743
10744         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10745
10746         * configure.in: add support for specifying a style of init script
10747         to install
10748
10749 2003-03-31  Havoc Pennington  <hp@redhat.com>
10750
10751         Fix some annoying DBusString API and fix all affected code.
10752
10753         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10754         max_length argument
10755         (_dbus_string_get_data): change to return string instead of using
10756         an out param
10757         (_dbus_string_get_const_data): ditto
10758         (_dbus_string_get_data_len): ditto
10759         (_dbus_string_get_const_data_len): ditto
10760
10761 2003-03-31  Havoc Pennington  <hp@redhat.com>
10762
10763         * bus/main.c (main): fix up the command line arguments to be nicer
10764
10765 2003-03-31  Havoc Pennington  <hp@redhat.com>
10766
10767         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10768         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10769         final location that lands in the config file
10770
10771         * bus/config-loader-expat.c (bus_config_load): fix type of
10772         XML_Parser variable
10773
10774         * doc/TODO: remove TODO item for dbus_bus_get()
10775
10776         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10777
10778 2003-03-31  Havoc Pennington  <hp@pobox.com>
10779
10780         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10781         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10782         argument since they are always client side
10783
10784         * dbus/dbus-server.c (dbus_server_get_address): new function
10785
10786         * bus/main.c (main): take the configuration file as an argument.
10787
10788         * test/data/valid-config-files/debug-allow-all.conf: new file to
10789         use with dispatch.c tests for example
10790
10791         * bus/test-main.c (main): require test data dir
10792
10793         * bus/bus.c (bus_context_new): change this to take a
10794         configuration file name as argument
10795
10796         * doc/config-file.txt (Elements): add <servicedir>
10797
10798         * bus/system.conf, bus/session.conf: new files
10799
10800         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10801         well-known socket if none set
10802
10803         * configure.in: create system.conf and session.conf
10804
10805 2003-03-30  Havoc Pennington  <hp@pobox.com>
10806
10807         * bus/config-parser.c: hacking
10808
10809         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10810         to shut down, since it could cause weirdness with the DBusList
10811         lock
10812
10813         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10814         link-oriented stack routines
10815         (alloc_link): free the mempool if the first alloc from it fails
10816
10817         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10818
10819         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10820         from GLib
10821         (_dbus_string_skip_white): new
10822
10823         * doc/config-file.txt (Elements): add <includedir>
10824
10825 2003-03-28  Havoc Pennington  <hp@pobox.com>
10826
10827         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10828         (_dbus_string_copy_data): new functions
10829
10830 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10831
10832         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10833         * dbus/dbus-bus.h:
10834         Add dbus_bus_get.
10835
10836         * dbus/dbus-memory.c:
10837         Fix a doc comment.
10838
10839 2003-03-28  Havoc Pennington  <hp@pobox.com>
10840
10841         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10842         I think it may have just been superstition. Not sure.
10843
10844         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10845         failures that were not being handled.
10846
10847         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10848
10849         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10850         row that will fail on out-of-memory.
10851
10852         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10853         function for testing out-of-memory handling.
10854
10855         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10856         allocation functions, they do map exactly to the expat ones.
10857
10858 2003-03-27  Havoc Pennington  <hp@redhat.com>
10859
10860         * bus/config-loader-libxml.c (bus_config_load): add another error
10861         check
10862
10863 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10864
10865         * doc/TODO:
10866         Add note about automatic service activation.
10867
10868         * doc/dbus-specification.sgml:
10869         Rename the specification and clarify a few things.
10870
10871 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10872
10873         * Doxyfile.in:
10874         * dbus/dbus-address.c:
10875         * dbus/dbus-dict.c:
10876         * dbus/dbus-marshal.c:
10877         * dbus/dbus-server-debug-pipe.c:
10878         * dbus/dbus-transport-unix.c:
10879         Fix documentation warnings.
10880
10881 2003-03-26  Havoc Pennington  <hp@pobox.com>
10882
10883         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10884         after every test so it's quick and easy to see which leaked, and
10885         so we test multiple dbus_shutdown() calls
10886
10887         * configure.in: change configure.in XML stuff to also support
10888         expat
10889
10890         * config-loader-libxml.c: some hacking
10891
10892         * config-loader-expat.c: some hacking
10893
10894         * config-parser.c: some hacking, plus tests
10895
10896 2003-03-25  Havoc Pennington  <hp@redhat.com>
10897
10898         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10899
10900         * configure.in: add --with-xml option to specify XML library,
10901         right now only libxml is supported.
10902
10903         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10904         nonworking code between home and work, still just stubs
10905
10906 2003-03-24  Havoc Pennington  <hp@redhat.com>
10907
10908         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10909         file
10910
10911         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10912         NULL argument for "message" if the error is a well-known one,
10913         fill in a generic message in this case.
10914
10915         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10916         favor of DBusError
10917
10918         * bus/test.c (bus_test_flush_bus): add
10919
10920         * bus/policy.c (bus_policy_test): test code stub
10921
10922 2003-03-24  Havoc Pennington  <hp@pobox.com>
10923
10924         * bus/connection.c (bus_connections_setup_connection): set up
10925         the "can this user connect" function, but it always returns
10926         TRUE until we have a config file parser so we can have a config
10927         file that allows connections.
10928
10929 2003-03-23  Havoc Pennington  <hp@pobox.com>
10930
10931         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10932         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10933         the mutex, so we can check for proper memory management
10934         and OOM handling.
10935
10936         * dbus/dbus-dataslot.c: remove the mutex from
10937         DBusDataSlotAllocator and lock it manually when using it,
10938         to simplify fitting it into the global slots framework.
10939
10940         * dbus/dbus-threads.c (init_static_locks): rework how we're
10941         handling global locks so they are easily shut down.
10942
10943         * bus/policy.c (bus_policy_append_rule): fix
10944
10945         * bus/test-main.c (main): check for memleaks
10946
10947         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10948         test suite check for memleaks
10949
10950         * dbus/dbus-memory.c: add support in test mode for tracking
10951         number of outstanding blocks
10952
10953 2003-03-23  Havoc Pennington  <hp@pobox.com>
10954
10955         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10956         policies code
10957
10958         * dbus/dbus-hash.h: add ULONG hash keys
10959
10960         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10961         (_dbus_get_group_id): new function
10962
10963 2003-03-20  Havoc Pennington  <hp@redhat.com>
10964
10965         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10966         new function
10967         (dbus_connection_get_unix_user): new function
10968
10969 2003-03-20  Havoc Pennington  <hp@pobox.com>
10970
10971         * bus/connection.c (bus_connection_send_oom_error): assert that
10972         message has a sender
10973         (connection_execute_transaction): ditto
10974         (bus_connection_preallocate_oom_error): fix to set the sender, and
10975         set recipient to the destination service, not the bus driver
10976
10977         * bus/policy.c: hacking
10978
10979         * dbus/dbus-message.c (dbus_message_service_is): new function
10980         (dbus_message_sender_is): new
10981
10982 2003-03-19  Havoc Pennington  <hp@redhat.com>
10983
10984         * bus/policy.c: start sketching code for policy restrictions on
10985         what connections can do.
10986
10987 2003-03-18  Havoc Pennington  <hp@redhat.com>
10988
10989         * doc/TODO: some notes on high-level todo items. Little nitpick
10990         stuff is all in @todo, so no need to add it here.
10991
10992         * doc/config-file.txt: some notes on how config file might look
10993
10994 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
10995
10996         * configure.in: 0.6
10997
10998         * NEWS: Update.
10999
11000 2003-03-17  Havoc Pennington  <hp@redhat.com>
11001
11002         * dbus/dbus-internals.h: add gcc attributes so that
11003         our printf-style functions warn on bad arguments to
11004         format
11005
11006         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11007         format bug
11008
11009         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11010         printf format bug
11011
11012 2003-03-17  Havoc Pennington  <hp@redhat.com>
11013
11014         * bus/test-main.c (main): make it print something as it runs
11015         so make check doesn't look stuck
11016
11017         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11018         from CVS, now obsolete
11019
11020 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11021
11022         * bus/dispatch.c: (bus_dispatch):
11023         Refetch the service name since it may have been reallocated
11024         when dbus_message_set_sender was called.
11025
11026         * dbus/dbus-sysdeps.c: (_dbus_accept):
11027         Add address and address length variables and use them to stop
11028         valgrind from complaining.
11029
11030 2003-03-17  Havoc Pennington  <hp@pobox.com>
11031
11032         All tests pass, no memleaks, no valgrind complaints.
11033
11034         * bus/test.c: refcount handler_slot
11035
11036         * bus/connection.c (bus_connections_new): refcount
11037         connection_data_slot
11038
11039         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11040         bytes so that auth scripts pass.
11041
11042         * bus/dispatch.c: init message_handler_slot so it gets allocated
11043         properly
11044
11045         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11046
11047         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11048         dealloc server_pipe_hash when no longer used for benefit of
11049         leak checking
11050
11051         * dbus/dbus-auth.c (process_command): memleak fix
11052
11053         * bus/dispatch.c (check_hello_message): memleak fix
11054
11055 2003-03-16  Havoc Pennington  <hp@pobox.com>
11056
11057         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11058
11059 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11060
11061         * bus/activation.c (bus_activation_activate_service): Append
11062         the pending activation entry to the list of pending activations.
11063
11064 2003-03-16  Havoc Pennington  <hp@pobox.com>
11065
11066         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11067         connections
11068
11069         * dbus/dbus-address.c (create_entry): fix OOM handling when
11070         failing to alloc entry->method
11071
11072 2003-03-16  Havoc Pennington  <hp@pobox.com>
11073
11074         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11075         the watch
11076
11077         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11078         add some missing dbus_set_result
11079
11080         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11081         alloc the DBusMessageHandler
11082
11083         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11084         the transport here, since we call this from the finalizer; it
11085         resulted in a double-finalize.
11086
11087         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11088         where we tried to use transport->connection that was NULL,
11089         happened when transport was disconnected early on due to OOM
11090
11091         * bus/*.c: adapt to handle OOM for watches/timeouts
11092
11093         * dbus/dbus-transport-unix.c: port to handle OOM during
11094         watch handling
11095
11096         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11097         reference to unused bytes instead of a copy
11098
11099         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11100         out of memory
11101
11102         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11103         FALSE on OOM
11104
11105         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11106         of memory
11107
11108 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11109
11110         * doc/dbus-specification.sgml:
11111         Document reply message for ActivateService.
11112
11113 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11114
11115         * bus/activation.c: (bus_pending_activation_entry_free),
11116         (bus_pending_activation_free), (bus_activation_new),
11117         (bus_activation_unref), (bus_activation_service_created),
11118         (bus_activation_activate_service):
11119         * bus/activation.h:
11120         * bus/bus.c: (bus_context_new):
11121         * bus/desktop-file.c: (new_section):
11122         * bus/driver.c: (bus_driver_send_service_deleted),
11123         (bus_driver_handle_activate_service):
11124         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11125         * bus/services.h:
11126         * dbus/dbus-connection.c:
11127         (dbus_connection_send_with_reply_and_block):
11128         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11129         * dbus/dbus-protocol.h:
11130         Make activation work better. Now pending activations will be queued
11131         and the daemon won't try to activate services that are already registered.
11132
11133 2003-03-16  Havoc Pennington  <hp@pobox.com>
11134
11135         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11136         connection data
11137
11138         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11139         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11140
11141 2003-03-16  Havoc Pennington  <hp@pobox.com>
11142
11143         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11144         this. always run the test suite before commit...
11145
11146         * bus/*: adapt to DBusConnection API changes
11147
11148         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11149         requires renaming stuff to avoid dbus_connection_dispatch name
11150         conflict.
11151
11152         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11153         function
11154
11155         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11156         separate from _dbus_message_loader_return_buffer()
11157
11158         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11159         this, because it's now always broken to use; the number of
11160         messages in queue vs. the number still buffered by the message
11161         loader is undefined/meaningless. Should use
11162         dbus_connection_get_dispatch_state().
11163         (dbus_connection_dispatch): rename from
11164         dbus_connection_dispatch_message
11165
11166 2003-03-16  Havoc Pennington  <hp@pobox.com>
11167
11168         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11169         implementation
11170
11171 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11172
11173         * dbus/dbus-connection.c:
11174         (dbus_connection_send_with_reply_and_block):
11175         Decrease connection->n_incoming when removing an entry
11176         from the list.
11177         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11178         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11179         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11180         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11181         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11182         (dbus_dict_get_byte_array):
11183         Handle NULL arrays and strings. Also add support for byte arrays.
11184
11185         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11186         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11187         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11188         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11189         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11190         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11191         * dbus/dbus-marshal.h:
11192         Add support for marshalling and demarshalling empty arrays and strings.
11193
11194         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11195         (dbus_message_append_string_array),
11196         (dbus_message_iter_get_boolean),
11197         (dbus_message_iter_get_boolean_array),
11198         (dbus_message_iter_get_int32_array),
11199         (dbus_message_iter_get_uint32_array),
11200         (dbus_message_iter_get_double_array),
11201         (dbus_message_iter_get_byte_array),
11202         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11203         (check_message_handling):
11204         Add support for getting empty arrays and dicts.
11205
11206         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11207         Don't do any validation at all for now, that's better than just checking
11208         for ASCII.
11209
11210         * test/data/valid-messages/emptiness.message:
11211         New test message with lots of empty arrays.
11212
11213 2003-03-16  Havoc Pennington  <hp@pobox.com>
11214
11215         * dbus/dbus-connection.c
11216         (_dbus_connection_queue_received_message_link): new function that
11217         can't fail due to OOM
11218
11219         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11220         new function pops a message together with a list link
11221         containing it.
11222
11223         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11224         message queuing functions to avoid needing to alloc memory
11225
11226 2003-03-16  Havoc Pennington  <hp@pobox.com>
11227
11228         Oops - test code was only testing failure of around 30 of the
11229         mallocs in the test path, but it turns out there are 500+
11230         mallocs. I believe this was due to misguided linking setup such
11231         that there was one copy of dbus_malloc etc. in the daemon and one
11232         in the shared lib, and only daemon mallocs were tested. In any
11233         case, the test case now tests all 500+ mallocs, and doesn't pass
11234         yet, though there are lots of fixes in this patch.
11235
11236         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11237         this so that it doesn't need to allocate memory, since it
11238         has no way of indicating failure due to OOM (and would be
11239         annoying if it did).
11240
11241         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11242
11243         * bus/Makefile.am: rearrange to create two self-contained
11244         libraries, to avoid having libraries with overlapping symbols.
11245         that was resulting in weirdness, e.g. I'm pretty sure there
11246         were two copies of global static variables.
11247
11248         * dbus/dbus-internals.c: move the malloc debug stuff to
11249         dbus-memory.c
11250
11251         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11252         empty.
11253
11254         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11255
11256         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11257         on failure.
11258
11259         * bus/dispatch.c (bus_dispatch_add_connection): free
11260         message_handler_slot when no longer using it, so
11261         memory leak checkers are happy for the test suite.
11262
11263         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11264
11265         * bus/bus.c (new_connection_callback): disconnect in here if
11266         bus_connections_setup_connection fails.
11267
11268         * bus/connection.c (bus_connections_unref): fix to free the
11269         connections
11270         (bus_connections_setup_connection): if this fails, don't
11271         disconnect the connection, just be sure there are no side
11272         effects.
11273
11274         * dbus/dbus-string.c (undo_alignment): unbreak this
11275
11276         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11277         leaking
11278         (_dbus_auth_new): fix the order in which we free strings
11279         on OOM failure
11280
11281         * bus/connection.c (bus_connection_disconnected): fix to
11282         not send ServiceDeleted multiple times in case of memory
11283         allocation failure
11284
11285         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11286         get the base service name
11287         (dbus_bus_register_client): don't return base service name,
11288         instead store it on the DBusConnection and have an accessor
11289         function for it.
11290         (dbus_bus_register_client): rename dbus_bus_register()
11291
11292         * bus/dispatch.c (check_hello_message): verify that other
11293         connections on the bus also got the correct results, not
11294         just the one sending hello
11295
11296 2003-03-15  Havoc Pennington  <hp@pobox.com>
11297
11298         Make it pass the Hello handling test including all OOM codepaths.
11299         Now to do other messages...
11300
11301         * bus/services.c (bus_service_remove_owner): fix crash when
11302         removing owner from an empty list of owners
11303         (bus_registry_ensure): don't leave service in the list of
11304         a connection's owned services if we fail to put the service
11305         in the hash table.
11306
11307         * bus/connection.c (bus_connection_preallocate_oom_error): set
11308         error flag on the OOM error.
11309
11310         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11311         handle _dbus_transport_set_connection failure
11312
11313         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11314         to create watches up front and simply enable/disable them as
11315         needed.
11316         (unix_connection_set): this can now fail on OOM
11317
11318         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11319         of enabling/disabling a watch or timeout.
11320
11321         * bus/loop.c (bus_loop_iterate): don't touch disabled
11322         watches/timeouts
11323
11324         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11325
11326 2003-03-15  Havoc Pennington  <hp@pobox.com>
11327
11328         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11329         write useful test code, after all that futzing around ;-)
11330
11331         Test does not yet pass because we can't handle OOM in
11332         _dbus_transport_messages_pending (basically,
11333         dbus_connection_preallocate_send() does not prealloc the write
11334         watch). To fix this, I think we need to add new stuff to
11335         set_watch_functions, namely a SetEnabled function so we can alloc
11336         the watch earlier, then enable it later.
11337
11338         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11339         dbus-memory.c to the convenience lib
11340
11341         * bus/test.c: rename some static functions to keep them clearly
11342         distinct from stuff in connection.c. Handle client disconnection.
11343
11344 2003-03-14  Havoc Pennington  <hp@pobox.com>
11345
11346         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11347         transport, tests more of the real codepath. Set up clients
11348         with bus_setup_debug_client.
11349
11350         * bus/test.c (bus_setup_debug_client): function to set up debug
11351         "clients" on the main loop
11352
11353         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11354         support
11355
11356         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11357         server type
11358
11359         * dbus/dbus-server-debug.c: support a debug server based on pipes
11360
11361         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11362         (_dbus_close): new function
11363
11364         * configure.in: check for socketpair
11365
11366 2003-03-14  Havoc Pennington  <hp@redhat.com>
11367
11368         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11369         cheesy hack
11370
11371         * dbus/dbus-transport-debug.c: rework this a good bit to be
11372         less complicated. hopefully still works.
11373
11374         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11375         manually
11376
11377         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11378         after running it
11379
11380         * dbus/dbus-message.c (dbus_message_copy): rename from
11381         dbus_message_new_from_message, fix it up to copy
11382         all the message fields, add test case
11383
11384         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11385         not quite passing yet
11386
11387 2003-03-14  Havoc Pennington  <hp@pobox.com>
11388
11389         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11390         until no work remains" in test code. (the large diff here
11391         is just code movement, no actual changes)
11392
11393         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11394         1, no point waiting around for test code.
11395         (_dbus_server_debug_accept_transport): unref the timeout
11396         after adding it (right?)
11397
11398         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11399
11400 2003-03-13  Havoc Pennington  <hp@redhat.com>
11401
11402         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11403         out of memory
11404
11405         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11406         of memory
11407
11408         * dbus/dbus-connection.h: Make AddWatchFunction and
11409         AddTimeoutFunction return a bool so they can fail on out-of-memory
11410
11411         * bus/bus.c (bus_context_new): set up timeout handlers
11412
11413         * bus/connection.c (bus_connections_setup_connection): set up
11414         timeout handlers
11415
11416         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11417         can fail
11418
11419         * bus/bus.c (bus_context_new): adapt to changes
11420
11421         * bus/connection.c: adapt to changes
11422
11423         * test/watch.c: adapt to DBusWatch changes
11424
11425         * bus/dispatch.c (bus_dispatch_test): started adding this but
11426         didn't finish
11427
11428 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11429
11430         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11431
11432 2003-03-13  Havoc Pennington  <hp@pobox.com>
11433
11434         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11435         set up a test framework as for the library
11436
11437 2003-03-12  Havoc Pennington  <hp@pobox.com>
11438
11439         Throughout: purge global variables, introduce BusActivation,
11440         BusConnections, BusRegistry, etc. objects instead.
11441
11442         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11443         message bus object
11444
11445         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11446         going to redo this a bit differently I think
11447
11448 2003-03-12  Havoc Pennington  <hp@redhat.com>
11449
11450         Mega-patch that gets the message bus daemon initially handling
11451         out-of-memory. Work still needed. Also lots of random
11452         moving stuff to DBusError instead of ResultCode.
11453
11454         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11455
11456         * dbus/dbus-connection.c
11457         (dbus_connection_send_with_reply_and_block): use DBusError
11458
11459         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11460         DBusResultCode
11461
11462         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11463         code here, as the only failure possible is OOM.
11464
11465         * bus/connection.c (bus_connection_disconnect):
11466         rename bus_connection_disconnected as it's a notification only
11467
11468         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11469         "name" on get_args failure, should be done by get_args;
11470         don't disconnect client for bad args, just return an error.
11471         (bus_driver_handle_service_exists): ditto
11472
11473         * bus/services.c (bus_services_list): NULL-terminate returned array
11474
11475         * bus/driver.c (bus_driver_send_service_lost)
11476         (bus_driver_send_service_acquired): send messages from driver to a
11477         specific client to the client's unique name, not to the broadcast
11478         service.
11479
11480         * dbus/dbus-message.c (decode_header_data): reject messages that
11481         contain no name field
11482         (_dbus_message_get_client_serial): rename to
11483         dbus_message_get_serial and make public
11484         (_dbus_message_set_serial): rename from set_client_serial
11485         (_dbus_message_set_reply_serial): make public
11486         (_dbus_message_get_reply_serial): make public
11487
11488         * bus/connection.c (bus_connection_foreach): allow stopping
11489         iteration by returning FALSE from foreach function.
11490
11491         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11492         (dbus_connection_free_preallocated_send)
11493         (dbus_connection_preallocate_send): new API for sending a message
11494         without possibility of malloc failure.
11495         (dbus_connection_send_message): rename to just
11496         dbus_connection_send (and same for whole function family)
11497
11498         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11499
11500         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11501
11502         * bus/activation.c: handle/return errors
11503
11504         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11505
11506         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11507         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11508         (_dbus_result_from_errno): move to this file
11509
11510 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11511
11512         * dbus/dbus-marshal.c:
11513         (_dbus_marshal_set_string):
11514         Take a length argument so we can marshal the correct string
11515         length.
11516
11517         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11518         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11519         (_dbus_marshal_test):
11520         * dbus/dbus-marshal.h:
11521         Add support for marshalling and demarshalling dicts.
11522
11523         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11524         Add support for TYPE DICT.
11525
11526         * dbus/dbus-message.c: (set_string_field):
11527         Adjust header padding.
11528
11529         (dbus_message_append_args_valist), (dbus_message_append_dict),
11530         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11531         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11532         (check_message_handling), (check_have_valid_message):
11533         * dbus/dbus-message.h:
11534         Add functions for setting and getting dicts.
11535
11536         * dbus/dbus-protocol.h:
11537         Add DBUS_TYPE_DICT.
11538
11539         * dbus/dbus.h:
11540         Add dbus-dict.h
11541
11542         * doc/dbus-specification.sgml:
11543         Add information about how dicts are marshalled.
11544
11545         * test/data/invalid-messages/dict-with-nil-value.message:
11546         * test/data/invalid-messages/too-short-dict.message:
11547         * test/data/valid-messages/dict-simple.message:
11548         * test/data/valid-messages/dict.message:
11549         Add sample messages containing dicts.
11550
11551 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11552
11553         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11554
11555 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11556
11557         * dbus/Makefile.am:
11558         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11559         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11560         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11561         (dbus_dict_set_double), (dbus_dict_set_string),
11562         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11563         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11564         (dbus_dict_set_string_array), (_dbus_dict_test):
11565         * dbus/dbus-dict.h:
11566         Fix according to comments from Havoc.
11567
11568 2003-03-06  Michael Meeks  <michael@server.home>
11569
11570         * configure.in: if we don't have kde-config, disable have_qt.
11571
11572 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11573
11574         * dbus/Makefile.am:
11575         Add dbus-dict.[ch]
11576
11577         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11578         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11579         (dbus_dict_remove), (dbus_dict_get_value_type),
11580         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11581         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11582         (dbus_dict_put_double), (dbus_dict_put_string),
11583         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11584         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11585         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11586         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11587         (dbus_dict_get_double), (dbus_dict_get_string),
11588         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11589         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11590         (dbus_dict_get_string_array), (_dbus_dict_test):
11591         * dbus/dbus-dict.h:
11592         Add DBusDict implementation
11593
11594         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11595         * dbus/dbus-test.h:
11596         Add _dbus_dict_test
11597
11598 2003-03-04  Havoc Pennington  <hp@pobox.com>
11599
11600         * test/data/auth/*: adapt to changes
11601
11602         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11603         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11604         userid
11605
11606         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11607         more stuff from being in a context name, to make the protocol
11608         simpler to deal with
11609
11610         * dbus/dbus-errors.c (dbus_error_has_name): new function
11611         (dbus_error_is_set): new function
11612
11613         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11614         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11615
11616         * dbus/dbus-connection.c (dbus_connection_flush): also read
11617         messages during a flush operation
11618
11619         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11620
11621 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11622
11623         * configure.in: Check for gethostbyname on Solaris.
11624
11625         * dbus/dbus-transport.c: (_dbus_transport_open):
11626         Remove duplicate "tcp" entry.
11627
11628         * doc/dbus-specification.sgml:
11629         Clarify some things.
11630
11631 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11632
11633         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11634         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11635         (_dbus_keyring_test):
11636         * dbus/dbus-md5.c: (_dbus_md5_compute):
11637         * dbus/dbus-sha.c: (_dbus_sha_compute):
11638         Plug memory leaks.
11639
11640 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11641
11642         * README: Add some things.
11643
11644 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11645
11646         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11647         after case DBUS_TYPE_BOOELAN.
11648
11649 2003-03-02  Havoc Pennington  <hp@pobox.com>
11650
11651         * test/break-loader.c (randomly_set_extreme_ints): add test that
11652         sets really huge and small integers
11653
11654         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11655         that length of boolean array fits in the string, and that
11656         string has room for boolean value in single-bool case.
11657
11658         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11659         optional value to "ALIGN" command which is what to fill the
11660         alignment with.
11661
11662         * test/data/valid-messages/no-padding.message: add regression
11663         test for the message padding problem
11664
11665 2003-03-02  Havoc Pennington  <hp@pobox.com>
11666
11667         * dbus/dbus-message.c (decode_header_data): fix to always init
11668         message_padding, from Benjamin Dauvergne
11669
11670 2003-03-02  Havoc Pennington  <hp@pobox.com>
11671
11672         * configure.in: 0.5
11673
11674         * NEWS: Update.
11675
11676 2003-03-01  Joe Shaw  <joe@assbarn.com>
11677
11678         * configure.in: Check for "struct cmsgcred" and try to access its
11679         members for BSD-like unices.
11680
11681         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11682         _dbus_read_credentials_unix_socket().
11683         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11684         read() for reading the credential byte off the unix socket.  Use
11685         struct cmsgcred on systems that support it.
11686
11687 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11688
11689         * glib/Makefile.am:
11690         * configure.in:
11691         Make gthreads-2.0 dependency optional. Don't build thread test if
11692         its not found.
11693
11694 2003-02-27  Havoc Pennington  <hp@pobox.com>
11695
11696         * dbus/dbus-connection.c
11697         (dbus_connection_send_message_with_reply_and_block): fix doh!
11698         doh! doh! bug that resulted in never removing a reply from the
11699         queue, no wonder we called get_reply_serial so much ;-)
11700
11701         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11702         and client serial instead of demarshaling them every time
11703
11704 2003-02-27  Havoc Pennington  <hp@pobox.com>
11705
11706         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11707         more inlined, using dbus-string-private.h, speeds things up
11708         substantially
11709
11710         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11711         when freeing the string
11712         (_dbus_string_steal_data): fix for align offset
11713         (undo_alignment): new function
11714
11715 2003-02-26  Havoc Pennington  <hp@redhat.com>
11716
11717         All kinds of audit fixes from Owen, plus initial attempt to
11718         handle unaligned memory returned from malloc.
11719
11720         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11721         leave room for align_offset and nul byte
11722         (fixup_alignment): function to track an align_offset and
11723         ensure real->str is aligned
11724         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11725         to allow a nul byte plus align offset
11726         (_dbus_string_lock): fix overflow issue
11727         (_dbus_string_init_const_len): add assertions on sanity of len,
11728         assign allocated to be ALLOCATION_PADDING larger than len
11729         (set_length): fixup the overflow handling
11730         (_dbus_string_get_data_len): fix overflow in assertion
11731         (open_gap): detect overflow in size of gap to be opened
11732         (_dbus_string_lengthen): add overflow check
11733         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11734         (_dbus_string_append): add overflow check
11735         (_dbus_string_append_unichar): overflow
11736         (_dbus_string_delete): fix overflow in assertion
11737         (_dbus_string_copy_len): overflow in assertion
11738         (_dbus_string_replace_len): overflows in assertions
11739         (_dbus_string_find): change to implement in terms of
11740         _dbus_string_find_to
11741         (_dbus_string_find_to): assorted fixage
11742         (_dbus_string_equal_c_str): assert c_str != NULL,
11743         fix logic so the function works
11744         (_dbus_string_ends_with_c_str): fix overflow thingy
11745         (_dbus_string_base64_encode): overflow fix
11746         (_dbus_string_validate_ascii): overflow
11747         (_dbus_string_validate_nul): overflow
11748
11749 2003-02-26  Havoc Pennington  <hp@redhat.com>
11750
11751         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11752
11753 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11754
11755         * configure.in:
11756         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11757
11758         * dbus/dbus-connection.c:
11759         * dbus/dbus-connection.h:
11760         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11761         Add dbus_connection_set_wakeup_main_function and use it when queueing
11762         incoming and outgoing messages.
11763
11764
11765         * dbus/dbus-dataslot.c:
11766         Threadsafe usage of DBusDataSlotAllocator
11767
11768         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11769         dbus_new can fail.
11770
11771         * dbus/dbus-server-unix.c:
11772         Add todo comment
11773
11774         * glib/dbus-gmain.c:
11775         Implement the new wakeup functions for glib.
11776
11777         * glib/Makefile.am:
11778         * glib/test-thread-client.c:
11779         * glib/test-thread-server.c:
11780         * glib/test-thread.h:
11781         Initial cut at some thread test code. Not really done yet.
11782
11783 2003-02-26  Havoc Pennington  <hp@pobox.com>
11784
11785         * dbus/dbus-connection.c
11786         (dbus_connection_send_message_with_reply_and_block): fix crash
11787         where we ref'd the outgoing message instead of the returned reply
11788
11789         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11790         at the end of this function, so if we didn't need to read for
11791         authentication, we reinstall it for receiving messages
11792
11793         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11794         a NULL sender for peer-to-peer case
11795
11796         * dbus/dbus-transport-unix.c (check_read_watch): handle
11797         !authenticated case correctly
11798
11799         * glib/dbus-gmain.c: add support for DBusServer
11800
11801         * dbus/dbus-server.c: add data slot support
11802
11803         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11804         return values and handle errors
11805
11806         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11807         DBusConnection
11808
11809         * Doxyfile.in (INPUT): add glib subdir
11810
11811         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11812         setup_with_g_main instead of hookup_with_g_main; write docs
11813
11814 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11815
11816         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11817         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11818         * dbus/dbus-message.c: (dbus_message_append_boolean),
11819         (dbus_message_append_boolean_array),
11820         (dbus_message_get_args_valist), (_dbus_message_test):
11821         * dbus/dbus-message.h:
11822         * doc/dbus-specification.sgml:
11823         Various fixes as pointed out by Havoc.
11824
11825         * test/data/invalid-messages/bad-boolean-array.message:
11826         * test/data/invalid-messages/bad-boolean.message:
11827         Add invalid boolean value test cases.
11828
11829 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11830
11831         * dbus/dbus-internals.c: (_dbus_type_to_string):
11832         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11833         (_dbus_marshal_validate_arg):
11834         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11835         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11836         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11837         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11838         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11839         (dbus_message_iter_get_double),
11840         (dbus_message_iter_get_boolean_array), (message_iter_test):
11841         * dbus/dbus-message.h:
11842         * dbus/dbus-protocol.h:
11843         * doc/dbus-specification.sgml:
11844         * test/data/valid-messages/lots-of-arguments.message:
11845         Add support for boolean and boolean array types.
11846
11847 2003-02-23  Havoc Pennington  <hp@pobox.com>
11848
11849         * dbus/dbus-keyring.c: finish most of this implementation and
11850         simple unit test
11851
11852         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11853         these barf if the error isn't cleared to NULL
11854
11855         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11856         (_dbus_create_directory): new function
11857
11858         * dbus/dbus-errors.c (dbus_set_error): fix warning
11859
11860         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11861         (_dbus_string_hex_decode): new function
11862         (test_hex_roundtrip): test code
11863
11864         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11865
11866         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11867
11868         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11869         the save-to-temp/rename trick to atomically write the new file
11870         (_dbus_string_parse_uint): new function
11871
11872 2003-02-22  Havoc Pennington  <hp@pobox.com>
11873
11874         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11875
11876 2003-02-22  Havoc Pennington  <hp@pobox.com>
11877
11878         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11879         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11880
11881         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11882
11883         * dbus/test/data/sha-1: add US government test suite for SHA-1
11884
11885 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11886
11887         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11888         Make string arrays NULL-terminated.
11889
11890         * dbus/dbus-memory.c: (dbus_free_string_array):
11891         * dbus/dbus-memory.h:
11892         New function for freeing NULL-terminated string arrays.
11893
11894         * dbus/dbus-message-builder.c: (append_quoted_string),
11895         (_dbus_message_data_load):
11896         Add support for array types.
11897
11898         * dbus/dbus-message.c: (check_message_handling):
11899         Add more types as test cases.
11900
11901         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11902         (_dbus_string_parse_double):
11903         Add the start offset to the end offset.
11904
11905         * test/data/valid-messages/lots-of-arguments.message:
11906         New test message with lots of arguments.
11907
11908 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11909
11910         * dbus/dbus-message.c: (dbus_message_append_nil),
11911         (dbus_message_append_int32), (dbus_message_append_uint32),
11912         (dbus_message_append_double), (dbus_message_append_string),
11913         (dbus_message_append_int32_array),
11914         (dbus_message_append_uint32_array),
11915         (dbus_message_append_double_array),
11916         (dbus_message_append_byte_array),
11917         (dbus_message_append_string_array):
11918         Fix all out-of-memory handling in these functions.
11919
11920 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11921
11922         * dbus/dbus-message.c: (dbus_message_append_nil):
11923         Fix a silly.
11924
11925 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11926
11927         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11928         (dbus_message_append_nil), (dbus_message_append_int32_array),
11929         (dbus_message_append_uint32_array),
11930         (dbus_message_append_double_array),
11931         (dbus_message_append_byte_array),
11932         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11933         (dbus_message_iter_get_int32_array),
11934         (dbus_message_iter_get_uint32_array),
11935         (dbus_message_iter_get_double_array),
11936         (dbus_message_iter_get_byte_array),
11937         (dbus_message_iter_get_string_array):
11938
11939         * dbus/dbus-message.h:
11940         Add functions for appending and getting arrays.
11941
11942 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11943
11944         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11945         element size at least 8 bytes, fixes mempool tests on
11946         64-bit machines.
11947
11948 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11949
11950         * dbus/dbus-transport-unix.c (unix_do_iteration):
11951         Unlock the connection mutex during a blocking select call.
11952         Add todo about how we need a way to wake up the select.
11953
11954         * dbus/dbus-connection-internal.h:
11955         * dbus/dbus-connection.c:
11956         Add _dbus_connection_lock and _dbus_connection_unlock.
11957
11958 2003-02-19  Havoc Pennington  <hp@pobox.com>
11959
11960         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11961         Doxyfile.in, not Doxyfile
11962
11963         * dbus/dbus-keyring.c: do some hacking on this
11964
11965         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11966
11967         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11968         dbus_error_init
11969         (dbus_set_error): remove dbus_error_init, check for message ==
11970         NULL *before* we sprintf into it, and add @todo about including
11971         system headers in this file
11972
11973         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11974
11975         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11976
11977         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11978         get various bits of user information based on either username
11979         or user ID
11980         (_dbus_homedir_from_username): new function
11981
11982 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11983
11984         * configure.in:
11985         Add check for nonposix getpwnam_r
11986
11987         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11988         Align the pool element size to a sizeof (void *) boundary.
11989
11990         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11991         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11992         General Solaris fixes.
11993
11994         * test/data/valid-messages/simplest-manual.message:
11995         Explicitly state that we want little-endian packing.
11996
11997 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
11998
11999         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12000
12001         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12002         Added to create a transport connecting using a tcp/ip socket.
12003
12004         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12005         to a tcp socket at given host and port.
12006         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12007         hostname and port.
12008
12009         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12010
12011         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12012         Added to create a server listening on a TCP/IP socket.
12013
12014 2003-02-19  Havoc Pennington  <hp@pobox.com>
12015
12016         Throughout: mop up all the Doxygen warnings and undocumented
12017         stuff.
12018
12019         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12020         to search any paths.
12021
12022         * dbus/dbus-threads.c: move global mutex initializers to
12023         dbus-internals.h, multiple prototypes was confusing doxygen
12024         besides being kind of ugly
12025
12026         * Doxyfile (PREDEFINED): have Doxygen define
12027         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12028         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12029         (do not abuse the feature! it's for stuff like the autogenerated
12030         macros in dbus-md5.c, not just for things you don't feel like
12031         documenting...)
12032
12033 2003-02-18  Havoc Pennington  <hp@pobox.com>
12034
12035         * dbus/dbus-string.c (_dbus_string_zero): new function
12036
12037         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12038         wrap it in some dbus-friendly API
12039
12040         * dbus/dbus-types.h: add 16-bit types
12041
12042 2003-02-18  Joe Shaw  <joe@assbarn.com>
12043
12044         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12045         credentials from our currently running process.
12046         (get_word): Fix a buglet where we were copying the entire length
12047         instead of relative to our position.
12048
12049         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12050         keys on the stack... it's 640k of data.
12051
12052         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12053         read the credentials byte off the socket, even if we don't have
12054         SO_PEERCRED.
12055         (_dbus_poll): Implement poll() using select() for systems which
12056         don't have it.
12057
12058         * glib/test-dbus-glib.c (main): Print out an error if no
12059         parameters are given.
12060
12061         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12062         can fallback to a secondary auth mechanism if the first fails.
12063
12064 2003-02-18  Havoc Pennington  <hp@pobox.com>
12065
12066         * AUTHORS: add Alex
12067
12068 2003-02-17  Havoc Pennington  <hp@pobox.com>
12069
12070         * doc/dbus-specification.sgml: lots of cosmetic
12071         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12072         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12073         s/server/bus/ (except in authentication section). Add a section
12074         "Message Bus Message Routing"
12075
12076 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12077
12078         Release 0.4
12079
12080         * NEWS: Update
12081
12082 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12083
12084         * doc/dbus-specification.sgml:
12085         Specification updates.
12086
12087 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12088
12089         * bus/activation.c: (bus_activation_init), (child_setup),
12090         (bus_activation_activate_service):
12091         * bus/activation.h:
12092         * bus/main.c: (main):
12093         Set DBUS_ADDRESS environment variable.
12094
12095         * dbus/dbus-errors.c: (dbus_set_error):
12096         Don't use va_copy since that's a C99 feature.
12097
12098         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12099         (_dbus_spawn_async):
12100         * dbus/dbus-sysdeps.h:
12101         Add child_setup_func to _dbus_spawn_async.
12102
12103         * doc/dbus-specification.sgml:
12104         Update specification.
12105
12106         * test/spawn-test.c: (setup_func), (main):
12107         Fix test.
12108
12109 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12110
12111         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12112         Added todo.
12113
12114 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12115
12116         * doc/.cvsignore:
12117         * doc/Makefile.am:
12118         * doc/dbus-test-plan.sgml:
12119         Add test plan document.
12120
12121         * test/Makefile.am:
12122         Fix distcheck.
12123
12124 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12125
12126         * dbus/dbus-message.c: (decode_header_data),
12127         (_dbus_message_loader_return_buffer):
12128         Set the header padding amount when loading a message.
12129
12130 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12131
12132         * bus/dispatch.c: (send_one_message):
12133         Only send broadcast messages to registered connections.
12134
12135         * dbus/dbus-message.c: (dbus_message_name_is):
12136         * dbus/dbus-message.h:
12137         New convenience function.
12138
12139         * dbus/dbus-transport-debug.c: (do_reading):
12140         Only dispatch one message per run.
12141
12142         * test/Makefile.am:
12143         * test/bus-test.c: (new_connection_callback), (die),
12144         (test_hello_client1_handler), (test_hello_client2_handler),
12145         (test_hello_replies), (main):
12146
12147         * test/bus-test-loop.[ch]:
12148         Add these.
12149
12150 2003-02-16  Havoc Pennington  <hp@pobox.com>
12151
12152         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12153         backward conditional
12154
12155 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12156
12157         * dbus/dbus-connection.c:
12158         Implement sent_message_with_reply. (with_reply_and block is still
12159         busted).
12160         Made dispatch_message not lose message if OOM.
12161
12162         * dbus/dbus-errors.h:
12163         Add NoReply error (for reply timeouts).
12164
12165 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12166
12167         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12168         Actually free keys and values when destroying hashtable.
12169
12170 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12171
12172         * dbus/dbus-auth.c: (client_try_next_mechanism):
12173         Plug a leak.
12174
12175         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12176         Return TRUE if there's no thread implementation around.
12177
12178         * glib/dbus-gmain.c: (free_source),
12179         (dbus_connection_hookup_with_g_main):
12180         Make sure to remove the GSource when the connection is finalized.
12181
12182 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12183
12184         * bus/dispatch.c: (bus_dispatch_message_handler):
12185         * dbus/dbus-errors.h:
12186         Return an error if someone tries to send a message to a service
12187         that doesn't exist.
12188
12189 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12190
12191         * bus/activation.c: (load_directory), (bus_activation_init),
12192         (bus_activation_activate_service):
12193         * bus/activation.h:
12194         * bus/driver.c:
12195         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12196         More work on the activation handling.
12197
12198         * dbus/dbus-errors.h:
12199         Add some error messages
12200
12201         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12202         * dbus/dbus-message.h:
12203         New function that creates an error message.
12204
12205         * dbus/dbus-protocol.h:
12206         Add ACTIVATE_SERVER message.
12207
12208         * dbus/dbus-server-unix.c: (unix_handle_watch),
12209         (_dbus_server_new_for_domain_socket):
12210         Call _dbus_fd_set_close_on_exec.
12211
12212         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12213         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12214         (_dbus_fd_set_close_on_exec):
12215         * dbus/dbus-sysdeps.h:
12216         Add _dbus_fd_set_close_on exec function. Also add function that checks
12217         that all open fds are set to close-on-exec and warns otherwise.
12218
12219         * dbus/dbus-transport-unix.c:
12220         (_dbus_transport_new_for_domain_socket):
12221         Call _dbus_fd_set_close_on_exec.
12222
12223 2003-02-16  Havoc Pennington  <hp@pobox.com>
12224
12225         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12226         allow people to avoid setting SIGPIPE to SIG_IGN
12227         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12228         we've been asked not to
12229
12230 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12231
12232         * dbus/dbus-list.c: (_dbus_list_append_link),
12233         (_dbus_list_prepend_link):
12234         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12235         (dbus_realloc):
12236         Warning fixes.
12237
12238 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12239
12240         * bus/Makefile.am:
12241         * bus/activation.c: (bus_activation_entry_free),
12242         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12243         * bus/activation.h:
12244         * bus/main.c: (main):
12245         Add simple activation support, doesn't work yet though.
12246
12247 2003-02-15   Zack Rusin  <zack@kde.org>
12248
12249         * qt/dbus-qthread.cpp:  small casting fix
12250
12251 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12252
12253         * dbus/dbus-errors.c: (dbus_set_error):
12254         * dbus/dbus-errors.h:
12255         Add a few errors and make dbus_set_error void.
12256
12257         * dbus/dbus-sysdeps.c:
12258         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12259         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12260         * dbus/dbus-sysdeps.h:
12261         Add _dbus_spawn_async.
12262
12263         * test/spawn-test.c: (main):
12264         Test for _dbus_spawn_async.
12265
12266 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12267
12268         * dbus/dbus-internals.h:
12269         Fix build without tests.
12270
12271         * dbus/dbus-list.c: (alloc_link):
12272         Fix a segfault when a malloc fails.
12273
12274         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12275         (dbus_malloc0), (dbus_realloc):
12276         Add support for malloc debugging.
12277
12278 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12279
12280         * dbus/dbus-threads.c:
12281         * dbus/dbus-threads.h:
12282         Add condvars. Remove static mutext from API.
12283         Implement static mutexes by initializing them from threads_init.
12284
12285         * glib/dbus-gthread.c:
12286         * qt/dbus-qthread.cpp:
12287         Update with the thread api changes.
12288
12289
12290         * dbus/dbus-list.c:
12291         * dbus/dbus-list.h:
12292         Turn StaticMutex into normal mutex + init function.
12293         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12294         _dbus_list_append_link, _dbus_list_prepend_link
12295
12296
12297         * dbus/dbus-sysdeps.c:
12298         * dbus/dbus-sysdeps.h:
12299         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12300         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12301
12302         * dbus/dbus-protocol.h:
12303         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12304
12305         * dbus/dbus-message.c:
12306         Make ref/unref atomic.
12307         Fix some docs.
12308
12309         * dbus/dbus-connection-internal.h:
12310         * dbus/dbus-connection.c:
12311         * dbus/dbus-connection.h:
12312         Make threadsafe.
12313         Change _peek to _borrow,_return & _steal_borrowed.
12314         Change disconnect callback to event.
12315         Make dbus_connection_dispatch_messages reentrant.
12316
12317         * dbus/dbus-transport.c:
12318         Don't ref the connection on calls to the transport
12319         implementation.
12320
12321         * dbus/dbus-message-handler.c:
12322         Make threadsafe.
12323
12324         * glib/dbus-gmain.c:
12325         Don't use peek_message anymore
12326
12327         * test/Makefile.am:
12328         * test/debug-thread.c:
12329         * test/debug-thread.h:
12330         Simple thread implementation that asserts() on deadlocks in
12331         single-threaded code.
12332
12333         * test/bus-test.c:
12334         (main) Call debug_threads_init.
12335
12336         * test/watch.c:
12337         Use disconnect message instead of disconnect callback.
12338
12339         * bus/connection.c:
12340         * bus/connection.h:
12341         Don't call dbus_connection_set_disconnect_function. Instead export
12342         bus_connection_disconnect.
12343
12344         * bus/dispatch.c:
12345         Call bus_connection_disconnect when we get a disconnected message.
12346
12347 2003-02-15  Havoc Pennington  <hp@pobox.com>
12348
12349         * dbus/dbus-message.c (dbus_message_new): fool around with the
12350         docs
12351
12352 2003-02-14  Havoc Pennington  <hp@pobox.com>
12353
12354         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12355
12356         * dbus/dbus-memory.c: fail if the debug functions indicate we
12357         should
12358
12359         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12360         (_dbus_decrement_fail_alloc_counter): debug functions to
12361         simulate memory allocation failures
12362
12363 2003-02-14  Havoc Pennington  <hp@pobox.com>
12364
12365         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12366         to DBusError
12367
12368 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12369
12370         * bus/driver.c: (bus_driver_handle_hello):
12371         * bus/driver.h:
12372         * bus/services.c: (bus_service_lookup):
12373         Reorder message sending so we get a more sane order.
12374
12375         * test/bus-test.c: (message_handler):
12376         Fix tyop.
12377
12378 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12379
12380         * bus/driver.c: (bus_driver_send_service_deleted),
12381         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12382         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12383         (bus_driver_send_welcome_message),
12384         (bus_driver_handle_list_services),
12385         (bus_driver_handle_acquire_service),
12386         (bus_driver_handle_service_exists):
12387         * dbus/dbus-bus.c: (dbus_bus_register_client),
12388         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12389         * dbus/dbus-errors.c: (dbus_result_to_string):
12390         * dbus/dbus-errors.h:
12391         * dbus/dbus-message.c: (dbus_message_append_args),
12392         (dbus_message_append_args_valist), (dbus_message_get_args),
12393         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12394         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12395         (dbus_message_iter_get_byte_array),
12396         (dbus_message_iter_get_string_array), (message_iter_test),
12397         (check_message_handling), (_dbus_message_test):
12398         * dbus/dbus-message.h:
12399         * test/bus-test.c: (main):
12400         Change fields to arguments in messages, so that they won't be
12401         confused with header fields.
12402
12403         * glib/test-dbus-glib.c: (main):
12404         Remove append_fields from hello message.
12405
12406 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12407
12408         * dbus/dbus-errors.c:
12409         * dbus/dbus-message.c:
12410         * dbus/dbus-string.c:
12411         Documentation fixes.
12412
12413 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12414
12415         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12416         (remove_timeout):
12417         Implement support for timeouts in dbus-glib.
12418
12419 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12422         * dbus/dbus-message.c: (process_test_subdir):
12423         * test/break-loader.c: (find_breaks_based_on):
12424         Plug some memory leaks.
12425
12426 2003-02-13  Richard Hult  <rhult@codefactory.se>
12427
12428         * bus/main.c: Fix build.
12429
12430         * dbus/dbus-errors.h:
12431         * dbus/dbus-errors.c: Fix copyright for Anders.
12432
12433 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12434
12435         * bus/Makefile.am:
12436         Add utils.[ch]
12437
12438         * bus/connection.c: (bus_connection_foreach):
12439         Fix a warning.
12440
12441         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12442         (unescape_string), (new_section), (parse_section_start),
12443         (parse_key_value), (report_error), (bus_desktop_file_load),
12444         (bus_desktop_file_get_string):
12445         * bus/desktop-file.h:
12446         Use DBusError for error reporting.
12447
12448         * bus/dispatch.c: (send_one_message),
12449         (bus_dispatch_message_handler):
12450         * bus/driver.c: (bus_driver_send_service_deleted),
12451         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12452         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12453         (bus_driver_send_welcome_message),
12454         (bus_driver_handle_list_services),
12455         (bus_driver_handle_acquire_service),
12456         (bus_driver_handle_service_exists):
12457         * bus/loop.c: (bus_loop_run):
12458         * bus/main.c:
12459         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12460
12461         * bus/utils.c: (bus_wait_for_memory):
12462         * bus/utils.h:
12463         New files with general utility functions.
12464
12465         * dbus/dbus-internals.h:
12466         Remove _DBUS_HANDLE_OOM.
12467
12468 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12469
12470         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12471         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12472         * dbus/dbus-errors.h:
12473         Add DBusError structure.
12474
12475 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12476
12477         * test/data/valid-messages/standard-acquire-service.message:
12478         * test/data/valid-messages/standard-hello.message:
12479         * test/data/valid-messages/standard-list-services.message:
12480         * test/data/valid-messages/standard-service-exists.message:
12481         Add some standard messages.
12482
12483 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12484
12485         * bus/driver.c: (bus_driver_send_welcome_message),
12486         (bus_driver_handle_list_services),
12487         (bus_driver_handle_acquire_service),
12488         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12489         Update for API changes in libdbus.
12490
12491         * dbus/dbus-message.c: (dbus_message_new_reply):
12492         * dbus/dbus-message.h:
12493         Remove the name argument. The spec states that replies shouldn't
12494         have a name.
12495
12496 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12497
12498         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12499         (report_error), (bus_desktop_file_load), (lookup_section),
12500         (lookup_line), (bus_desktop_file_get_raw),
12501         (bus_desktop_file_get_string):
12502         * bus/desktop-file.h:
12503         Some fixes, and new functions for getting a key value from a section.
12504
12505 2003-02-13  Havoc Pennington  <hp@pobox.com>
12506
12507         * test/data/auth/fail-after-n-attempts.auth-script: new test
12508
12509         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12510         reject the client.
12511
12512 2003-02-13  Havoc Pennington  <hp@pobox.com>
12513
12514         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12515         dbus_credentials_match were backward
12516
12517         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12518         NO_CREDENTIALS and ROOT_CREDENTIALS
12519
12520         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12521         into here. Never process more commands after we've reached an
12522         end state; store further data as unused bytes.
12523
12524         * test/data/auth/*: add more auth tests
12525
12526         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12527         command to match exact string and EXPECT_UNUSED to match unused
12528         bytes
12529
12530         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12531
12532 2003-02-12  Havoc Pennington  <hp@pobox.com>
12533
12534         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12535         \r off of popped lines
12536
12537         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12538         scripts
12539
12540         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12541         SEND, append \r\n
12542
12543 2003-02-12  Havoc Pennington  <hp@pobox.com>
12544
12545         * dbus/Makefile.am: remove break-loader from the build, since it
12546         moved.
12547
12548         * configure.in: add --enable-gcov to turn on coverage profiling
12549         flags and disable optimization
12550
12551 2003-02-10  Havoc Pennington  <hp@pobox.com>
12552
12553         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12554         initial cut at test framework for DBusAuth from laptop.
12555         Doesn't quite work yet but it compiles and I need to get
12556         it off the 266mhz laptop. ;-)
12557
12558         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12559         fix a memleak in error case
12560
12561 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12562
12563         * bus/Makefile.am:
12564         * bus/desktop-file.c:
12565         * bus/desktop-file.h:
12566         Add a desktop file parser.
12567
12568 2003-02-11  Zack Rusin  <zack@kde.org>
12569
12570         * qt/message.[h|cpp]: sample implementation
12571         of the KDE wrapper for DBusMessage
12572
12573 2003-02-09  Zack Rusin  <zack@kde.org>
12574
12575         * test/bus-test.c: make_it_compile
12576         * doc/dbus-specification.sgml: minimal semantic fix
12577
12578 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12579
12580         Release 0.3
12581
12582         * NEWS: Update
12583
12584 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12585
12586         * dbus/Makefile.am:
12587         * dbus/dbus-break-loader.c:
12588         * test/Makefile.am:
12589         * test/break-loader.c:
12590         Move dbus-break-loader to test/ and rename it to break-loader.
12591
12592 2003-02-02  Havoc Pennington  <hp@pobox.com>
12593
12594         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12595         for code to manage cookies in your home directory
12596
12597         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12598
12599         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12600         to authenticate, then disconnect the client.
12601
12602 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12603
12604         * dbus/dbus-message.c (dbus_message_append_fields):
12605         Correct docs.
12606
12607 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12608
12609         * doc/dbus-specification.sgml:
12610         Update address format section.
12611
12612 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12613
12614         * test/Makefile.am:
12615         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12616         (message_handler), (new_connection_callback), (loop_quit),
12617         (loop_run), (main):
12618         Add bus test.
12619
12620 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12621
12622         * bus/driver.c: (bus_driver_handle_service_exists):
12623         Simplify the code a bit.
12624
12625         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12626         Fix a silly.
12627
12628 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12629
12630         * bus/Makefile.am:
12631         Add libdbus-daemon.la and link to it.
12632
12633 2003-02-01  James Willcox  <jwillcox@gnome.org>
12634
12635         * bus/driver.c: (bus_driver_handle_own_service):
12636         Actually include the service reply code in the message.
12637
12638 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12639
12640         * bus/driver.c: (bus_driver_handle_service_exists):
12641         Don't unref the incoming message.
12642
12643 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12646
12647 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12648
12649         * dbus/dbus-server.c: (dbus_server_listen):
12650         * dbus/dbus-transport.c: (_dbus_transport_open):
12651         ifdef out the calls to the debug transport and server.
12652
12653 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12654
12655         * dbus/dbus-watch.c (dbus_watch_get_flags):
12656         Add note in the docs that ERROR or HANGUP won't be returned
12657         and are assumed always on.
12658
12659         * glib/dbus-gmain.c (add_watch):
12660         Always add IO_ERR | IO_HUP
12661
12662         * dbus/dbus-message.h:
12663         Add semicolon after dbus_message_iter_get_string_array().
12664         Makes qt code build again
12665
12666 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12667
12668         * bus/driver.c: (create_unique_client_name),
12669         (bus_driver_handle_hello):
12670         Don't take a name, just use a numeric id to identify
12671         each client.
12672
12673         * dbus/Makefile.am:
12674         * dbus/dbus-bus.c: (dbus_bus_register_client),
12675         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12676         * dbus/dbus-bus.h:
12677         Add new convenience functions for communicating with the bus.
12678
12679         * dbus/dbus-message.h:
12680
12681         * dbus/dbus-protocol.h:
12682         Fix a typo.
12683
12684 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12685
12686         * dbus/dbus-message.c (dbus_message_append_fields):
12687         Add some more doc comments.
12688
12689 2003-02-01  Havoc Pennington  <hp@pobox.com>
12690
12691         * dbus/dbus-break-loader.c (randomly_modify_length): change
12692         a 4-byte value in the message as if it were a length
12693
12694         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12695         execute bit on saved files
12696
12697 2003-02-01  Havoc Pennington  <hp@pobox.com>
12698
12699         * dbus/dbus-break-loader.c (main): new program to find messages
12700         that break the loader.
12701
12702         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12703         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12704
12705         * dbus/dbus-string.c (_dbus_string_set_byte): new
12706
12707 2003-01-31  Havoc Pennington  <hp@pobox.com>
12708
12709         * dbus/dbus-message.c: refactor the test code to be more general,
12710         in preparation for writing a "randomly permute test cases to
12711         try to break the loader" program.
12712
12713 2003-01-31  Havoc Pennington  <hp@pobox.com>
12714
12715         * doc/dbus-specification.sgml: work on the specification
12716
12717         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12718         the protocol version of the message.
12719
12720         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12721         no longer specifies that.
12722         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12723         1/2/3/4)
12724
12725         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12726         "break" for DBUS_TYPE_NIL, remove @todo
12727
12728 2003-01-31  Havoc Pennington  <hp@pobox.com>
12729
12730         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12731         just set_is_error/get_is_error as this is a commonly-used
12732         function, and write docs.
12733
12734 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12735
12736         * dbus/dbus-address.c: (dbus_address_entry_free):
12737         Free key and value lists.
12738
12739         * dbus/dbus-internals.c: (_dbus_type_to_string):
12740         Add the types we didn't have.
12741
12742         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12743         (_dbus_marshal_validate_arg):
12744         Add NIL types.
12745
12746         * dbus/dbus-message.c: (dbus_message_set_sender):
12747         Remove todo about being able to set sender to NULL.
12748
12749         (dbus_message_set_is_error_reply),
12750         (dbus_message_get_is_error_reply):
12751         * dbus/dbus-message.h:
12752         New functions.
12753
12754         * dbus/dbus-protocol.h:
12755         Add error reply flag.
12756
12757         * test/data/valid-messages/opposite-endian.message:
12758         Add NIL type to test.
12759
12760 2003-01-31  Havoc Pennington  <hp@pobox.com>
12761
12762         * doc/dbus-specification.sgml: fully specify the header.  Add
12763         flags and major protocol version, and change header/body len to
12764         unsigned.
12765
12766         * dbus/dbus-message-builder.c (append_saved_length): append length
12767         as uint32
12768
12769         * dbus/dbus-message.c (dbus_message_create_header): change header
12770         length and body length to unsigned. Add the new fields from the
12771         spec
12772         (_dbus_message_loader_return_buffer): unsigned header/body len
12773
12774 2003-01-30  Havoc Pennington  <hp@pobox.com>
12775
12776         * dbus/dbus-auth.c: rework to use only REJECTED, no
12777         MECHANISMS
12778
12779         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12780         use REJECTED, suggested by Mark McLoughlin
12781
12782 2003-01-30  Havoc Pennington  <hp@pobox.com>
12783
12784         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12785         a better way to report errors here. e.g.  "unix address lacks
12786         path" or something. also "no such file" when the path doesn't
12787         exist, etc.
12788
12789         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12790         leaking list nodes
12791         (dbus_parse_address): add @todo about documenting address format,
12792         and allowing , and ; to be escaped
12793
12794 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12795
12796         * dbus/Makefile.am:
12797         Add dbus-address.[ch]
12798
12799         * dbus/dbus-address.c: (dbus_address_entry_free),
12800         (dbus_address_entries_free), (create_entry),
12801         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12802         (dbus_parse_address), (_dbus_address_test):
12803         * dbus/dbus-address.h:
12804         New files for dealing with address parsing.
12805
12806         * dbus/dbus-connection.c:
12807         Document timeout functions.
12808
12809         * dbus/dbus-message.c:
12810         Document dbus_message_new_from_message.
12811
12812         * dbus/dbus-server-debug.c:
12813         Document.
12814
12815         * dbus/dbus-server.c: (dbus_server_listen):
12816         Parse address and use correct server implementation.
12817
12818         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12819         * dbus/dbus-string.h:
12820         New function with test.
12821
12822         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12823         * dbus/dbus-test.h:
12824         Add address tests.
12825
12826         * dbus/dbus-transport-debug.c:
12827         Document.
12828
12829         * dbus/dbus-transport.c: (_dbus_transport_open):
12830         Parse address and use correct transport implementation.
12831
12832 2003-01-30  Havoc Pennington  <hp@pobox.com>
12833
12834         * dbus/dbus-message.c: use message->byte_order instead of
12835         DBUS_COMPILER_BYTE_ORDER throughout.
12836         (dbus_message_create_header): pad header to align the
12837         start of the body of the message to 8-byte boundary
12838
12839         * dbus/dbus-marshal.h: make all the demarshalers take const
12840         DBusString arguments.
12841
12842         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12843         validate message args here, so we don't have to do slow validation
12844         later, and so we catch bad messages as they are incoming. Also add
12845         better checks on header_len and body_len. Also fill in
12846         message->byte_order
12847
12848         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12849         implemented properly)
12850         (_dbus_string_validate_nul): new function to check all-nul
12851
12852         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12853         get_arg_end_pos and remove all validation
12854         (_dbus_marshal_validate_arg): actually do validation here.
12855
12856 2003-01-29  Havoc Pennington  <hp@pobox.com>
12857
12858         * dbus/dbus-message.c (check_message_handling): fix assertion
12859         failure on set_client_serial
12860
12861 2003-01-28  Havoc Pennington  <hp@pobox.com>
12862
12863         * dbus/dbus-server-debug.c: Add doc section comments
12864
12865         * dbus/dbus-transport-debug.c: add doc section comments
12866
12867 2003-01-28  Havoc Pennington  <hp@redhat.com>
12868
12869         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12870         the reverse order from how I had it
12871         (_dbus_string_base64_encode): reverse encoding order. I was
12872         basically byteswapping everything during encoding.
12873
12874 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12875
12876         * dbus/dbus-connection-internal.h:
12877         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12878         (_dbus_connection_remove_timeout):
12879         Add functions for adding and removing timeouts.
12880
12881         * dbus/dbus-message.c: (dbus_message_new_from_message):
12882         Add new function that takes a message and creates an exact
12883         copy of it, but with the refcount set to 1.
12884         (check_message_handling):
12885         Fix build error.
12886
12887         * dbus/dbus-server-protected.h:
12888         * dbus/dbus-server.c: (_dbus_server_init_base),
12889         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12890         (dbus_server_set_timeout_functions):
12891         (_dbus_server_remove_timeout):
12892         New functions so that a server can add and remove timeouts.
12893
12894         (dbus_server_listen):
12895         Add commented out call to dbus_server_debug_new.
12896
12897         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12898         Actually set the handler, doh.
12899
12900         * dbus/dbus-transport.c: (_dbus_transport_open):
12901         Add commented out call to dbus_transport_debug_client_new.
12902
12903         * dbus/Makefile.am:
12904         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12905
12906 2003-01-28  Havoc Pennington  <hp@pobox.com>
12907
12908         * dbus/dbus-message.c (check_message_handling): function to check
12909         on the loaded message, iterates over it etc.
12910
12911 2003-01-28  Havoc Pennington  <hp@pobox.com>
12912
12913         * test/Makefile.am (dist-hook): fix make distdir
12914
12915         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12916
12917 2003-01-27  Havoc Pennington  <hp@pobox.com>
12918
12919         * dbus/dbus-mempool.c (time_for_size): replace printf with
12920         _dbus_verbose
12921
12922         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12923         empty lines; fix the SAVE_LENGTH stuff to be
12924         START_LENGTH/END_LENGTH so it actually works; couple other
12925         bugfixes
12926
12927         * test/Makefile.am (dist-hook): add dist-hook for .message files
12928
12929         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12930         can be constant or locked.
12931         (_dbus_string_free): allow freeing a const string as
12932         documented/intended
12933
12934         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12935
12936         * dbus/dbus-test-main.c (main): take an argument which is the
12937         directory containing test data
12938
12939         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12940         argument to this and load all the messages in test/data/
12941         checking that they can be loaded or not loaded as appropriate.
12942
12943 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12944
12945         * bus/dispatch.c: (bus_dispatch_message_handler):
12946         Dispatch messages sent to services.
12947
12948         * bus/driver.c: (bus_driver_send_service_deleted),
12949         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12950         (bus_driver_send_service_acquired):
12951         Add helper functions for sending service related messages.
12952
12953         (bus_driver_send_welcome_message):
12954         Send HELLO_REPLY instead of WELCOME.
12955
12956         (bus_driver_handle_list_services):
12957         Send LIST_SERVICES_REPLY instead of SERVICES.
12958
12959         (bus_driver_handle_own_service),
12960         (bus_driver_handle_service_exists):
12961         New message handlers.
12962
12963         (bus_driver_handle_message):
12964         Invoke new message handlers.
12965
12966         (bus_driver_remove_connection):
12967         Don't remove any services here since that's done automatically
12968         by bus_service_remove_owner now.
12969
12970         * bus/driver.h:
12971         New function signatures.
12972
12973         * bus/services.c: (bus_service_add_owner):
12974         Send ServiceAcquired message if we're the only primary owner.
12975
12976         (bus_service_remove_owner):
12977         Send ServiceAcquired/ServiceLost messages.
12978
12979         (bus_service_set_prohibit_replacement),
12980         (bus_service_get_prohibit_replacement):
12981         Functions for setting prohibit replacement.
12982
12983         (bus_service_has_owner):
12984         New function that checks if a connection is in the owner queue of
12985         a certain service.
12986
12987         * bus/services.h:
12988         Add new function signatures.
12989
12990         * dbus/dbus-list.c: (_dbus_list_test):
12991         Add tests for _dbus_list_remove_last and traversing the list backwards.
12992
12993         * dbus/dbus-list.h:
12994         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
12995         go any further, so return NULL then.
12996
12997         * dbus/dbus-protocol.h:
12998         Add new messages, service flags and service replies.
12999
13000 2003-01-26  Havoc Pennington  <hp@pobox.com>
13001
13002         * dbus/dbus-message-builder.c: implement, completely untested.
13003
13004         * test/data/*: add data to be used in testing.
13005         ".message" files are our simple loadable text format.
13006         ".message-raw" will be binary dumps of messages.
13007
13008         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13009
13010 2003-01-26  Havoc Pennington  <hp@pobox.com>
13011
13012         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13013
13014         * dbus/dbus-errors.c (dbus_result_to_string): add
13015         file errors
13016
13017         * dbus/dbus-message-builder.c: new file, will contain code to load
13018         up messages from files. Not implemented yet.
13019
13020 2003-01-26  Havoc Pennington  <hp@pobox.com>
13021
13022         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13023         the sender by setting to NULL
13024
13025 2003-01-26  Havoc Pennington  <hp@pobox.com>
13026
13027         The unit tests pass, but otherwise untested.  If it breaks, the
13028         tests should have been better. ;-)
13029
13030         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13031         the connection.
13032
13033         * dbus/dbus-message.c: redo everything so we maintain
13034         message->header as the only copy of the various fields.
13035         This avoids the possibility of out-of-memory in some cases,
13036         for example dbus_message_lock() can't run out of memory anymore,
13037         and avoids extra copying. Figured I may as well go ahead and do
13038         this since it was busted for dbus_message_lock to not return
13039         failure on OOM, and dbus_message_write_header was totally
13040         unchecked for OOM. Also fixed some random other bugs.
13041
13042         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13043         that strings are nul-terminated. Also, end_pos can be equal
13044         to string length just not greater than, I think.
13045         (_dbus_marshal_set_int32): new function
13046         (_dbus_marshal_set_uint32): new function
13047         (_dbus_marshal_set_string): new function
13048
13049         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13050         a warning, init timeout_list to NULL
13051         (dbus_connection_send_message): don't use uninitialized variable
13052         "serial"
13053
13054         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13055
13056 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13057
13058         * bus/driver.c: (bus_driver_handle_hello),
13059         (bus_driver_send_welcome_message):
13060         Plug leaks
13061
13062 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13063
13064         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13065         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13066         (dbus_connection_unref):
13067         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13068         * dbus/dbus-message.c: (dbus_message_unref),
13069         Plug memory leaks.
13070
13071         (dbus_message_get_fields):
13072         Remove debugging printout.
13073
13074         (_dbus_message_loader_return_buffer):
13075         Don't store the header string.
13076
13077         (_dbus_message_test):
13078         Plug leaks.
13079
13080 2003-01-26  Richard Hult  <rhult@codefactory.se>
13081
13082         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13083         the file descriptor list, since it can change under us.
13084
13085 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13086
13087         * glib/dbus-gmain.c: (dbus_connection_prepare),
13088         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13089         (remove_watch), (dbus_connection_hookup_with_g_main):
13090         Rewrite the glib handling to use its own GSource instead of a
13091         GIOChannel so we can catch messages put in the queue while waiting
13092         for a reply.
13093
13094 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13095
13096         * bus/Makefile.am:
13097         * bus/connection.c: (connection_disconnect_handler),
13098         (connection_watch_callback), (bus_connection_setup):
13099         * bus/dispatch.c: (send_one_message),
13100         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13101         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13102         * bus/dispatch.h:
13103         * bus/driver.c: (bus_driver_send_service_deleted),
13104         (bus_driver_send_service_created), (bus_driver_handle_hello),
13105         (bus_driver_send_welcome_message),
13106         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13107         (bus_driver_handle_message):
13108         * bus/driver.h:
13109         Refactor code, put the message dispatching in its own file. Use
13110         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13111         is disconnected.
13112
13113 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13114
13115         * dbus/dbus-internals.h:
13116         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13117
13118         * dbus/dbus-message.c: (dbus_message_get_sender):
13119         * dbus/dbus-message.h:
13120         Implement dbus_message_get_sender.
13121
13122         * dbus/dbus-protocol.h:
13123         Add message and service defines.
13124
13125 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * dbus/dbus-connection.c: (dbus_connection_send_message):
13128         * dbus/dbus-message-internal.h:
13129         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13130         (dbus_message_write_header):
13131         Remove _dbus_messag_unlock and don't set the client serial on a
13132         message if one already exists.
13133
13134 2003-01-24  Havoc Pennington  <hp@pobox.com>
13135
13136         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13137         list_pool
13138
13139         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13140         on OOM
13141
13142 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13143
13144         * dbus/dbus-list.c: (alloc_link), (free_link):
13145         Use a memory pool for the links.
13146
13147 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13148
13149         * bus/connection.c: (bus_connection_foreach):
13150         * bus/connection.h:
13151         Add new bus_connection_foreach function.
13152
13153         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13154         Add function that broadcasts a message to all clients.
13155
13156         (bus_driver_send_service_created), (bus_driver_handle_hello),
13157         (bus_driver_send_welcome_message),
13158         (bus_driver_handle_list_services), (bus_driver_message_handler):
13159         Implement functions that take care of listing services, and notifying
13160         clients when new services are created.
13161
13162         * bus/services.c: (bus_services_list):
13163         * bus/services.h:
13164         Add new function that returns an array of strings with the currently
13165         registered services.
13166
13167         * glib/dbus-glib.h:
13168         * glib/dbus-gmain.c:
13169         Update copyright year.
13170
13171 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13172
13173         * dbus/dbus-connection.c: (dbus_connection_send_message):
13174         Unlock the message in case it was sent earlier.
13175
13176         (dbus_connection_send_message_with_reply_and_block):
13177         Remove the reply message from the list.
13178
13179         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13180         Set array_len and new_pos correctly.
13181
13182         (_dbus_marshal_test):
13183         Remove debug output.
13184
13185         * dbus/dbus-message-internal.h:
13186         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13187         New function that returns the reply serial.
13188
13189         (_dbus_message_unlock):
13190         New function that unlocks a message and resets its header.
13191
13192         (dbus_message_append_string_array),
13193         (dbus_message_get_fields_valist),
13194         (dbus_message_iter_get_field_type),
13195         (dbus_message_iter_get_string_array),
13196         (dbus_message_get_fields),
13197         (dbus_message_append_fields_valist):
13198         Handle string arrays.
13199
13200         (dbus_message_set_sender):
13201         Make this function public since the bus daemon needs it.
13202
13203         (decode_header_data):
13204         Set the reply serial to -1 initially.
13205
13206         * dbus/dbus-message.h:
13207         Add dbus_message_set_sender.
13208
13209 2003-01-24  Havoc Pennington  <hp@pobox.com>
13210
13211         * doc/dbus-specification.sgml: add some stuff
13212
13213 2003-01-22  Havoc Pennington  <hp@pobox.com>
13214
13215         * doc/dbus-specification.sgml: Start to document the protocol.
13216
13217 2003-01-22  Havoc Pennington  <hp@pobox.com>
13218
13219         * dbus/dbus-connection.c
13220         (dbus_connection_send_message_with_reply_and_block): add some @todo
13221
13222         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13223
13224 2003-01-21  Havoc Pennington  <hp@pobox.com>
13225
13226         (patch untested because can't compile)
13227
13228         * bus/driver.c (create_unique_client_name): make this function
13229         never recycle client names. Also, caller should initialize
13230         the DBusString.
13231
13232         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13233
13234 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13235
13236         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13237         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13238         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13239         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13240         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13241         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13242         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13243         * dbus/dbus-marshal.h:
13244         * dbus/dbus-protocol.h:
13245         Add support for marshalling and demarshalling integer, double
13246         and string arrays.
13247
13248 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13249
13250         * bus/Makefile.am:
13251         Add driver.[ch]
13252
13253         * bus/connection.c: (connection_disconnect_handler):
13254         Remove the connection from the bus driver's list.
13255
13256         (connection_watch_callback): Dispatch messages.
13257
13258         (free_connection_data): Free connection name.
13259
13260         (bus_connection_setup): Add connection to the bus driver's list.
13261         (bus_connection_remove_owned_service):
13262         (bus_connection_set_name), (bus_connection_get_name):
13263         Add functions for setting and getting the connection's name.
13264
13265         * bus/connection.h:
13266         Add function headers.
13267
13268         * bus/driver.c: (create_unique_client_name),
13269         (bus_driver_handle_hello_message),
13270         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13271         (bus_driver_add_connection), (bus_driver_remove_connection):
13272         * bus/driver.h:
13273         * bus/main.c:
13274         * bus/services.c: (bus_service_free):
13275         * bus/services.h:
13276         New file that handles communication and registreation with the bus
13277         itself.
13278
13279 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13280
13281         * dbus/dbus-connection.c: (dbus_connection_send_message):
13282         Add a new client_serial parameter.
13283
13284         (dbus_connection_send_message_with_reply):
13285         Remove a @todo since we've implemented the blocking function.
13286
13287         (dbus_connection_send_message_with_reply_and_block):
13288         New function that sends a message and waits for a reply and
13289         then returns the reply.
13290
13291         * dbus/dbus-connection.h:
13292         Add new functions.
13293
13294         * dbus/dbus-errors.c: (dbus_result_to_string):
13295         * dbus/dbus-errors.h:
13296         Add new DBUS_RESULT.
13297
13298         * dbus/dbus-message-internal.h:
13299         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13300         (_dbus_message_set_sender), (dbus_message_write_header),
13301         (dbus_message_new_reply), (decode_header_data),
13302         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13303         * dbus/dbus-message.h:
13304         Add new functions that set the reply serial and sender.
13305         Also marshal and demarshal them correctly and add test.
13306
13307         * dbus/dbus-protocol.h:
13308         Add new DBUS_MESSAGE_TYPE_SENDER.
13309
13310         * glib/dbus-glib.h:
13311         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13312         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13313         (dbus_connection_hookup_with_g_main):
13314         * glib/test-dbus-glib.c: (main):
13315         Rewrite to use GIOChannel and remove the GSource crack.
13316
13317         * test/echo-client.c: (main):
13318         * test/watch.c: (check_messages):
13319         Update for changed APIs
13320
13321 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13322
13323         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13324
13325         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13326         Create a DBusTimeoutList.
13327         (dbus_connection_set_timeout_functions): Add new function to
13328         set timeout callbacks
13329
13330         * dbus/dbus-connection.h: Add public DBusTimeout API.
13331
13332         * dbus/dbus-message.c: (dbus_message_get_service):
13333         * dbus/dbus-message.h:  New function.
13334
13335         * dbus/dbus-server.c: Fix small doc typo.
13336
13337         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13338
13339 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13340
13341         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13342         of the string, just as long as specified.
13343
13344 2003-01-19  Havoc Pennington  <hp@pobox.com>
13345
13346         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13347         new function
13348
13349         * dbus/dbus-server.c (dbus_server_set_max_connections)
13350         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13351         keep track of current number of connections, and add API for
13352         setting a max (but haven't implemented enforcing the max yet)
13353
13354 2003-01-18  Havoc Pennington  <hp@pobox.com>
13355
13356         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13357         reading/writing if read_watch != NULL or write_watch != NULL.
13358
13359         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13360         the message loader code to actually load message->header and
13361         message->body into the newly-created message.
13362
13363         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13364         in OOM case
13365
13366         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13367         (dbus_connection_get_max_message_size)
13368         (dbus_connection_set_max_live_messages_size)
13369         (dbus_connection_get_max_live_messages_size): implement some
13370         resource limitation functions
13371
13372         * dbus/dbus-resources.c: new file implementing some of the
13373         resource limits stuff
13374
13375         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13376         missing docs, add @todo to handle OOM etc.
13377
13378         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13379         docs
13380
13381 2003-01-18  Havoc Pennington  <hp@pobox.com>
13382
13383         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13384         connection if it hasn't been already.
13385
13386         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13387         replace with DisconnectFunction.
13388
13389 2003-01-18  Havoc Pennington  <hp@pobox.com>
13390
13391         Building --disable-verbose-mode --disable-asserts --disable-tests
13392         cuts the library from 112K to 45K or so
13393
13394         * configure.in: check for varargs macro support,
13395         add --enable-verbose-mode, --enable-asserts.
13396
13397         * dbus/dbus-internals.h (_dbus_assert): support
13398         DBUS_DISABLE_ASSERT
13399         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13400
13401 2003-01-18  Havoc Pennington  <hp@pobox.com>
13402
13403         * dbus/dbus-test.c: include config.h so that tests actually run
13404
13405         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13406         so the failure mode when that assumption fails will be plenty
13407         obvious.
13408
13409 2003-01-18  Havoc Pennington  <hp@pobox.com>
13410
13411         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13412
13413         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13414         the distribution
13415
13416         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13417         since we don't want to use those in make check
13418
13419 2003-01-15  Havoc Pennington  <hp@redhat.com>
13420
13421         Release 0.2
13422
13423         * NEWS: update
13424
13425 2003-01-15  Havoc Pennington  <hp@redhat.com>
13426
13427         * test/Makefile.am: fix so that test source code ends up in the
13428         distribution on make distcheck
13429
13430 2003-01-15  Havoc Pennington  <hp@redhat.com>
13431
13432         Release 0.1.
13433
13434         * NEWS: update
13435
13436 2003-01-15  Havoc Pennington  <hp@redhat.com>
13437
13438         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13439         fix build when --disable-tests
13440
13441         * Makefile.am (EXTRA_DIST): put HACKING in here
13442
13443         * HACKING: document procedure for making a tarball release.
13444
13445 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13446
13447         * bus/connection.c: (connection_error_handler),
13448         (bus_connection_setup):
13449         * bus/main.c: (main):
13450         Make sure that the DBusConnectionData struct is NULLed
13451         out to prevent a segfault.
13452
13453         * dbus/dbus-errors.c: (dbus_result_to_string):
13454         * dbus/dbus-errors.h:
13455         * dbus/dbus-message.c: (dbus_message_get_fields),
13456         (dbus_message_get_fields_valist), (_dbus_message_test):
13457         * dbus/dbus-message.h:
13458         Make dbus_message_get_fields return a result code so we can
13459         track invalid fields as well as oom.
13460
13461 2003-01-11  Havoc Pennington  <hp@pobox.com>
13462
13463         * configure.in: change --enable-test/--enable-ansi action-if-given
13464         to enable_foo=$enableval instead of enable_foo=yes
13465
13466 2003-01-08  Havoc Pennington  <hp@pobox.com>
13467
13468         * dbus/dbus-string.c (_dbus_string_align_length): new function
13469
13470         * dbus/dbus-test-main.c: move main() for test app here
13471         * dbus/dbus-test.c
13472         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13473         symbol to run tests, because dbus-test isn't in the main
13474         library
13475
13476         Code review nitpicks.
13477
13478         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13479         for people with narrow emacs ;-). Assert client_serial was filled
13480         in. Assert message->name != NULL.
13481         (dbus_message_append_fields): have "first_field_type" arg separate
13482         from va list, needed for C++ binding that also uses varargs IIRC
13483         and helps with type safety
13484         (dbus_message_new): add @todo about using DBusString to store
13485         service/name internally
13486         (dbus_message_new): don't leak ->service and ->name on OOM later
13487         in the function
13488         (dbus_message_unref): free the service name
13489         (dbus_message_get_fields): same change to varargs
13490         i.e. first_field_type
13491         (_dbus_message_loader_return_buffer): assert that the message data
13492         is aligned (if not it's a bug in our code). Put in verbose griping
13493         about why we set corrupted = TRUE.
13494         (decode_header_data): add FIXME that char* is evil.  Was going to
13495         add FIXME about evil locale-specific string.h strncmp, but just
13496         switched to wacky string-as-uint32 optimization. Move check for
13497         "no room for field name" above get_const_data_len() to avoid
13498         assertion failure in get_const_data_len if we have trailing 2
13499         bytes or the like. Check for service and name fields being
13500         provided twice. Don't leak service/name on error. Require field
13501         names to be aligned to 4 bytes.
13502
13503         * dbus/dbus-marshal.c: move byte swap stuff to header
13504         (_dbus_pack_int32): uscore-prefix
13505         (_dbus_unpack_int32): uscore-prefix
13506         (_dbus_unpack_uint32): export
13507         (_dbus_demarshal_string): add @todo complaining about use of
13508         memcpy()
13509         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13510         handling allowing corrupt data to go unchecked
13511
13512 2003-01-08  Havoc Pennington  <hp@redhat.com>
13513
13514         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13515         to the select() as needed for authentication. (should be using
13516         _dbus_poll() not select, but for another day)
13517
13518         * dbus/dbus.h: include dbus/dbus-protocol.h
13519
13520 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13521
13522         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13523         dbus-connection.h
13524
13525 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13526
13527         * dbus/dbus-internals.c: (_dbus_type_to_string):
13528         New function that returns a string describing a type.
13529
13530         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13531         * dbus/dbus-marshal.h:
13532         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13533         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13534         (dbus_message_iter_get_byte_array):
13535         * dbus/dbus-message.h:
13536         Add new convenience functions for appending and getting message fields.
13537         Also add demarshalling routines for byte arrays.
13538
13539 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13540
13541         * dbus/dbus-connection-internal.h:
13542         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13543         (_dbus_connection_get_next_client_serial),
13544         (dbus_connection_send_message):
13545         * dbus/dbus-internals.h:
13546         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13547         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13548         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13549         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13550         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13551         (_dbus_verbose_bytes), (_dbus_marshal_test):
13552         * dbus/dbus-marshal.h:
13553         * dbus/dbus-message-internal.h:
13554         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13555         (dbus_message_write_header), (_dbus_message_lock),
13556         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13557         (dbus_message_get_name), (dbus_message_append_int32),
13558         (dbus_message_append_uint32), (dbus_message_append_double),
13559         (dbus_message_append_string), (dbus_message_append_byte_array),
13560         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13561         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13562         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13563         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13564         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13565         (decode_header_data), (_dbus_message_loader_return_buffer),
13566         (message_iter_test), (_dbus_message_test):
13567         * dbus/dbus-message.h:
13568         * dbus/dbus-protocol.h:
13569         * dbus/dbus-test.c: (main):
13570         * dbus/dbus-test.h:
13571         * glib/test-dbus-glib.c: (message_handler), (main):
13572         * test/echo-client.c: (main):
13573         * test/watch.c: (check_messages):
13574         Make messages sendable and receivable for real.
13575
13576 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13577
13578         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13579         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13580         * dbus/dbus-message.c: (dbus_message_append_int32),
13581         (dbus_message_append_uint32), (dbus_message_append_double),
13582         (dbus_message_append_string), (dbus_message_append_byte_array):
13583         Handle OOM restoration.
13584
13585 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13586
13587         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13588         (_dbus_demarshal_string), (_dbus_marshal_test):
13589         * dbus/dbus-marshal.h:
13590         * dbus/dbus-message.c: (dbus_message_get_name),
13591         Document these functions.
13592
13593         (dbus_message_append_int32), (dbus_message_append_uint32),
13594         (dbus_message_append_double), (dbus_message_append_string),
13595         (dbus_message_append_byte_array):
13596         * dbus/dbus-message.h:
13597         Add functions for adding message fields of different types.
13598
13599         * dbus/dbus-protocol.h:
13600         Add the different types.
13601
13602 2003-01-05  Havoc Pennington  <hp@pobox.com>
13603
13604         * bus/connection.c: implement routines for handling connections,
13605         first thing is keeping a list of owned services on each connection
13606         and setting up watches etc.
13607
13608         * bus/services.c: implement a mapping from service names to lists
13609         of connections
13610
13611         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13612
13613         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13614         to use static mutexes for global data
13615
13616         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13617         collection of functions to set/get application-specific data
13618         on the DBusConnection.
13619
13620 2003-01-04  Havoc Pennington  <hp@pobox.com>
13621
13622         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13623         (_dbus_poll): new function
13624
13625         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13626         copied from GLib
13627
13628         * bus/loop.c: initial code for the daemon main loop
13629
13630 2003-01-04  Havoc Pennington  <hp@pobox.com>
13631
13632         * test/watch.c (error_handler): make it safe if the error handler
13633         is called multiple times (if we s/error handler/disconnect
13634         handler/ we should just guarantee it's called only once)
13635
13636         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13637         error handler on disconnect (it's quite possible we should
13638         just change the error handler to a "disconnect handler," I'm
13639         not sure we have any other meaningful errors)
13640
13641         * configure.in: check for getpwnam_r
13642
13643         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13644         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13645         mechanism as in SASL spec, using socket credentials
13646
13647         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13648         (_dbus_send_credentials_unix_socket): new function
13649
13650         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13651         dbus_accept()
13652         (_dbus_write): only check errno if <0 returned
13653         (_dbus_write_two): ditto
13654
13655 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13658         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13659         (_dbus_marshal_test):
13660         * dbus/dbus-marshal.h:
13661         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13662         to _dbus_marshal_utf8_string. Also fix some tests.
13663
13664 2002-12-28  Harri Porten  <porten@kde.org>
13665
13666         * configure.in: added check for C++ compiler and a very cheesy
13667         check for the Qt integration
13668
13669         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13670
13671         * qt/Makefile.am: added
13672
13673         * qt/.cvsignore: added
13674
13675         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13676         latter, added #ifdef QT_THREAD_SUPPORT guard.
13677
13678         * dbus/Makefile.am: added missing headers for make dist
13679
13680 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13681
13682         * dbus/Makefile.am: fixup export-symbols-regex.
13683
13684 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13685
13686         * acinclude.m4: Add this file and put the
13687         PKG_CHECK_MODULE macro in it.
13688
13689 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13690
13691         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13692         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13693         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13694         (_dbus_marshal_test):
13695         Make the demarshalling routines align the pos argument.
13696         Add string marshalling tests and fix the obvious bugs
13697         discovered.
13698
13699 2002-12-26  Havoc Pennington  <hp@pobox.com>
13700
13701         * dbus/dbus-auth.c: fixes fixes fixes
13702
13703         * dbus/dbus-transport-unix.c: wire up support for
13704         encoding/decoding data on the wire
13705
13706         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13707         (_dbus_auth_decode_data): append to target string
13708         instead of nuking it.
13709
13710 2002-12-26  Havoc Pennington  <hp@pobox.com>
13711
13712         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13713         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13714         doh
13715
13716         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13717         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13718         now). Main point is because I wanted unpack_uint32 to implement
13719         _dbus_verbose_bytes
13720         (_dbus_verbose_bytes): new function
13721
13722         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13723
13724         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13725         mechanism to handle a corrupt message stream
13726         (_dbus_message_loader_new): fix preallocation to only prealloc,
13727         not prelengthen
13728
13729         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13730         (_dbus_string_test): enhance tests for copy/move and fix the
13731         functions
13732
13733         * dbus/dbus-transport-unix.c: Hold references in more places to
13734         avoid reentrancy problems
13735
13736         * dbus/dbus-transport.c: ditto
13737
13738         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13739         leak reference count in no-message case
13740
13741         * test/watch.c (do_mainloop): handle adding/removing watches
13742         during iteration over the watches. Also, ref the connection/server
13743         stored on a watch, so we don't try to mangle a destroyed one.
13744
13745         * dbus/dbus-transport-unix.c (do_authentication): perform
13746         authentication
13747
13748         * dbus/dbus-auth.c (get_state): add a state
13749         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13750         (_dbus_auth_get_unused_bytes): append the unused bytes
13751         to the passed in string, rather than prepend
13752
13753         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13754         the auth conversation DBusAuth
13755
13756         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13757         (_dbus_transport_new_for_domain_socket): when creating a
13758         transport, pass in whether it's a client-side or server-side
13759         transport so we know which DBusAuth to create
13760
13761 2002-12-03  Havoc Pennington  <hp@pobox.com>
13762
13763         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13764         _after_ finalizing the derived members
13765         (unix_connection_set): unref watch if we fail to add it
13766
13767         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13768         transport first, so that the connection owned by the
13769         transport will be valid as the transport finalizes.
13770
13771         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13772         if necessary, and remove watches from the connection.
13773
13774         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13775
13776 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13777
13778         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13779         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13780         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13781         (_dbus_marshal_test):
13782         * dbus/dbus-marshal.h:
13783         Add string marshal functions and have the demarshal functions
13784         return the new position.
13785
13786 2002-12-25  Havoc Pennington  <hp@pobox.com>
13787
13788         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13789         it is a simple protocol that just maps directly to SASL.
13790
13791         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13792         initial implementation, not actually used yet.
13793
13794         * dbus/dbus-string.c (_dbus_string_find): new function
13795         (_dbus_string_equal): new function
13796         (_dbus_string_base64_encode): new function
13797         (_dbus_string_base64_decode): new function
13798
13799 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13800
13801         * dbus/Makefile.am:
13802         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13803         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13804         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13805         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13806         * dbus/dbus-marshal.h:
13807         * dbus/dbus-protocol.h:
13808         * dbus/dbus-test.c: (main):
13809         * dbus/dbus-test.h:
13810         Add un-optimized marshalling/demarshalling routines.
13811
13812 2002-12-25  Harri Porten  <porten@kde.org>
13813
13814         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13815
13816 2002-12-24  Zack Rusin  <zack@kde.org>
13817
13818         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13819         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13820         main loop stuff
13821
13822 2002-12-24  Havoc Pennington  <hp@pobox.com>
13823
13824         * glib/dbus-gthread.c: fix include
13825
13826         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13827         I think glib API needs to change, though, as you don't
13828         want to use DBusMessageFunction, you want to use the
13829         DBusMessageHandler object. Probably
13830         dbus_connection_open_with_g_main_loop()
13831         and dbus_connection_setup_g_main_loop() or something like that
13832         (but think of better names...) that just create a connection
13833         that has watch/timeout functions etc. already set up.
13834
13835         * dbus/dbus-connection.c
13836         (dbus_connection_send_message_with_reply): new function just to
13837         show how the message handler helps us deal with replies.
13838
13839         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13840
13841         * dbus/dbus-string.c (_dbus_string_test): free a string that
13842         wasn't
13843
13844         * dbus/dbus-hash.c: use memory pools for the hash entries
13845         (rebuild_table): be more paranoid about overflow, and
13846         shrink table when we can
13847         (_dbus_hash_test): reduce number of sprintfs and write
13848         valid C89. Add tests for case where we grow and then
13849         shrink the hash table.
13850
13851         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13852
13853         * dbus/dbus-connection.c (dbus_connection_register_handler)
13854         (dbus_connection_unregister_handler): new functions
13855
13856         * dbus/dbus-message.c (dbus_message_get_name): new
13857
13858         * dbus/dbus-list.c: fix docs typo
13859
13860         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13861         an object representing a handler for messages.
13862
13863 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13864
13865         * glib/dbus-glib.h:
13866         * glib/dbus-gthread.c: (dbus_gthread_init):
13867         Don't use the gdbus prefix for public functions.
13868
13869 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * Makefile.am:
13872         * configure.in:
13873         Add GLib checks and fixup .pc files
13874
13875         * glib/Makefile.am:
13876         * glib/dbus-glib.h:
13877         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13878         (gdbus_connection_check), (gdbus_connection_dispatch),
13879         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13880         (dbus_connection_gsource_new):
13881         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13882         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13883         * glib/test-dbus-glib.c: (message_handler), (main):
13884         Add GLib support.
13885
13886 2002-12-15  Harri Porten  <porten@kde.org>
13887
13888         * autogen.sh: check for libtoolize before attempting to use it
13889
13890         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13891         struct.
13892
13893         * .cvsignore: ignore more stamp files
13894
13895         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13896
13897         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13898         without make install.
13899
13900 2002-12-15  Havoc Pennington  <hp@pobox.com>
13901
13902         * dbus/dbus-threads.c: add thread stubs that a higher library
13903         layer can fill in. e.g. the GLib wrapper might fill them in with
13904         GThread stuff. We still need to use this thread API to
13905         thread-safe-ize the library.
13906
13907 2002-12-12  Havoc Pennington  <hp@pobox.com>
13908
13909         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13910         below new interfaces and include fewer system headers.
13911
13912         * dbus/dbus-sysdeps.c (_dbus_read): new function
13913         (_dbus_write): new function
13914         (_dbus_write_two): new function
13915         (_dbus_connect_unix_socket): new function
13916         (_dbus_listen_unix_socket): new function
13917
13918         * dbus/dbus-message-internal.h: change interfaces to use
13919         DBusString
13920
13921 2002-12-11  Havoc Pennington  <hp@pobox.com>
13922
13923         * dbus/dbus-types.h: add dbus_unichar
13924
13925         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13926
13927         * dbus/dbus-connection.c (dbus_connection_send_message): return
13928         TRUE on success
13929
13930         * dbus/dbus-transport.c: include dbus-watch.h
13931
13932         * dbus/dbus-connection.c: include dbus-message-internal.h
13933
13934         * HACKING: add file with coding guidelines stuff.
13935
13936         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13937         handling here, for security purposes (as in vsftpd). Not actually
13938         using this class yet.
13939
13940         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13941         system/libc usage here, as in vsftpd, for ease of auditing (and
13942         should also simplify portability). Haven't actually moved all the
13943         system/libc usage into here yet.
13944
13945 2002-11-25  Havoc Pennington  <hp@pobox.com>
13946
13947         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13948         always print the first verbose message.
13949
13950 2002-11-24  Havoc Pennington  <hp@pobox.com>
13951
13952         * test/echo-client.c, test/echo-server.c: cheesy test
13953         clients.
13954
13955         * configure.in (AC_CHECK_FUNCS): check for writev
13956
13957         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13958         function
13959
13960         * dbus/dbus-list.c (_dbus_list_foreach): new function
13961
13962         * dbus/dbus-internals.c (_dbus_verbose): new function
13963
13964         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13965         representing a server that listens for connections.
13966
13967         * dbus/.cvsignore: create
13968
13969         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13970         public API for reporting errors
13971
13972         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13973         public object representing a connection that
13974         sends/receives messages. (Same object used for
13975         both client and server.)
13976
13977         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13978         Basic abstraction for different kinds of stream
13979         that we might read/write messages from.
13980
13981 2002-11-23  Havoc Pennington  <hp@pobox.com>
13982
13983         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13984         _DBUS_INT_MAX
13985
13986         * dbus/dbus-test.c (main): add list test, and include
13987         dbus-test.h as intended
13988
13989         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13990         (_dbus_hash_table_remove_int): return value indicates
13991         whether the entry existed to remove
13992
13993         * dbus/dbus-list.c: add linked list utility class,
13994         with docs and tests
13995
13996         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
13997         array sometimes.
13998
13999 2002-11-23  Havoc Pennington  <hp@pobox.com>
14000
14001         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14002         DBUS_END_DECLS to nothing, that should fix this once and for all
14003
14004         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14005
14006         * dbus/dbus-message.c, dbus/dbus-hash.c:
14007         add some missing @brief
14008
14009 2002-11-23  Havoc Pennington  <hp@pobox.com>
14010
14011         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14012         to avoid confusing Doxygen
14013
14014         * dbus/dbus-hash.c: @} not }@
14015
14016         * dbus/dbus-message.c (struct DBusMessage): split out
14017         internals docs
14018
14019 2002-11-23  Havoc Pennington  <hp@pobox.com>
14020
14021         * configure.in: pile on more warning flags if using gcc
14022
14023         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14024         to document static functions
14025
14026         * configure.in: add summary to end of configure so it
14027         looks nice and attractive
14028
14029         * dbus/dbus-hash.c: finish implementation and write unit
14030         tests and docs
14031
14032         * configure.in: add --enable-tests to enable unit tests
14033
14034         * dbus/dbus-test.c: test program to run unit tests
14035         for all files in dbus/*, initially runs a test for
14036         dbus-hash.c
14037
14038         * dbus/dbus-internals.h: file to hold some internal utility stuff
14039
14040 2002-11-22  Havoc Pennington  <hp@redhat.com>
14041
14042         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14043         "ported" away from Tcl
14044
14045         * dbus/dbus-types.h: header for types such as dbus_bool_t
14046
14047 2002-11-22  Havoc Pennington  <hp@redhat.com>
14048
14049         * dbus/dbus.h: fixups for doc warnings
14050
14051         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14052         macros
14053         (QUIET): make it quiet so we can see warnings
14054
14055         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14056
14057 2002-11-22  Havoc Pennington  <hp@redhat.com>
14058
14059         * Makefile.am: include "Doxyfile" target in all-local
14060
14061         * configure.in: generate the Doxyfile
14062
14063         * Doxyfile.in: move Doxyfile here, so we can use
14064         configure to generate a Doxyfile with the right
14065         version number etc.
14066
14067 2002-11-22  Havoc Pennington  <hp@redhat.com>
14068
14069         * dbus/dbus-message.c: move inline docs into .c file
14070
14071         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14072         so all docs are under doc/
14073         (MAN_EXTENSION): generate man pages. Use extension
14074         ".3dbus" which matches ".3qt" on my system,
14075         I guess this is OK, I don't know really.
14076         (FILE_PATTERNS): look for .c files not .h, makes sense
14077         for plain C I think
14078
14079 2002-11-22  Havoc Pennington  <hp@pobox.com>
14080
14081         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14082         because any app can be a server, and any app can be a client,
14083         the bus is a special kind of server.
14084
14085 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14086
14087         * Doxyfile : adding. Still needs Makefile rules to be generated
14088         automatically (just run "doxygen" in the toplevel dir for now to
14089         generate docs)
14090
14091         * dbus/dbus-message.h : Adding sample docs (javadoc since
14092         resembles gtk-doc a little more)
14093
14094         * dbus/dbus.h : Adding sample docs
14095
14096 2002-11-21  Havoc Pennington  <hp@redhat.com>
14097
14098         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14099         so we can allow ourselves to include files directly,
14100         instead of having to use dbus.h
14101
14102         * dbus/dbus.h: fill in
14103
14104         * dbus/dbus-message.h: sketch out a sample header file.
14105         Include griping if you include it directly instead of
14106         via dbus.h
14107
14108         * dbus/dbus-macros.h: new file with macros for extern "C",
14109         TRUE/FALSE, NULL, etc.
14110
14111         * doc/file-boilerplate.c: put include guards in here
14112
14113 2002-11-21  Havoc Pennington  <hp@redhat.com>
14114
14115         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14116
14117         * COPYING: include the GPL as well, and license code
14118         under both AFL and GPL.
14119
14120 2002-11-21  Havoc Pennington  <hp@redhat.com>
14121
14122         * acconfig.h: get rid of this
14123
14124         * autogen.sh (run_configure): add --no-configure option
14125
14126         * configure.in: remove AC_ARG_PROGRAM to make
14127         autoconf complain less. add AC_PREREQ.
14128         add AC_DEFINE third arg.
14129
14130 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14131
14132         * doc/Makefile.am:
14133         Fix references so we can distcheck.
14134
14135 2002-11-21  Havoc Pennington  <hp@redhat.com>
14136
14137         * Initial module creation
14138