* test/Makefile.am: change find to use syntax that works with non
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
2
3         * test/Makefile.am: change find to use syntax that works with non
4         gnu versions of find
5
6 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
7
8         * dbus/dbus-transport.c: fix invalid deref when checking if
9         a vtable method exists (Patch from Christian Ehrlicher 
10         <ch dot ehrlicher at gmx dot de>)
11
12 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
13
14         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
15         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
16         to build with builddir != srcdir (Taken from a patch by Bernard Leak
17         <bernard at brenda-arkle dot demon dot co dot uk>)
18
19 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
20
21         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
22         default case
23
24 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
25
26         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
27         it works on any system providing this interface, not only FreeBSD.
28         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
29
30 2006-08-20  Havoc Pennington  <hp@redhat.com>
31
32         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
33         the docs
34
35 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
36
37         * Released 0.92 
38
39 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
40
41         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
42         to reflect the init late change
43
44         * bus/bus.c (bus_context_new): Check user before we fork so we can
45         print out an error message a user will be able to see
46
47 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
48
49         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
50
51         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
52         Add two more global locks for use on windows platforms.  These are
53         unused on non-windows platforms but are not ifdefed out to avoid
54         potential bugs (i.e. the few bytes lost does not warrent the extra
55         maintanence and complexity that having seperate sets of locks would
56         cause)
57
58 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
59
60         * bus/services.c (bus_registry_acquire_service): Return an error
61         when an application tries to register the org.freedesktop.DBus Bus Name
62
63         * bus/services.c (bus_registry_release_service): Return an error
64         when an application tries to release the org.freedesktop.DBus Bus Name
65
66 2006-08-17  Alp Toker  <alp@atoker.com>
67
68         * doc/dbus-specification.xml: Fix some minor typos.
69
70 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
71
72         * configure.in: use $with_init_scripts instead of $operating_system
73         to determine where to store the pid since the init scripts manipulate 
74         the pid file (patch from Marcelo Ricardo Leitner 
75         <marcelo dot leitner at terra dot com dot br>.  
76
77 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
78
79         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
80         static DBusList *uninitialized_condvar_list to support new late 
81         initialization threading model.  In this model threads can be initialized
82         even after the D-Bus API has been used but still needs to be initialized 
83         before the second thread has been started.  Mutexes and condvar addresses
84         are stored in the two static lists and are replaced with actuall locks
85         when threads are initalized.
86         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
87         the location into the static list
88         (_dbus_mutex_free_at_location): New method for removing a mutex location 
89         from the static list and freeing the mutex
90         (_dbus_condvar_new_at_location): New method for creating a conditional 
91         variable and placing the location into the static list
92         (_dbus_condvar_free_at_location): New method for removing a conditional
93         variable location from the static list and freeing the conditional variable 
94         (init_uninitialized_locks): Atomic method which goes through the static 
95         lists of mutex and condvar location and updates them with actuall locks
96         (init_global_locks): changed to init_locks
97         
98         * dbus/dbus-connection.c:
99         (_dbus_connection_test_get_locks): New method for tests to check connections
100         (_dbus_connection_new_for_transport): Use the new at_location mutex and
101         condvar API
102         (dbus_connection_allocate_data_slot): Pass in the global lock address
103         to _dbus_data_slot_allocator_alloc
104
105         * dbus/dbus-dataslot.c:
106         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
107         instead of the mutex itself
108
109         * dbus/dbus-message.c:
110         (dbus_message_allocate_data_slot): Pass in the global lock address
111         to _dbus_data_slot_allocator_alloc
112
113         * dbus/dbus-pending-call.c:
114         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
115         to _dbus_data_slot_allocator_alloc
116
117         * dbus/dbus-server.c:
118         (_dbus_server_init_base): Use the new at_location mutex API
119         (dbus_server_allocate_data_slot): Pass in the global lock address
120         to _dbus_data_slot_allocator_alloc
121
122         * test/name-test/test-threads-init.c: New test case for late thread
123         initialization
124
125 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
126
127         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
128         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
129         causes compile problems when asserts are turned off
130         Keeping _dbus_warn for printing out the message so even if
131         asserts are turned off the user gets the messages that something is 
132         wrong 
133
134 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
135
136         Patches by Kjartan Maraas <kmaraas at gnome dot org>
137
138         * bus/services.c (bus_service_list_queued_owners):
139         Add a pointer cast to fix compiler warning
140
141         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
142         return a NULL instead of FALSE since the return type
143         is not expecting a boolean
144
145         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
146         Remove unused variable
147
148         * dbus/dbus-marshal-recursive-util.c (node_new):
149         return a NULL instead of FALSE since the return type
150         is not expecting a boolean
151
152         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
153         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
154         because we are expecting a pointer not a boolean
155
156         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
157         add void as the parameter so some compilers
158         don't complain
159
160         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
161           _dbus_transport_new_for_tcp_socket):
162         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
163         because we are expecting a pointer not a boolean
164
165         * test/shell-test.c (test_command_line):
166         cast the second argument to _dbus_list_append to avoid compiler
167         warnings
168
169         * test/test-names.c (main): remove unused variable
170
171         * test/test-service.c (check_hello_from_self_reply):
172         Initialize echo_message and echo_reply to NULL
173         
174         * test/test-shell-service.c (handle_echo):
175         Remove unused variable and cast the third parameter passed to
176         dbus_connection_get_object_path_data to avoid compiler warrnings
177
178         * test/name-test/test-names.c (clear_message_queue):
179         Remove unused function
180
181         * test/name-test/test-pending-call-dispatch.c:
182         Fix format string in printf
183
184
185 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
186
187         * dbus/dbus-bus.c:
188         * test/name-test/test-names.c:
189         Remove test method dbus_bus_connection_get_unique_name because 
190         we already have public method dbus_bus_get_unique_name that 
191         does the exact same thing
192
193 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
194
195         * dbus/dbus-signature.c:
196         fix typos in Julio's previous patch which cause make check to fail
197
198 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
199
200         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
201         In any case it was wrong since this is a test checking to see if
202         address parsing is correct.  There was no need to get the true
203         tmp directory.  
204
205 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
206
207         * dbus/dbus-macros.h: Revert the addition of stddef.h
208         as we should not be adding it to library headers 
209
210 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
211
212         * dbus/dbus-signature.c:
213         Fix the unit tests so that they work if assertions are not enabled.
214         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
215
216 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
217
218         * tools/run-with-tmp-session-bus.sh:
219         * test/name-test/run-test.sh:
220         Remove bashisms (patch from Julio M. Merino Vidal
221         <jmmv at NetBSD dot org>)
222
223 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
224
225         * configure.in: add a version (>= 2.6.0) check for libxml2
226
227 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
228
229         * configure.in: make sure the compiler supports -Wfloat-equal
230         
231         * bus/dir-watch-dnotify.c: move functional code after 
232         variable declerations (C99 fix)  (patches from Jens Granseuer
233         <jensgr at gmx dot net>
234
235 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
236
237         * dbus/dbus-macros.h:
238         add #include <stddef.h> so that Sun compilers don't complain about
239         the defining NULL
240
241 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
242
243         * dbus/dbus-sysdeps.c:
244         * dbus/dbus-address.c:
245         * bus/activation.c:
246         * test/shell-test.c:
247         don't hardcode tmp directory (patch from Dave Meikle 
248         <dmk at davemeikle dot co dot uk>)
249
250 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
251
252         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
253         Change an assert to a detailed warning and abort.  
254         When allocator->lock != mutex it indicates that the user has failed
255         to initalize threads before using the D-Bus library.  This warning
256         helps the user identify the issue and fix their app.
257
258 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
259
260         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
261         with cleanups of bugs found from Coverity reports:
262
263         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
264         close the file on error to avoid a leak
265
266         * bus/expirelist.c (bus_expire_list_test):
267         Check for NULL on dbus_new0
268
269         * bus/activation.c (update_directory):
270         remove dead code
271
272         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
273         Fix some leaks
274
275         * bus/bus.c (process_config_every_time):
276         Fixed a leak
277
278         * bus/desktop-file.c (parse_key_value):
279         Fixed leak
280
281         * bus/selinux.c (bus_selinux_id_table_insert):
282         Fixed leak
283
284 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
285
286         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
287         remove dead code
288
289 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
290
291         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
292         #!/bin/bash
293
294 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
295
296         * Doxyfile.in: fix the INPUT line so we can generate docs 
297         when sourcedir != builddir (patch from Cygwin Ports maintainer
298         <yselkowitz at users dot sourceforge dot net>
299
300 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
301
302         * dbus/dbus-sysdeps.h:
303         * dbus/dbus-sysdeps.c: 
304         * dbus/dbus-string.c: 
305         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
306         GLib's function which does the same thing
307
308         * configure.in:
309         * bus/Makefile.am:
310         * bus/dir-watch-default.c:
311         * bus/dir-watch-dnotify.c:
312         * bus/dir-watch-kqueue.c:
313         Add kqueue directory watching for freebsd and split the directory
314         watching code into seperate files per method/arch
315         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
316
317 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
318
319         * configure.in:
320         * tools/Makefile.am:
321         * tools/dbus-launch.c:
322         * bus/Makefile.am:
323         allow --with-dbus-daemondir switch to be used to make the
324         daemon install to a seperate bindir like /usr/libexec
325         (patch from Brian Cameron <brian dot cameron at sun dot com)
326
327 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
328
329         * bus/Makefile.am (install-data-hook): removed the slash after 
330         $(DESTDIR) so we don't get the double slash which does not work
331         in windows (patch from Andras Porjesz 
332         <andras dot porjesz at siemens dot com>)
333
334 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
335
336         * dbus/dbus-sysdeps.h:
337         * dbus/dbus-sysdeps.c: 
338           add _dbus_printf_length (patch from Peter Kümmel 
339           <syntheticpp at gmx dot net>)
340
341 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
342
343         * dbus/dbus-internals.c: unistd.h is not used 
344         (_dbus_verbose_real): only enable verbose printing 
345         if DBUS_VERBOSE environment var is set to '1'
346         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
347
348 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
349
350         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
351         so we still compile on older gcc (patch from Frederic Peters 
352         <fpeters at 0d dot be>
353
354 2006-08-04  Havoc Pennington  <hp@redhat.com>
355
356         * configure.in: add -Wdeclaration-after-statement
357
358         * dbus/dbus-connection.c: change all the pending call stuff to
359         reflect the fact that pending call operations use the connection
360         lock
361
362         * dbus/dbus-pending-call.c: add locking here
363
364         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
365         field const consistent with how message field is done
366
367 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
368
369         * s/D-BUS/D-Bus/g
370
371 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
372
373         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
374         <in7y118 at public.uni-hamburg dot de> - fix invalid
375         read/write reported by valgrind
376
377 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
378
379         * Released 0.91
380
381 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
382
383         * dbus/dbus-connection.c:
384         (_dbus_connection_attach_pending_call_unlocked):
385         (connection_timeout_and_complete_all_pending_calls_unlocked):
386         Make sure we set timeout_added on pending calls to FALSE when
387         we remove the timeout from the connection
388
389 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
390
391         * Removed some extra bindings stuff lingering around (thanks timo)
392         * dbus-pendingcall.c (_dbus_pending_call_new): 
393         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
394         when we tried to take a lock on an already locked connection
395
396 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
397
398         * Released 0.90
399
400 2006-07-17  Havoc Pennington  <hp@redhat.com>
401
402         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
403         ints, reported by Owen Taylor
404
405 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
406
407         * doc/TODO:
408         * dbus/dbus-bus.c:
409         * dbus-errors.c:
410         * dbus/dbus-marshal-validate.c:
411           Removed TODO items which were fixed or are no longer relevent
412
413 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
414
415         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
416         Remove stray files from the stripped bindings
417
418 2006-07-16  Havoc Pennington  <hp@redhat.com>
419
420         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
421         Improve the error message on reply timeout
422
423 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
424
425         * Remove all bindings
426
427 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
428
429         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
430         and set pending_reply out arg to NULL is connection is disconnected
431         (connection_timeout_and_complete_all_pending_calls_unlocked): New
432         static method for cleaning up pending calls on disconnect
433         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
434         calls queued timeouts on disconnect 
435
436          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
437         Remove 
438
439 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
440
441         * bus/activation.[ch] (bus_activation_list_services): new function to 
442         get the list of services that can be activated
443
444         * bus/dispatch.c: test coverage for the new bus method
445         ListActivatableNames
446
447         * bus/driver.c: new bus method ListActivatableNames to get the list of
448         services that can be activated
449
450         * doc/dbus-specification.xml: ListActivatableNames method documentation
451
452 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
453         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
454         source files
455
456 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
457         * dbus/dbus-message-factory.c:
458         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
459
460 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
461         * dbus/dbus-connection-internal.h:
462         * dbus/dbus-connection.c:
463         * file dbus/dbus-pending-call.c:
464         * dbus/dbus-pending-call.h:
465         Make DBusPendingCall an opaque type even to D-Bus internals
466
467 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
468
469         * dbus/dbus-connection.h: remove connection_disconnect and replace with
470         connection_close
471
472         * dbus/dbus-connection.c: include dbus-bus.h
473         (_dbus_connection_read_write_dispatch): make static
474
475 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
476
477         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
478         function
479         (dbus_connection_dispatch): On disconnect unref any shared connections
480
481         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
482         for cleaning up shared connections on disconnect
483         (internal_bus_get): get a hard refrence to shared connections when
484         they are created
485         
486         * doc/TODO: Remove items which are no longer relevent or have been fixed
487         Split 1.0 todo items with a 0.90 freeze todo list
488  
489 2006-06-14  Ross Burton  <ross@openedhand.com>
490
491         * glib/dbus-gobject.c:
492         Free a leaking GArray (surely not!) in dbus_g_method_return.
493
494 2006-06-14  Ross Burton  <ross@openedhand.com>
495
496         * tools/Makefile.am:
497         * tools/dbus-monitor.c:
498         Don't use the GLib bindings in dbus-monitor (patch from Ralf
499         Habacker).
500         
501 2006-06-14  Ross Burton  <ross@openedhand.com>
502
503         * tools/dbus-print-message.c:
504         Also print the object path when outputting signals or method calls.
505
506 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
507
508         * qt/src/Makefile.am: install the qdbus.h header.
509         This allows people to actually use the installed code.
510
511 2006-06-12  Ross Burton  <ross@openedhand.com>
512
513         * glib/dbus-gproxy.c:
514         Don't leak a GArray when firing signals (thank Rob Taylor for review).
515
516 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
517
518         * Released 0.62
519
520 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
521
522         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
523         break pedantic builds. Closes bug 6043 (patch approved by
524         Havoc back in February).
525
526 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
527
528         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
529         that took a QDBusMessage parameter.
530         * qt/src/qdbusbus.h: Add a default flag for RequestName.
531         * qt/tools/dbus.cpp: Don't use automatic call because we might
532         be calling an async method: request a reply.
533
534 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
535
536         * test/qt/*: Update the testcases, including testing the new
537         functionality of sending null QByteArray and QString over the
538         bus. Add new headertest test and restore the old
539         qdbusxmlparser test.
540
541 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
542
543         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
544         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
545
546         * qt/examples/Makefile.am:
547         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
548         form.
549
550         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
551         QByteArray() (nulls) over the bus.
552         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
553         the one that has the signature suffix stripped.
554         * qt/src/qdbusreply.h: Make some methods const.
555
556 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
557
558         Patch from Timo Hoenig <thoenig@suse.de>.
559
560         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
561         required during build to EXTRA_DIST.
562         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
563         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
564         * configure.in: Fix "make dist", take care that the Makefile for
565         qt/dbus is being generated.
566
567 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
568
569         * bus/bus.c: Fix eavesdropping on method calls
570
571 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
572
573         * configure.in:
574         * dbus/dbus-userdb-util.c:
575         Add Solaris console owner patch from Artem Kachitchkine
576
577 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
578
579         * qt/Makfile.am:
580         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
581         reorganisation. Thanks to Timo Hoenig for pointing this out.
582
583 2006-06-06  Robert McQueen  <robot101@debian.org>
584
585         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
586           call to dbus_g_type_get_struct.
587
588 2006-06-06  Robert McQueen  <robot101@debian.org>
589
590         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
591           pointers were put into a GPtrArray-based specialised collection, and
592           then freed along with the array. GValues which you add into
593           collections or maps which have the NOCOPY flag set are assumed to not
594           belong to the caller, so rather than the existing pointer-stealing
595           semantics, they are copied instead. Given that the main consumers of
596           this abstraction are the bindings themselves, I don't think this is
597           too bad, but others should watch their choice of take vs set_static.
598
599 2006-06-06  Robert McQueen  <robot101@debian.org>
600
601         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
602           of g_slist_prepend not being used. Fixed copying of slist-based
603           specialised collections, then wrote a test case and found that it was
604           all broken. Went on to fix iterating and appending too. Good thing
605           nobody uses this code yet.
606
607 2006-06-06  Robert McQueen  <robot101@debian.org>
608
609         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
610           the iterators use gvalue_take_ptrarray_value (the GValues themselves
611           are discarded without unsetting, so it makes no difference whether
612           we take or set_static). Remove cases for G_TYPE_POINTER because
613           there really is nothing useful we can do with them in our
614           specialised types - we *need* boxed copy/free functions at the very
615           least.
616
617 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
618
619         * qt/dbus: Add directory. I had forgotten to add this
620         yesterday after the move...
621
622         * qt/examples/Makefile.am:
623         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
624
625         * qt/tools/Makefile.am:
626         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
627         Added feature to get and set properties.
628         Added validation of service, object path and interface names.
629
630         * qt/tools/dbusidl2cpp.cpp: Two new features:
631         1) Allow specifying both the header and the source file names,
632         by separating them with a colon.
633         2) Don't write an interface output if the -p switch wasn't
634         given, but the -a was.
635
636         * qt/src/*: Fix usage of Iterators and ConstIterators.
637         Fix shadowing of variables by other variables (-Wshadow).
638         Fix keyword-cleanliness in headers.
639         Fix ASCII-cast (QLatin1String, QLatin1Char).
640         Fix validation of member names.
641         Add extra checking of introspection data during XML parsing.
642         Various bug fixes.
643
644 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
645
646         * dbus/Makefile.am:
647         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
648         qt/dbus/qdbus.h now.
649
650 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
651
652         * configure.in: Make --disable-qt actually do
653           something. Patch inspired by Zack Rusin.
654
655 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
656
657         * qt/: Update to Subversion r548032.
658         This includes a big reorganisation of the files inside the
659         subdir.
660
661 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
662
663         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
664         clear:  
665         "Failed to connect to socket <host>:<port> <error>" instead of
666         "Failed to connect to socket <host>: <error>:<port>"
667
668         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
669         for a tcp transport. 
670
671 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
672
673         * qt/*: Update the QtDBus bindings up to revision 546310 in
674         Subversion.
675         This adds the dbuscpp2xml tool, that parses a C++ header and
676         outputs a D-BUS Introspection XML.
677
678 2006-05-21  Havoc Pennington  <hp@redhat.com>
679
680         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
681         is not NULL when it shouldn't be. Also a couple of possible fixes
682         for #4637 though I don't understand why the bug happens, to be
683         honest... also the object constructor has an assert name != NULL
684         and the name is only currently NULL for peer-to-peer proxies that 
685         I don't think anyone uses? So it should be asserting.
686         Anyway, for now at least see if we get an earlier assertion failure.
687
688         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
689         apparently broken code to be sure the tests fail and someone 
690         will fix them...
691
692 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
693
694         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
695         and arrays when they had a single element: has_next returns
696         false, even before you read the element. So, instead, check
697         the array length.
698
699 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
700
701         * qt/qdbusmessage.cpp:
702         * qt/qdbustypehelper_p.h:
703         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
704         the list is a const-reference
705
706 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
707
708         * Adding old doc patch that never got applied
709         
710         * dbus/bus.c (dbus_bus_add_match): Add documentation
711
712         * doc/dbus-specification.xml: Add documentation for the match rules
713           and the AddMatch and RemoveMatch methods
714
715 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
716
717         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
718         call (r535506)
719
720         * qt/dbusidl2cpp.cpp:
721         * qt/qdbusabstractadaptor.cpp:
722         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
723         sibling of the QDBusAbstractAdaptor objects instead of the
724         parent. (r535848)
725
726         * qt/dbusidl2cpp.cpp:
727         * qt/qdbusabstractinterface.cpp:
728         * qt/qdbusabstractinterface.h:
729         * qt/qdbusabstractinterface_p.h:
730         * qt/qdbusinterface.cpp: Make properties in interfaces
731         actually work. The code that was generated would not compile,
732         due to moc calls to functions that did not exist. They now
733         shall. (r536571)
734
735 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
736
737         * Makefile.am:
738         * configure.in:
739         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
740         Thanks to Brad Hards for providing the patch
741
742 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
743
744         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
745         call. (r535506)
746
747 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
748
749         * qt/examples/dbus.cpp: Enhance error messages and use
750         QDBusInterfacePtr.
751
752 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
753
754         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
755         and disable the copy operators. (r533772, r534746)
756
757         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
758
759         * qt/qdbusabstractinterface.cpp:
760         * qt/qdbusabstractinterface.h: Change the default call mode to
761         not use the event loop. Add convenience call() methods that
762         take a CallMode parameter. (r534042)
763
764         * qt/qdbusconnection.h: Change the default call mode to not
765         use the event loop. (r534042)
766
767         * qt/qdbusinterface.cpp:
768         * qt/qdbusinterface.h: Add a method to tell us if the
769         interface is valid (since we don't return a null pointer
770         anymore) (r534099)
771
772         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
773         (r534101)
774
775         * qt/qdbusinternalfilters.cpp: Decouple the introspection
776         function in two so taht we get the chance to introspect
777         without having a QDBusMessage (r534102)
778
779         * qt/qdbusbus.h:
780         * qt/qdbusconnection.cpp:
781         * qt/qdbusconnection_p.h:
782         * qt/qdbusintegrator.cpp: Keep a list of our own names to
783         avoid a round-trip to the server when attempting to introspect
784         one of our own objects. Also make sure the filter functions
785         match the empty interface as well. (r534108)
786         Don't keep the connection names. Instead, trust the unique
787         connection name (r534111)
788         Remove event loop usage (r534112)
789
790 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
791
792         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
793         Brad Hards.
794
795 2006-04-28  Robert McQueen  <robot101@debian.org>
796
797         * glib/dbus-gproxy.c: Fix properties so that they can be given in
798         any order, making it easier for people who inherit from this
799         object.
800
801 2006-04-28  Robert McQueen  <robot101@debian.org>
802
803         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
804         of memory from within pointer arrays and lists. Fixes bug #6300.
805
806 2006-04-28  Robert McQueen  <robot101@debian.org>
807
808         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
809         generating struct signatures. Fixes bug #6083.
810
811 2006-04-28  Robert McQueen  <robot101@debian.org>
812
813         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
814         to qdbusconnection_p.moc.
815
816 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
817
818         * README, INSTALL: Doc fixes
819         Patch from Brad Hards <bradh at frogmouth.net>
820
821 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
822
823         * qt/examples/dbus.cpp: Use the new merged-interface mode for
824         the dynamic meta object. No need to guess which interface to
825         call.
826
827 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
828
829         * qt/qdbusconnection_p.h:
830         * qt/qdbusmetaobject.cpp:
831         * qt/qdbusmetaobject_p.h:
832         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
833         for the dynamic meta object. No need to guess which
834         interface to call.
835         * qt/qdbusabstractinterface_p.h:
836         * qt/qdbusconnection.cpp:
837         * qt/qdbusintegrator.cpp:
838         * qt/qdbusinterface.cpp:
839         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
840         Add a QDBusRef that looks and behaves like DCOPRef.
841
842 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
843
844         * dbus/dbus-connection.c: Interfaces are optional in method
845         calls, so don't give up if the interface parameter is NULL.
846         Patch reviewed by Havoc Pennington.
847
848 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
849
850         * qt/qdbusreply.h: Add default constructor and operator=
851           (r532625)
852         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
853           in public headers (r532952)
854         * qt/qdbusabstractinterface.cpp:
855         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
856           make it the default (r532951)
857
858 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
859
860         * dbus/dbus-connection.c: Fix asserts
861         Patch from Tim Moloney <t.moloney at verizon.net>
862
863 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
864
865         * mono/Connection.cs, mono/Message.cs: Check Target type
866         Patch from Aaron Bockover (abockover at novell.com)
867
868 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
869
870         * INSTALL: fine-tune the requirements for the Qt4 binding.
871
872 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
873
874         * tools/dbus-print-message.c: Added support for printing of all 
875           remaining data types. Fixed logic for indentation of compound
876           data types.
877         
878 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
879
880         * INSTALL: fill out content of file providing DBus specific
881           build installations, followed by generic Auto* INSTALL file
882           content
883         
884 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
885
886         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
887           Patch by Stefan Eilers. (r529537)
888
889 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
890
891         * qt/qdbusinternalfilters.cpp: Don't show the parent's
892           contents (r528208)
893
894 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
895
896         * qt/Makefile.am: fix the dependency for
897           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
898           not in qdbusconnection.cpp.
899           Thanks to Jakub Stachowski <stachowski@hypair.net> for
900           spotting this.
901
902 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
903
904         * qt/examples/listnames.cpp:
905         * qt/examples/Makefile.am: Three ways to list the names on the
906           bus.
907
908 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
909
910         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
911           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
912
913 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
914
915         Merge from Subversion:
916         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
917           something that exists (r526315)
918         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
919           slots/signals (r526316)
920         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
921           also return an unknown-method error if the parameters don't
922           match for org.freedesktop.DBus.Properties. (r526842)
923         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
924         * qt/qdbusintegrator.cpp: Restore the proper order of
925           delivery: don't make method returns be delivered on priority
926           (r528150)
927
928 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
929
930         * configure.in qt/Makefile.am: add qt/examples
931         * qt/examples: Add QtDBus example programs:
932           - hello: Hello, World
933           - ping: Simple method-calling program
934           - pong: Simple object-exporting program (not using adaptors)
935           - complexping: Interactive method-calling program 
936                 (also gets and sets properties).
937           - complexpong: Sample program exporting methods, signals and
938                 properties, using adaptors.
939           - dbus: Simple implementation of a generic method-calling
940                 program, similar to 'dbus-send', but with semantics
941                 similar to 'dcop'.
942           - chat: Simplistic chat program, implemented using signals
943                 and the system bus. Looks like IRC.
944
945 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
946
947         * configure.in: Detect QtGui (necessary for one of the
948           example programs). Note: this increases the minimum required
949           version of Qt to 4.1.3.
950
951 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
952
953         * test/qt/*: Sync with KDE Subversion revision 523647.
954         Update the testcases to the new API. Remove testcases for
955         classes that are no longer public or have been removed.
956
957 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
958
959         * qt/*: 
960         * dbus/qdbus.h: Sync with KDE Subversion revision
961         523647. Hopefully, this will be the last of the
962         source-incompatible changes. Documentation has been improved;
963         support for QList<basic-types> has been added; QDBusObject is
964         gone; QDBus(Abstract)Interface is now a QObject with
965         auto-generated meta-object; QDBusIntrospection is marked
966         private, since QMetaObject can be used now; lots of bugfixes.
967
968 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
969
970         Patch from Milosz Derezynski <internalerror at gmail.com>
971         
972         * configure.in:
973         Output the service directory in the configure summary
974
975         * dbus-1.pc.in:
976         Add session_bus_services_dir
977
978 2006-03-10  Ross Burton  <ross@openedhand.com>
979
980         * tools/dbus-print-message.c:
981         Add support for object paths and signatures.
982
983 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
984
985         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
986         config reload.
987         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
988         information caches
989         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
990         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
991         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
992         * dbus/dbus-userdb.h: Add function to flush all user/group information
993         caches.
994
995 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
996
997         * qt/dbusidl2cpp.cpp:
998         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
999         for dcopidl2cpp, found in the KDE installations (or the more
1000         modern kalyptus): generate Qt4 C++ code for the input XML
1001         introspection. Currently no IDL parsing.
1002
1003 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1004
1005         * test/qt/*: Update the self-tests.
1006
1007 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1008
1009         * qt/*: 
1010         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1011         represents the first feature-complete version of the Qt4
1012         bindings since I took ove maintainership.
1013
1014 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1015
1016         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1017         dir. This is C++, so we can't use the DBus ones.
1018
1019 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1022         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1023
1024 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * dbus/dbus-connection.c: 
1027         (_dbus_connection_block_pending_call):
1028         Check to see if our data has already been read off the connection
1029         by another blocking pending call before we block in poll.
1030         (check_for_reply_and_update_dispatch_unlocked):
1031         Code taken from _dbus_connection_block_pending_call - checks for
1032         an already read reply and updates the dispatch if there is one.
1033
1034         * test/name-test/test-pending-call-dispatch.c:
1035         New test for making sure we don't get stuck polling a 
1036         dbus connection which has no data on the socket when
1037         blocking out of order on two or more pending calls.
1038
1039 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1040
1041         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1042         make/automake don't detect that we're talking about the same
1043         .lo file if I specify the full path to the source files.
1044
1045 2006-02-26  Havoc Pennington  <hp@redhat.com>
1046
1047         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1048
1049         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1050         session bus variable is unset, suggest "man dbus-launch" and "man
1051         dbus-daemon" to figure out how to fix the problem
1052
1053 2006-02-25  Havoc Pennington  <hp@redhat.com>
1054
1055         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1056         should make this thing use the new glib options parser
1057
1058 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1059
1060         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1061         .lo files taking moc sources.
1062
1063 2006-02-25  Havoc Pennington  <hp@redhat.com>
1064
1065         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1066         and install it as a public header
1067
1068 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * Released 0.61
1071
1072 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1073         
1074         * proxies.py: Fix the callchain
1075
1076 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1077         
1078         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1079
1080         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1081         dbus/dbus-sysdeps.c
1082
1083         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1084         call _dbus_group_info_free_allocated which causes infinite loop,
1085         correctly call _dbus_group_info_free
1086
1087 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1088
1089         * qt/qdbusinterface_p.h:
1090         * qt/qdbusinterface.cpp: Use the standard
1091         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1092         calls instead of creating one for us.
1093
1094         * qt/qdbusconnection_p.h:
1095         * qt/qdbusintegrator.cpp: Remove debugging code.
1096
1097         * qt/qdbusintegrator.cpp:
1098         * qt/qdbusmessage.cpp:
1099         * qt/qdbusmessage_p.h:
1100         * qt/qdbusmessage.h: Change the behaviour of automatic
1101         reply-sending: now a reply is always sent, unless the caller
1102         didn't request one or if the user slot has already sent one.
1103
1104 2006-02-16  Robert McQueen  <robot101@debian.org>
1105
1106         * configure.in: Patch from Debian packages by Sjoerd Simons
1107         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1108         arguments so it's possible to build both bindings in the
1109         same tree.
1110
1111         * qt/Makefile.am: Fix truncated value so that make dist works.
1112
1113 2006-02-16  Robert McQueen  <robot101@debian.org>
1114
1115         * acinclude.m4, configure.in: Patch from Brad Hards
1116         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1117         improving quoting, re-ordering a few checks, and a few other
1118         aesthetic tidy-ups.
1119
1120 2006-02-16  Robert McQueen  <robot101@debian.org>
1121
1122         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1123         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1124         assertion that the next element to read from the iter is fixed in
1125         size. This is not the case when you are at the end of the iter,
1126         because the next element type is INVALID.
1127
1128         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1129         a bogus assert which means that you may not initialise a 0-length
1130         string unless you provide a non-NULL pointer. This prevented
1131         you from marshalling messages containing zero-length arrays in
1132         some cases.
1133
1134         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1135         from Rob to correct bogus asserts when trying to demarshal an
1136         array and get_fixed_array got you 0 elements. Append nothing to
1137         the GArray in this case.
1138
1139         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1140         an empty array via the glib bindings. Without all of the above
1141         patches, this new test fails.
1142
1143 2006-02-16  Robert McQueen  <robot101@debian.org>
1144
1145         * glib/dbus-gmain.c: Make the previous commit compile.
1146
1147         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1148         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1149         specify sender_keyword="foo", path_keyword="bar" when adding
1150         a signal listener, so that you can bind to signals generically
1151         but still do something useful in your callback.
1152
1153         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1154         chars so that they're not cast to chars and made negative. Thanks
1155         to Jakub Stachowski for reporting this and testing the fix.
1156
1157 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * dbus/dbus-glib.h:
1160         * glib/dbus-gmain.h:
1161         (dbus_g_connection_open): new method for openning
1162         a connection to an arbitrary address in the glib bindings
1163
1164         * ChangeLog: checkin last entry which doesn't seem to be commited
1165
1166 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         * tools/dbus-launch.c: Fixed sh syntax output
1169
1170 2006-02-13  Robert McQueen  <robot101@debian.org>
1171
1172         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1173         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1174         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1175         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1176         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1177         missing piece of the glib bindings jigsaw puzzle. This modifies
1178         the existing specialised types to have N type parameters (rather
1179         than the current 1 or 2 for arrays and dictionaries respectively).
1180         You can then use this to get a glib type to represent any arbitrary
1181         D-Bus struct type using dbus_g_type_get_struct. The only
1182         implementation of these types is with GValueArrays as before,
1183         but it's now possible to store these in arrays, emit them in
1184         signals, etc.
1185
1186 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1189         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1190         <thiago.macieira at trolltech.com>
1191
1192 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1195         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1196
1197 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1198
1199         * bus/connection.c (bus_connections_expect_reply): Make
1200         pending reply limit not common to all connections (Bug #5416)
1201         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1202
1203 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1206
1207 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1210         patch from Doug Goldstein <cardoe at gentoo.org>
1211
1212 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1213
1214         * mono/Arguments.cs: Fix a magic number in the mono bindings
1215         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1216
1217 2006-01-27  Robert McQueen  <robot101@debian.org>
1218
1219         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1220         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1221         when generating the client-side methods, instead of overloading
1222         CSymbol which broke everything horribly. My apologies.
1223
1224 2006-01-27  Robert McQueen  <robot101@debian.org>
1225
1226         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1227         by me and Rob Taylor to add a simple_free function to D-Bus map
1228         and collection types, which allows those types which can be freed
1229         with a GDestroyNotify (such as GHashTables and GArrays, but not
1230         GPtrArrays) to be stored as the values in hashtables.
1231
1232         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1233         Patch by Rob Taylor to add nested dicts to the glib tests to check
1234         the above code works, and appears not to leak when called repeatedly.
1235
1236 2006-01-27  Robert McQueen  <robot101@debian.org>
1237
1238         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1239         to free a D-Bus allocated string with dbus_free () instead of
1240         g_free ().
1241
1242 2006-01-27  Iain Holmes  <iain@openedhand.com>
1243
1244         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1245         method from being called multiple times.
1246
1247 2006-01-19  Robert McQueen  <robot101@debian.org>
1248
1249         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1250         <rob.taylor@collabora.co.uk> to add support for generating bindings
1251         to arrays that are represented as GPtrArrays rather than GArrays (ie
1252         size-variable things, such as strings, objects, structs, etc).
1253
1254 2006-01-05  Robert McQueen  <robot101@debian.org>
1255
1256         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1257         <ricardo.kekki@movial.fi> to make it possible to inherit from
1258         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1259         a private part, and moving the setting of the DBusGProxyManager into a
1260         connection property, allowing proper GObject construction.
1261
1262 2006-01-05  Robert McQueen  <robot101@debian.org>
1263
1264         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1265         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1266         annotations when generating glib client bindings.
1267
1268 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1269
1270         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1271
1272         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1273
1274 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1277
1278 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1279
1280         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1281
1282 2005-12-19  Ross Burton  <ross@openedhand.com>
1283
1284         * doc/dbus-tutorial.xml:
1285         Document the Glib client-side bindings, and list all possible annotations.
1286
1287 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * dbus/bus.c (dbus_bus_release_name): Add documentation
1290
1291 2005-12-06  Robert McQueen  <robot101@debian.org>
1292
1293         * python/service.py: s/sucessful/successful/ so we're allocating to
1294         and reading from the same variable. Oops.
1295
1296 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1297
1298         * Released 0.60
1299
1300 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1301
1302         * test/qt/Makefile.am: build from srcdir
1303
1304         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1305         Note - this code is wrong and needs to be fixed by the Qt binding
1306         developers.  The flags should be treated as bitfields and not enums.
1307
1308         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1309
1310 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1311
1312         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1313           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1314           in production code
1315
1316 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1319         method for getting messages off the bus in the absence of a
1320         mainloop.  This method is much like 
1321         dbus_connection_read_write_dispatch except it does not dispatch
1322         the messages to a registered filter function.  Instead it
1323         allows a developer to process messages by directly popping
1324         them off the bus.
1325
1326 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1329         the parser to continue instead of returning error
1330         (bus_desktop_file_load): Do not free parser data when
1331         parse_section_start or parse_key_value fails because it was 
1332         already freed by parser_free (patch from Carlos Garcia Campos  
1333         <carlosgc at gnome.org>)
1334
1335 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1338         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1339         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1340         test/test-segfault.c, test/test-utils.c,
1341         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1342         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1343         Various cleanup of dead code and compiler warnings (patch from
1344         Kjartan Maraas <kmaraas at gnome.org>) 
1345
1346 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1347
1348         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1349         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1350
1351 2005-11-27  Robert McQueen  <robot101@debian.org>
1352
1353         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1354         part of the preceding one. Oops. Merge patch by Johan Hedberg
1355         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1356         on big-endian platforms.
1357
1358         * test/python/test-client.py: Add some 16-bit integers to the test
1359         values.
1360
1361 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1362
1363         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1364         method return message for property getters
1365
1366 2005-11-27  Robert McQueen  <robot101@debian.org>
1367
1368         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1369         with type v of an instance of dbus.Variant(foo, type='x') caused
1370         it to be boxed twice before sending over the bus.
1371
1372         * python/dbus_bindings.pyx, python/service.py,
1373         test/python/test-client.py: Update the constants for the new
1374         request_name flags, and update comments/test cases now that queueing
1375         is the default action.
1376
1377 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1378
1379         * configure.in:
1380         - Change version to 0.60 for impending release
1381         - upped the sonames because of ABI and API breakage
1382
1383 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1384
1385         * configure.in: Add test/name-test/Makefile to the generated
1386         Makefile list
1387
1388         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1389         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1390         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1391         not to queue an ower if it can't be the primary owner
1392
1393         * bus/bus.h: Add new internal BusOwner struct
1394
1395         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1396         to bus_registry_ensure and don't set the prohibit_replacement flag
1397         since they are now set per BusOwner and not per name.
1398         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1399         that returns the list of connections in a name's connection queue
1400         
1401         * bus/services.c (struct BusService): remove prohibit_replacement field
1402         (struct BusOwner): new struct for keeping track of queued connections
1403         and their associated flags for the queue
1404         (struct BusRegistry): add a BusOwner memory pool
1405         (bus_registry_new): initialize the BusOwner memory pool
1406         (bus_registry_unref): free the BusOwner memory pool
1407         (_bus_service_find_owner_link): new internal method for
1408         searching the queue for a specific connection
1409         (bus_owner_set_flags): new method for adding setting the flags on a
1410         bus owner
1411         (bus_owner_new): new method that creates a BusOwner object from the
1412         pool and sets its flags
1413         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1414         (bus_registry_ensure): Add the flags parameter
1415         (bus_registry_acquire_service): Switch from using raw connections to
1416         using the BusOwner struct
1417         Add new state machine for dealing with the new set of flags
1418         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1419         cancel_ownership, free_ownership_cancel_data, 
1420         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1421         restore_ownership, free_ownership_restore_data, 
1422         add_restore_ownership_to_transaction): Switch to using BusOwner 
1423         instead of raw connections
1424         (bus_service_add_owner): Add flags parameter
1425         Switch to using BusOwner instead of raw connections
1426         Add state machine for dealing with the new set of flags
1427         (bus_service_swap_owner): Swaps the first and second owners in the
1428         queue.  Used to make sure proper signals are sent when a service looses 
1429         or gains primary ownership.  We never insert an owner at the top of the
1430         queue.  Instead we insert it in the second position and then swap.
1431         (bus_service_remove_owner): Remove the owner from the queue sending
1432         out the NameLost and NameOwnerChanged signals if the we were the 
1433         primary owner
1434         (bus_service_get_primary_owners_connection): New method that extracts
1435         the connection from the primary owner
1436         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1437         connection
1438         (bus_service_get_allow_replacement): Changed from the old 
1439         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1440         primary owner and returns if it can be replaced or not
1441         (bus_service_set_prohibit_replacement): removed
1442         (bus_service_has_owner): returns TRUE if and owner with
1443         the specified connection exists in the queue
1444         
1445         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1446         method that only compiles if tests are enabled.  Allows us to get the 
1447         unique name of a connection so we can check it against the queue when
1448         doing regression tests
1449
1450         * bus/activation.c (bus_activation_send_pending_auto_activate),
1451         bus/dispatch.c (bus_dispatch),  
1452         bus/driver.c (bus_driver_handle_get_service_owner, 
1453         bus_driver_handle_get_connection_unix_user, 
1454         bus_driver_handle_get_connection_unix_process_id,
1455         bus_driver_handle_get_connection_selinux_security_context),
1456         bus/signals.c (connection_is_primary_owner): 
1457         use bus_service_get_primary_owners_connection instead of
1458         bus_service_get_primary_owner
1459
1460         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1461         _dbus_listen_unix_socket): Calculate the length of the socket
1462         path and use that instead of using a fixed length which was
1463         causing socket names to contain many trailing Nul bytes.
1464
1465         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1466         (dbus_g_method_get_sender): New method for extracting the sender 
1467         from a DBusGMethodInvocation
1468         (dbus_g_method_return_get_reply): changed name to 
1469         dbus_g_method_get_reply
1470         (dbus_g_method_return_send_reply): changed name to
1471         dbus_g_method_send reply
1472
1473         * doc/dbus-specification.xml: New docs that describe how the new
1474         queueing system works and talks about the changes to the how
1475         we specify socket names
1476
1477         * glib/examples/example-service.c, 
1478         glib/examples/example-signal-emitter.c,
1479         glib/examples/statemachine/statemachine-server.c:
1480         Changed the RequestName flags to the new system
1481
1482         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1483         regression test suite for testing various states of the new
1484         queueing system
1485         
1486 2005-11-15  Robert McQueen  <robot101@debian.org>
1487
1488         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1489         Taylor to add two methods, dbus_g_method_return_get_reply and
1490         dbus_g_method_return_send_reply, to allow you to get the reply
1491         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1492         and send it. The GLib bindings can't marshal a return value of
1493         something like a(s) if the array is empty - ultimately they should be
1494         made to heed the signature of the out arguments as the Python bindings
1495         now can, but this is a workable interim solution which might have
1496         other applications.
1497
1498 2005-11-15  Robert McQueen  <robot101@debian.org>
1499
1500         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1501         method to org.freedesktop.DBus to release a bus name or give up
1502         waiting in the queue for it.
1503
1504         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1505         dbus_bus_release_name method to send the ReleaseName method calls.
1506         Add constants for the return values to dbus/dbus-shared.h.
1507
1508         * doc/dbus-specification.xml: Document the new ReleaseName method
1509         in the specification.
1510
1511         * python/dbus_bindings.pyx: Add a low-level python binding for the
1512         release name method.
1513
1514         * python/exceptions.py, python/service.py: Make freeing BusName
1515         objects release the name. Add a NameExistsException, and fix a
1516         bug with creating UnknownMethodException.
1517
1518         * test/python/test-client.py: Add tests for freeing BusName
1519         objects causing names to be released.
1520
1521 2005-11-14  Robert McQueen  <robot101@debian.org>
1522
1523         * python/service.py: Include the traceback in the error reply when we
1524         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1525
1526 2005-11-14  David Zeuthen  <davidz@redhat.com>
1527
1528         Patch from Timo Hoenig <thoenig@suse.de>.
1529
1530         * bus/bus.c: I've recently investigated why the automatic reload
1531         of configuration files does not work as expected.
1532
1533         Currently, reloading configuration files does only work when
1534         running dbus-daemon with --nodaemon.  If we are running as daemon
1535         we're hitting a dnotify bug once we fork the process.
1536
1537         We're initializing the dnotify fds before calling fork().  Once
1538         the child process forked it does still have the fds (and they
1539         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1540         getting SIGIO as changes are made to the configuration files.
1541
1542         The attached patch moves the initialization of the dnotify fds to
1543         process_config_postinit().  This is safe for all current code
1544         paths and solves the dnotify disfunction.  If we're running
1545         dbus-daemon as daemon the fds for dnotify are now being
1546         initialized after fork() for the child process.
1547
1548         * configure.in: The current configure.in check for dnotify probes
1549         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1550         match for 'xlinux', too. Additionally I have adapted the configure
1551         option's style to match with the others.
1552
1553 2005-11-14  Robert McQueen  <robot101@debian.org>
1554
1555         * python/decorators.py, python/service.py: Add a new argument to the
1556         dbus.service.method decorator called sender_keyword, which if set,
1557         specifies the name of an argument which will be provided the bus
1558         name of the method caller.
1559
1560         * test/python/test-client.py, test/python/test-service.py: Add a
1561         method and test to check the sender_keyword functionality.
1562
1563 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1564
1565         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1566         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1567         Simons <sjoerd at luon.net>)
1568
1569         * AUTHORS: Add Robert McQueen for his work on the Python
1570         Bindings and other parts of D-Bus
1571
1572 2005-11-07  Robert McQueen  <robot101@debian.org>
1573
1574         * python/decorators.py: Change emit_signal function to use the
1575         signature annotation of the signal when marhsalling the arguments from
1576         the service. Fix a bug where the code checking signature length
1577         against argument length referenced the wrong variable.
1578
1579         * python/introspect_parser.py: Avoid adding the type signature of
1580         signal arguments to any methods which occur after them in the
1581         introspection data (!) by making the parser a little more careful
1582         about its current state.
1583
1584         * python/service.py: Remove debug prints from last commit (again :D).
1585
1586         * test/python/test-client.py, test/python/test-service.py: Add test
1587         signals with signature decorators to test the strict marshalling code
1588         gives errors at the right time. Could do with checking the signals
1589         actually get emitted too, given that the test does nothing with
1590         signals at the moment...
1591
1592 2005-11-07  Robert McQueen  <robot101@debian.org>
1593
1594         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1595         instances to stop madness of creating new instances representing
1596         the same bus connection all the time, rendering any tracking of
1597         match rules and bus names quite meaningless. Caught a bug where
1598         the private argument to SessionBus() and friends was being passed
1599         in as use_default_mainloop by mistake. Still some problems with
1600         multiple dbus_binding.Connection instances representing the same
1601         low-level connection (eg when you use both SessionBus() and
1602         StarterBus() in same process), but it's a lot better now than it
1603         was.
1604
1605         * python/dbus_bindings.pyx: Add constants with the return values
1606         for bus_request_name().
1607
1608         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1609         and retrieve the same instances for the same name, so deletion can be
1610         done with refcounting. Also now throws some kind of error if you
1611         don't actually get the name you requested, unlike previously...
1612
1613         * test/python/test-client.py: Add tests for instance caching of buses
1614         and bus name objects.
1615
1616 2005-11-04  Robert McQueen  <robot101@debian.org>
1617
1618         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1619         marshalling of boolean values. Add some booleans to the values in
1620         the test client.
1621
1622         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1623         argument to the dbus.service.method decorator, which allows you to
1624         name arguments to take two callback functions for replying with
1625         return values or an exception.
1626
1627         * test/python/test-client.py, test/python/test-service.py: Add test
1628         case using asynchronous method reply functions, both return values and
1629         errors, and from within both the function itself and from a mainloop
1630         callback.
1631
1632         * python/decorators.py, python/service.py: Perform checking that the
1633         number of method/signal arguments matches the number of types in the
1634         signature at class loading time, not when you first introspect the
1635         class.
1636
1637         * python/service.py: Remove debug print left by the last commit.
1638
1639 2005-11-03  Robert McQueen  <robot101@debian.org>
1640
1641         * python/service.py: Heavy refactoring of method invocation, with
1642         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1643         in favour of a new _message_cb that uses seperate functions for
1644         looking up the method to call, marshalling the return values, and
1645         sending exceptions as errors, and is easier to follow as a
1646         consequence.  Fixes some corner cases about returning things that
1647         don't match your declared out_signature, allows exceptions to define
1648         _dbus_error_name and have it be sent over the bus as the error name,
1649         and paves the way for cool stuff like heeding the message no reply
1650         flag, asynchronous method implementations, informing the method of the
1651         sender, and including backtraces in the error messages.
1652
1653         * test/python/test-client.py: Catch and print exceptions thrown in the
1654         async callback tests, rather than passing them to the low-level
1655         bindings to be ignored in a noisy and frustrating manner.
1656
1657 2005-11-03  Robert McQueen  <robot101@debian.org>
1658
1659         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1660         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1661         tweak others to be consistent.
1662
1663         * test/python/test-client.py: Tweak output of testInheritance.
1664
1665 2005-10-29  Robert McQueen  <robot101@debian.org>
1666
1667         * python/service.py: Major changes to allow multiple inheritance
1668         from classes that define D-Bus interfaces:
1669         
1670          1. Create a new Interface class which is the parent class of
1671             Object, and make the ObjectType metaclass into InterfaceType.
1672         
1673          2. Patch written with Rob Taylor to replace use of method_vtable
1674             with code that walks the class's __MRO__ (method resolution order)
1675             to behave like Python does when invoking methods and allow
1676             overriding as you'd expect. Code is quite tricky because
1677             we have to find two methods, the one to invoke which has the
1678             right name and isn't decorated with the /wrong/ interface,
1679             and the one to pick up the signatures from which is decorated
1680             with the right interface.
1681         
1682             The same caveats apply as to normal multiple inheritance -
1683             this has undefined behaviour if you try and inherit from two
1684             classes that define a method with the same name but are
1685             decorated with different interfaces. You should decorate
1686             your overriding method with the interface you want.
1687         
1688          3. Replace grungy introspection XML generation code in the metaclass
1689             with dictionaries that cope correctly with multiple inheritance
1690             and the overriding of methods. This also uses the signature
1691             decorations to provide correct introspection data, including
1692             the debut appearance of the types of your return values. :D
1693
1694         * test/python/test-client.py, test/python/test-service.py: Add a test
1695         case to try invoking an method that overrides one inherited from a
1696         D-Bus interface class.
1697
1698 2005-10-29  Robert McQueen  <robot101@debian.org>
1699
1700         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1701         Add checking for the end of struct character when marshalling a
1702         struct in MessageIter.append_strict.
1703
1704         * python/examples/example-service.py,
1705         python/examples/gconf-proxy-service.py,
1706         python/examples/gconf-proxy-service2.py: Update to use gobject
1707         mainloop directly rather than appearing to depend on gtk.
1708
1709         * python/test/test-client.py, python/test/test-server.py: Remove
1710         obsolete and broken test scripts for old bindings. We have up to date
1711         and working tests in test/python/.
1712
1713 2005-10-29  Robert McQueen  <robot101@debian.org>
1714
1715         * python/decorators.py: Add optional arguments to the method and
1716         signal decorators to allow you to specify the signature of arguments
1717         and return values. Preserve the doc strings of signal functions in the
1718         decorated version, for pydoc and friends.
1719
1720         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1721         parse_signature_block function with an iterable dbus.Signature()
1722         type. Fix a bug in MessageIter.append_strict where you could append
1723         anything by claiming it was a string.
1724
1725         * python/service.py: Use the out_signature decoration on methods to
1726         marshal return values, meaning you no longer require dbus.Array()
1727         or dbus.Dictionary() to indicate the type when returning empty
1728         arrays or dictionaries. Fix a bug where exceptions which are defined
1729         in __main__ are not turned into error replies.
1730
1731         * test/python/test-client.py, test/python/test-service.py: Add test
1732         for correct marshalling of return values according to out_signature.
1733         Fix a bug in the async call test where the error_handler is missing a
1734         self argument.
1735
1736 2005-10-29  Robert McQueen  <robot101@debian.org>
1737
1738         * glib/Makefile.am, glib/examples/Makefile.am,
1739         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1740         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1741
1742         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1743
1744         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1745         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1746         the command line.
1747
1748 2005-10-27  Ross Burton  <ross@openedhand.com>
1749
1750         * dbus/dbus-marshal-header.c:
1751         Remove dead code.
1752
1753         * glib/dbus-gobject.c:
1754         Stop compiler warning.
1755
1756 2005-10-25  Ross Burton  <ross@openedhand.com>
1757
1758         * dbus/dbus-auth.c:
1759         * dbus/dbus-server-unix.c:
1760         * dbus/dbus-transport-unix.c:
1761         * glib/dbus-gmain.c:
1762         * glib/dbus-gobject.c:
1763         Add some const keywords.
1764
1765 2005-10-25  Ross Burton  <ross@openedhand.com>
1766
1767         * doc/dbus-specification.xml:
1768         Document the NoReply annotation.
1769
1770         * glib/dbus-binding-tool-glib.h:
1771         * glib/dbus-binding-tool-glib.c:
1772         Respect the NoReply annotation.
1773
1774 2005-10-24  Robert McQueen <robot101@debian.org>
1775
1776         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1777         derive from unicode instead of str, and encode/decode UTF-8 when
1778         marshalling/unmarshalling bus messages
1779
1780         * python/introspect_parser.py: encode introspection data as UTF-8
1781         before passing the buffer into libxml2
1782
1783         * test/python/test-client.py: add unicode test strings
1784
1785         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1786         ignore generated python test files
1787
1788 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1789
1790         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1791         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1792         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1793
1794         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1795         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1796         when constructing struct signatures
1797
1798         * python/_dbus.py (Bus): handle private connections using the
1799         private keyword in the constructor. defaults to private=False
1800         (Bus::close): new method to close a connection to the bus
1801
1802         * python/dbus_bindings.pyx (Connection::close): renamed method
1803         was previously called disconnect
1804         (bus_get): now supports getting a private connection
1805
1806         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1807         keyword is set to True.  if it is, execute the method without waiting
1808         for a reply
1809         (ProxyObject::_introspect_execute_queue): new method for executing
1810         all the pending methods that were waiting for the introspect to
1811         finish.  this is called when introspect either succeeds or fails
1812         (ProxyObject::_introspect_error_handler): call queued methods
1813
1814 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1815
1816         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1817         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1818
1819         * python/service.py (Object::_message_cb): handle exceptions correctly
1820         by sending them over the wire to the calling app.  This makes sure
1821         the client returns immediately instead of waiting the 15 seconds to
1822         timeout.
1823
1824         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1825         Add a test to benchmark how long it takes to introspect a service and 
1826         call a method which returns a large element (pretty fast)
1827
1828         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1829         method which pushes a lot of data
1830
1831 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1832
1833         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1834         reclaim memory outside of the loop and use del istead of just setting
1835         the key to None
1836
1837 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1838
1839         * python/service.py (ObjectType::_reflect_on_signal): Always close
1840         signal tag even when there are no arguments
1841
1842 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1843
1844         * configure.in: Set mono, mono-docs and Qt3 to default
1845         to no instead of auto when building.  These bindings do not
1846         have full time maintainers and will not be supported for the
1847         1.0 release.
1848
1849 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1850
1851         patches from Michael Krivoruchko <misha at sun.com>: 
1852         
1853         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1854         _dbus_connection_message_sent, 
1855         _dbus_connection_send_preallocated_unlocked_no_update, 
1856         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1857         is NULL when calling _dbus_verbose
1858
1859         * configure.in: check for functions getpeerucred and getpeereid
1860
1861         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1862         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1863         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1864         Patch was only tested on Solaris 10 x86 so it might be issues
1865         with other platforms (i.e. BSDs and MacOSX)
1866         
1867
1868 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1869
1870         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1871         instead of marshal basic so we can handle recursive types in a variant
1872
1873         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1874         in variants
1875
1876         * test/glib/test-service-glib.c, test-service-glib.xml
1877         (my_object_echo_variant [EchoVariant], 
1878         my_object_process_variant_of_array_of_ints123
1879         [ProcessVariantOfArrayOfInts123]): 
1880         Add two test methods
1881
1882         * python/introspect_parser.py: New module for parsing introspect
1883         data.
1884
1885         * python/dbus_bindings.pyx:
1886         (various places): when throwing errors fix to use errormsg instead 
1887         of message local variable because Pyrex can get confused with other 
1888         message variables (initial patch by Robert McQueen 
1889         <robert.mcqueen at collabora.co.uk>)
1890         (MessageIter::parse_signature_block): new method for getting the next
1891         block in a signiture.
1892         (MessageIter::append_strict): new method for appending values strictly
1893         using the passed in signature instead of guessing at the type
1894         (MessageItter:: append_dict, append_struct, append_array): use 
1895         signatures to marshal children if the signature is available
1896         
1897         * python/exceptions.py (IntrospectionParserException): new exception
1898
1899         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1900         introspected signatures if available, else we fall back to the
1901         old way of doing things.
1902         (ProxyObject::_introspect_reply_handler ): parse introspection data
1903         
1904         * python/service.py (ObjectType::_reflect_on_method): Properly
1905         terminate <method> if there are no args in the reflection data
1906
1907         * test/python/test-client.py: add tests for talking with the GLib
1908         test server.  This gives us better coverage for introspection since
1909         python to python will always generate arguments as variants.  It also
1910         allows us to test the robustness of the GLib bindings and interlanguage
1911         communications.
1912
1913         
1914 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1915
1916         * bus/driver.c (bus_driver_handle_introspect): Add signals
1917         to the introspect data. (patch from Daniel P. Berrange 
1918         <dan at berrange.com>)
1919
1920         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1921         
1922         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1923         _dbus_connection_run_builtin_filters): Changed these to
1924         be unlock_no_update functions and call 
1925         _dbus_connection_send_unlocked_no_update instead of
1926         dbus_connection_send to avoid locking errors.
1927         
1928         * doc/TODO: Removed the make Ping test TODO
1929         
1930 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1931
1932         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1933         We now copy the message from a DBusError and then free 
1934         the error object befor throwing the error
1935
1936         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1937         DBusBindingOutputMode enum which was causing a warning.
1938         #include <time.h> so using time_t is explicitly defined
1939
1940 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1941
1942         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1943         - dbus/dbus-bus.c
1944         (internal_bus_get): new method that take over the heavy lifting
1945         of dbus_bus_get and adds the ability to get a private connection
1946         to the bus
1947         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1948         interface as in previous versions
1949         (dbus_bus_get_private): new method that is a wrapper to 
1950         internal_bus_get to get a private connection to the bus
1951
1952         - dbus/dbus-bus.h
1953         (dbus_bus_get_private): add as a public libdbus interface
1954
1955         - dbus-1.pc.in: output system_bus_default_address and 
1956         sysconfdir variables so apps can use them when compiling
1957
1958 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1959         * dbus/qt: New Qt bindings
1960
1961 2005-09-12  Waldo Bastian  <bastian@kde.org>
1962
1963         * dbus/dbus-marshal-validate.c,
1964         doc/dbus-specification.xml, test/Makefile.am,
1965         test/test-names.c: allow hyphens in bus names.
1966
1967 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1968
1969         * test/data/auth/fallback.auth-script: we don't
1970         retry the EXTERNAL method when we know its going
1971         to fail anymore.
1972
1973 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1974
1975         * dbus/dbus-connection-internal.h: rename
1976         (add|remove|toggle)_(watch|timeout) to unlocked()
1977         
1978         * dbus/dbus-connection.c: ditto.
1979         
1980         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1981         Update some callers for the renaming.
1982
1983 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1984
1985         * dbus/dbus-auth.c: (record_mechanisms): don't
1986         retry the first auth mechanism because we know
1987         we're just going to get rejected again.
1988         
1989         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1990         Fix thinko ... and what a nasty little bugger to
1991         track down you were ...
1992
1993         * dbus/dbus-connection.c:
1994         (_dbus_connection_add_watch),
1995         (_dbus_connection_remove_watch): add note about
1996         these needing the connection to be locked.
1997         (_dbus_connection_get_dispatch_status_unlocked):
1998         set status to DATA_REMAINS when we queue the
1999         disconnected message.
2000         
2001         * bus/dispatch.c:
2002         (bus_dispatch): fix warning.
2003         (check_existent_service_no_auto_start):
2004         Expect ChildSignaled error too.
2005         (check_existent_hello_from_self): fix another
2006         couple of warnings.
2007         
2008 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2009
2010         Patches from James Willcox <snorp@snorp.net>
2011
2012         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2013
2014         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2015         support array "out" parameters.
2016
2017         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2018         for 16-bit int support.
2019
2020 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2021
2022         * Released 0.50
2023
2024         * Patch from Steve Grubb:
2025         - bus/activation.c (bus_activation_service_reload_test): clean up
2026         some indentation
2027         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2028         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2029         buffer overflows in the test suite.  This is non critical because
2030         it can not be exploited and this code is only run when doing a 
2031         make check.
2032
2033         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2034         - configure.in: Don't check and link against kdecore, only qt headers
2035         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2036         - gcj/org/freedesktop/dbus/Makefile.am:
2037         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2038         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2039         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2040         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2041         - tools/Makefile.am: Add platform extentions to binaries 
2042         (i.e. .exe on windows)
2043
2044         * configure.in: 
2045         - Make it so if no suitable version of python is found we only 
2046         disable building python instead of exiting the configure script
2047         - Require version 2.4 of glib for glib bindings
2048         - Up version to 0.50
2049
2050         * python/__init__.py: Sync version with libdbus to (0,50,0)
2051         
2052 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2053
2054         * dbus/dbus-object-tree.c (find_subtree_recurse):
2055         a couple of optimizations (bug #710):
2056         - do a binary search in the tree
2057         - insert a new child at the right place directly, no need for
2058           qsort anymore
2059         - do the "double alloc" thing when allocating children
2060
2061 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2064
2065         * python/dbus_bindings.pyx: Memory management foo
2066         (global): remove hacky _user_data_references global list
2067         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2068         tuples. Unref user_data
2069         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2070         (Connection::__del__): Remove and replace with __dealloc__ method
2071         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2072         to keep tuple from being deallocated instead of the global var hack
2073         (Connection::register_object_path): Stuff user_data into a tuple.
2074         Use Py_INCREF to keep tuple from being deallocated instead of the 
2075         global var hack
2076         (Connection::register_fallback): Stuff user_data into a tuple.
2077         Use Py_INCREF to keep tuple from being deallocated instead of the 
2078         global var hack
2079         (GIL_safe_pending_call_notification): Don't unref the message
2080         because it gets unreffed when going out of scope.  Py_XDECREF
2081         the user_data
2082         (PendingCall::__del__): Remove and replace with __dealloc__ method
2083         (PendingCall::set_notify): ref the pending call because we will
2084         need it to stick around for when the notify callback gets called
2085         (Message::__del__): Remove and replace with __dealloc__ method
2086
2087         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2088         gthreads_init to match up with the dbus call
2089
2090         * python/glib.py (init_threads): Changed to threads_init to match
2091         up with gobject.threads_init().  init_threads is kept for backwards
2092         compat but will most likely be deprecated in the future
2093
2094         * test/python/test-client.py: 
2095         - revamp to use Python's unittest functionality
2096         - add async call tests
2097         - setup threads in glib and dbus so we make sure locks are working
2098         
2099 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2100
2101         * python/dbus_bindings.pyx 
2102         (_pending_call_notification, cunregister_function_handler, 
2103         cmessage_function_handler): All callback functions have been rearranged 
2104         to workaround a bug in Pyrex when working with the GIL which is Python's 
2105         global lock when dealing with threads.  They have been split into
2106         a wrapper function (which assumes the name of the old function) and
2107         a _GIL_safe_<function name> function which contains the functionality
2108         of the old function.  This ensures that Pyrex does not write code
2109         the lock is released.
2110         
2111
2112 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2113
2114         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2115         GIL global lock when calling back into Python
2116
2117 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2118
2119         * Release 0.36.2
2120
2121         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2122
2123         * bus/policy.c (bus_policy_allow_user): change default "user is
2124         allowed" to be "user has same uid as the bus itself"; any
2125         allow/deny rules will override.
2126
2127         * bus/session.conf.in: don't allow all users, since now by default
2128         the user that ran the bus can connect.
2129
2130 2005-08-26  Colin Walters  <walters@verbum.org>
2131
2132         * tools/dbus-print-message.c (print_message): Flush stdout
2133         after printing a message, so that redirecting to a file, then
2134         hitting Ctrl-C works.
2135
2136 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2139         (EmptyMessage): new class that subclasses Message.  This is a workaround
2140         to a Pyrex bug that fails to call __del__ when the Message object goes out
2141         of scope.  For some reason subclassing Message fixes this bug
2142         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2143         - s/Message(_create=0)/EmptyMessage everywhere else
2144         
2145         * test/python/test-{server|client}.py: add the python/.libs directory
2146         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2147         get picked up from the system
2148
2149 2005-08-25  Colin Walters  <walters@verbum.org>
2150
2151         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2152         to Ryan Lortie for the suggestion.
2153
2154 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2155
2156         * test/python: Add python regression test
2157
2158         * configure.in: Add test/python/Makefile
2159
2160         * test/Makefile.am: Add the python directory to SUBDIRS
2161
2162 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2163
2164         * Release 0.36.1
2165
2166         * python/_dbus.py: 
2167         (Interface::connect_to_signal): propigate keywords for match on args
2168         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2169
2170         * python/proxies.py (ProxyObject::connect_to_signal):
2171         propigate keywords for match on args
2172
2173         * Makefile.am: point everything to pyexecdir since python borks
2174         on multilib
2175
2176 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2177
2178         * Release 0.36
2179
2180 2005-08-23  Colin Walters  <walters@verbum.org>
2181
2182         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2183
2184 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2185
2186         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2187         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2188         of defining DBusConnection ourselves.
2189
2190 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2191
2192         * python/dbus.pth: New path file to fix up problems when installing
2193         c libraries to lib64 and python files to lib.
2194
2195         * python/Makefile.am: install dbus.pth in the correct spot
2196
2197 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2198         * ChangeLog: clean up my last entry a bit
2199
2200         * doc/introspect.xsl: New stylesheet for converting introspection data
2201         into browser renderable xhtml. Contributed by Lennart Poettering.
2202
2203         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2204         Poettering.
2205
2206         * doc/dbus-tutorial.xml: 
2207         - Add Colin Walter to the Authors section for authoring the GLib
2208         section
2209         - Add descriptions of the new signature and type functionality
2210         in the Python complex type mapping section
2211         - Add a sidenote on the new args matching functionality in 
2212         the Python bindings
2213         - Fixed up some of the examples to use the gobject.MainLoop
2214         instead of gtk.main
2215         
2216         * python/_dbus.py:
2217         (Bus::_create_args_dict): New. Converts a hash of arg matches
2218         to a more useable format
2219         (Bus::add_signal_receiver): add a **keywords parameter for catching
2220         arg match parameters
2221         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2222         arg match parameters
2223         
2224         * python/matchrules.py:
2225         (MatchTree::exec_matches): Check for arg matches
2226         (SignalMatchRule::add_args_match): New method
2227         (SignalMatchRule::execute): Added args_list parameter as an optimization
2228         so we don't have to marshal the args more than once
2229         (SignalMatchRule::match_args_from_list): New method that checks to see
2230         if the rule's arg matches match an argument list.  Only arguments
2231         set in the rule are checked.
2232         (SignalMatchRule::match_args_from_rule): New method that checks to see
2233         if the rule's arg matches match another rule's.  All args have to match
2234         in order for this method to return true.  If either rule has more args
2235         then it is not a match.
2236         (SignalMatchRule::is_match): Add args match
2237         (SignalMatchRule::repr): Add args to the final output if they exist
2238
2239 2005-08-17  Ross Burton  <ross@burtonini.com>
2240
2241         * glib/dbus-gproxy.c:
2242         (dbus_g_proxy_call_no_reply): unref the message once sent.
2243         (dbus_g_proxy_call): protect against NULL proxy.
2244
2245 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2246
2247         * python/__init__.py: Version updated (0, 43, 0)
2248         
2249         * python/dbus_bindings.pyx: 
2250         - Fixed type objects to have self passed into __init__
2251         - Added the Variant type
2252         - Add the ability to specify types or signatures for Array, Variant 
2253         and Dictionary
2254         (Connection::send_with_reply_handlers): return a PendingCall object
2255         (_pending_call_notification): handle the case when an error is returned 
2256         without an error message in the body
2257         (MessageIter::get_boolean): return True or False instead of an integer
2258         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2259         and add checks for objects with embeded signatures or types (Array, 
2260         Variant and Dictionary)
2261         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2262         (MessageIter::append_dict): handle embeded types or signatures
2263         (MessageIter::append_array): handle embeded types or signatures
2264         (MessageIter::append_variant): new method
2265         
2266         * python/proxies.py:
2267         (DeferedMethod): New. Dummy executable object used when queuing calls 
2268         blocking on introspection data
2269         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2270         or shorter timeouts for method calls
2271         (ProxyObject): Add first pass at an introspection state machine
2272         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2273         introspection. 
2274         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2275         the usual mechanisms for sending messages.  This is to avoid a deadlock
2276         where the Intospect call would be queued waiting for the Introspect 
2277         call to finish ;-)
2278         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2279         when introspection returns with no error
2280         (ProxyObject::_introspect_error_handler): New.  This method is called 
2281         when introspection encounters an error
2282         (ProxyObject::__getattr__): Code to handle different introspection 
2283         states.  Queue async calls or block blocking calls if we are 
2284         introspecting.  Pass through as normal if we are not or are done with 
2285         introspecting.
2286         
2287         * python/service.py: Import signal and method from decorators.py
2288
2289         * python/types.py: Add Variant type
2290
2291 2005-08-16  Colin Walters  <walters@verbum.org>
2292
2293         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2294         DBusError message is NULL.
2295
2296 2005-08-09  Havoc Pennington  <hp@redhat.com>
2297
2298         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2299         malloc'd copy of the name parameter
2300
2301 2005-08-09  Havoc Pennington  <hp@redhat.com>
2302
2303         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2304         warning if the reply serial is set to 0
2305
2306 2005-08-04  Colin Walters  <walters@verbum.org>
2307
2308         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2309         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2310         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2311         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2312         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2313         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2314         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2315         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2316         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2317         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2318         
2319         Prefix name with _ to ensure they're not exported.  All callers
2320         updated.
2321
2322         * glib/dbus-gvalue.c (typecode_to_gtype)
2323         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2324         (signature_iter_to_g_type_dict)
2325         (signature_iter_to_g_type_array)
2326         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2327         (dbus_gtypes_from_arg_signature):
2328         Move to dbus-gsignature.c.
2329
2330         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2331         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2332         (dbus_binding_tool_output_glib_client): Ditto.
2333
2334         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2335         and dbus-gsignature.h
2336
2337         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2338         unused variable.
2339
2340 2005-08-03  Colin Walters  <walters@verbum.org>
2341
2342         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2343         catch any incompatible changes accidentally made.
2344
2345 2005-08-03  Havoc Pennington  <hp@redhat.com>
2346
2347         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2348         typo, from Julien Puydt
2349
2350         * bus/connection.c (bus_connection_disconnected): we were always
2351         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2352
2353 2005-08-01  Colin Walters  <walters@verbum.org>
2354
2355         Patch from Joe Markus Clarke:   
2356         
2357         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2358         use-after-free.
2359
2360 2005-08-01  Colin Walters  <walters@verbum.org>
2361         
2362         Patch from Joe Markus Clarke:   
2363         
2364         * tools/dbus-send.c (main): 
2365         
2366         Don't use C99 style initializers (bug #3933).
2367         
2368 2005-08-01  Colin Walters  <walters@verbum.org>
2369
2370         Patch from Joe Markus Clarke:   
2371
2372         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2373         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2374         * glib/dbus-gobject.c (write_interface):
2375
2376         Don't use C99 style initializers (bug #3933).
2377
2378 2005-07-31  Havoc Pennington  <hp@redhat.com>
2379
2380         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2381         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2382
2383 2005-07-30  Havoc Pennington  <hp@redhat.com>
2384
2385         * fix a bunch of Doxygen warnings and mistakes
2386
2387 2005-07-30  Havoc Pennington  <hp@redhat.com>
2388
2389         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2390         DBUS_BUILD_TESTS since it's now used in production code
2391
2392 2005-07-29  Havoc Pennington  <hp@redhat.com>
2393
2394         * test/glib/test-profile.c (write_junk): initialize the junk
2395         buffer so valgrind doesn't have a breakdown
2396
2397 2005-07-29  Havoc Pennington  <hp@redhat.com>
2398
2399         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2400         (match_rule_matches): remove unused arg
2401         (test_matching): add tests for match_rule_matches()
2402
2403         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2404         do arg0='foo' arg5='bar' in the match rules
2405         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2406
2407         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2408
2409 2005-07-29  Ross Burton  <ross@openedhand.com>
2410
2411         * dbus/dbus-connection.c:
2412         Don't create a DBusCondVar which is never used.
2413
2414 2005-07-27  Ross Burton  <ross@openedhand.com>
2415
2416         * dbus/dbus-message.c:
2417         Reduce the size of the maximum cached message to 10K.
2418
2419 2005-07-25  Ross Burton  <ross@openedhand.com>
2420
2421         * glib/dbus-gproxy.c:
2422         Remove matches when all proxies are unregistered.
2423
2424 2005-07-24  Colin Walters  <walters@verbum.org>
2425
2426         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2427         typedata; recursive arrays won't have it.
2428
2429         * test/glib/test-dbus-glib.c:
2430         * test/glib/test-service-glib.c:
2431         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2432         
2433 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2434
2435         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2436         proxies.py, service.py: Cleanup of code after running it through the
2437         pyflakes code checker mostly dealing with undefined names.  
2438         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2439
2440 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2441
2442         * NEWS: Update to 0.35.2
2443
2444 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2445
2446         * python/_dbus.py: Remove import of the dbus.services
2447         module as it no longer exists (patch from Dimitur Kirov)
2448
2449         * python/service.py (Object::__init__): Fixed typo
2450         s/name/bus_name (patch from Dimitur Kirov)
2451
2452         * python/examples/example-signal-emitter.py: import dbus.glib
2453         to get the main loop and use glib mainloop instead of gtk so
2454         X doesn't have to be running.
2455
2456         * python/examples/example-signal-recipient.py: import dbus.glib
2457         to get the main loop and use glib mainloop instead of gtk so
2458         X doesn't have to be running. Import the decorators module
2459         directly.
2460
2461         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2462         didn't pick up on but are needed to build
2463
2464         * configure.in: upped version to 0.35.2
2465
2466         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2467         added Colin Walters' SELinux API rename patch from head 
2468         s/unix sercurity context/selinux security context/
2469
2470 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2471
2472         * python/Makefile.am: dbus_binding.pxd.in should be included 
2473         in EXTRA_DIST not dbus_binding.pxd
2474         fix up $(srcdir) hopefully for the last time
2475
2476         * NEWS: Update to 0.35.1
2477
2478 2005-07-16  Colin Walters  <walters@verbum.org>
2479
2480         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2481         from bus_driver_handle_get_connection_unix_security_context.  Update for
2482         error usage.
2483         (message_handlers): Update for renames.
2484
2485         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2486         _dbus_string_init failure correctly.
2487         (bus_selinux_append_context): Convert SID to context.  Append it
2488         as a byte array.
2489         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2490         hasn't been called.
2491
2492         * bus/selinux.h: Update prototype.
2493
2494         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2495         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2496
2497 2005-07-15  Colin Walters  <walters@verbum.org>
2498
2499         * doc/TODO: Add note about convenience wrappers.
2500
2501 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2502
2503         * NEWS: Update to 0.35
2504
2505 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2506
2507         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2508         so distcheck doesn't fail
2509
2510         * glib/examples/Makefile.am: Add example-service.xml and 
2511         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2512
2513         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2514         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2515
2516         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2517         compiler looks in the right places during distcheck
2518
2519 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2522         to fail
2523
2524 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2525
2526         * python/examples/example-service.py,
2527         python/examples/example-signal-emitter.py: Fixed up examples
2528         for API changes
2529
2530 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * python/__init__.py: Upped to version (0,42,0) because of
2533         the API change
2534
2535 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2536
2537         * ChangeLog: fix date in last entry
2538
2539         * configure.in, bus/system.conf.in: add the ability to configure 
2540         the system bus user at compiletime with the --with-dbus-user flag
2541         (patch from Kristof Vansant)
2542
2543 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2544
2545         * bus/dispatch.c, test/test-service.c: Add testcase
2546         for sending messages to oneself (TODO item).
2547
2548         * python/service.py (class Object): Swap ordering of bus_name 
2549         and object_path parameters to better support inheritance.
2550
2551         * doc/dbus-tutorial.xml: change Python docs to reflect change
2552         in parameter ordering and fix the inheritance section.
2553
2554         * doc/TODO: remove sending message to oneself TODO item
2555
2556 2005-07-15  Ross Burton  <ross@openedhand.com>
2557
2558         * glib/dbus-gproxy.c:
2559         Fix a leak when calling methods via the proxy.
2560
2561 2005-07-15  Colin Walters  <walters@verbum.org>
2562
2563         * bus/selinux.c (bus_selinux_append_context): Wrap in
2564         HAVE_SELINUX.
2565
2566 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2567
2568         * python/_dbus.py (Bus::remove_signal_receiver):
2569         don't add a callback to the match if none has been passed in
2570         
2571         * python/matchrules.py (SignalMatchTree::remove): if the rule
2572         being matched does not have a callback treat it as a wildcard
2573         fix matching logic
2574
2575         * doc/dbus-tutorial.xml: Add Python tutorial
2576
2577 2005-07-14  Colin Walters  <walters@verbum.org>
2578
2579         * bus/driver.c
2580         (bus_driver_handle_get_connection_unix_security_context): New function.
2581         (message_handlers): Add.
2582
2583         * bus/selinux.c (bus_selinux_append_context): New function; appends
2584         security context to message.
2585
2586         * bus/selinux.h: Prototype.
2587
2588         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2589
2590 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2591
2592         * bus/activation.c: clean up all tabs to be 8 spaces 
2593         (bus_activation_activate_service): make sure we clean up
2594         if activation fails
2595
2596         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2597         (check_shell_fail_service_auto_start): New function
2598         tests to make sure we get fail properly when trying to auto start a service
2599         with a faulty command line
2600         (check_shell_service_success_auto_start): New function tests to make sure
2601         auto started services get the arguments on the command line
2602
2603         * test/test-shell-service.c: Added service for testing auto-starting with 
2604         command line arguments
2605
2606         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2607         test/data/valid-service-files/debug-shell-echo-success.service.in:
2608         Added service files for testing auto-starting with command line arguments
2609
2610         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2611
2612 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2613
2614         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2615         
2616         * dbus/Makefile.am: added new files to build.
2617
2618         * bus/activation.c (bus_activation_activate_service): support
2619         activation commands with parameters.
2620
2621         * test/shell-test.c: added test program for the shell parsing
2622         code.
2623
2624 2005-07-13  David Zeuthen  <davidz@redhat.com>
2625
2626         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2627         64 bit signed and unsigned parameters
2628
2629 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2630
2631         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2632
2633         * python/service.py (class Name): renamed BusName to make it clearer
2634         what the object is for (a name on the bus)
2635
2636         * python/examples/example-service.py,
2637         python/examples/example-signal-emitter.py: change the Name object to
2638         BusName
2639
2640 2005-07-12  Colin Walters  <walters@verbum.org>
2641
2642         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2643
2644         * tools/dbus-launch.c: Include sys/select.h.
2645
2646 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2647         * python/dbus_bindings.pyx.in: removed
2648
2649         * python/dbus_bindings.pyx: Added.
2650         - Fixed some memleaks (patch from 
2651         Sean Meiners <sean.meiners@linspireinc.com>)
2652         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2653         own pxd file (Pyrex definition)
2654         - Broke out glib dependancies into its own pyx module
2655         
2656         * python/dbus_bindings.pdx: Added.
2657         - Defines C class Connection for exporting to other modules
2658
2659         * python/dbus_glib_bindings.pyx: Added.
2660         - New module to handle lowlevel dbus-glib mainloop integration
2661
2662         * python/glib.py: Added.
2663         - Registers the glib mainloop when you import this module
2664
2665         * python/services.py: Removed (renamed to service.py)
2666         
2667         * python/service.py: Added.
2668         - (class Server): renamed Name
2669
2670         * python/__init__.py: Bump ro version (0,41,0)
2671         -don't import the decorators or service module
2672         by default.  These now reside in the dbus.service namespace
2673
2674         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2675         setup function on creation 
2676
2677         * python/examples/example-service.py,
2678         python/examples/example-signal-emitter.py: update examples
2679
2680         * python/examples/gconf-proxy-service.py,
2681         python/examples/gconf-proxy-service2.py: TODO fix these up
2682
2683         * doc/TODO: Addition
2684         - Added a Python Bindings 1.0 section
2685         - added "Add match on args or match on details to match rules"
2686
2687
2688 2005-07-12  Colin Walters  <walters@verbum.org>
2689
2690         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2691         (statemachine-glue.h): 
2692         * glib/examples/Makefile.am (example-service-glue.h) 
2693         (example-signal-emitter-glue.h): 
2694         * glib/Makefile.am (dbus-glib-error-switch.h): 
2695         Add libtool --mode=execute so we use the built library instead
2696         of any installed one.
2697
2698 2005-07-11  Colin Walters  <walters@verbum.org>
2699
2700         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2701         (dbus_g_value_types_init): Remove assertion.
2702         (dbus_g_value_get_g_type, dbus_g_value_open)
2703         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2704         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2705         functions related to DBusGValue.  Now we marshal/demarshal
2706         structures as GValueArray.
2707         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2708         structures.
2709         (signature_iter_to_g_type_array): Don't call
2710         signature_iter_to_g_type_struct.
2711         (signature_iter_to_g_type_struct): Delete.
2712         (dbus_gvalue_to_signature): Delete.
2713         (dbus_gvalue_to_signature): New function with same name as other
2714         one; we can convert structures to signatures.
2715         (demarshal_valuearray): New function.
2716         (get_type_demarshaller): Use it.
2717         (demarshal_recurse): Delete.
2718         (marshal_proxy): New function.
2719         (marshal_map): Warn if we can't determine signature from type.
2720         (marshal_collection_ptrarray): Ditto.
2721         (marshal_collection_array): Ditto.
2722         (get_type_marshaller): Use marshal_valuearray.
2723         (marshal_recurse): Delete.
2724         (_dbus_gvalue_test): Add some tests.
2725
2726         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2727         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2728         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2729         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2730         (dbus_g_value_free): Remove prototypes.
2731
2732         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2733         G_TYPE_VALUE_ARRAY.
2734
2735         * glib/examples/example-service.c:
2736         * glib/examples/example-client.c: Implement GetTuple.
2737
2738         * test/glib/test-dbus-glib.c:
2739         * test/glib/test-service-glib.c:
2740         * test/glib/test-service-glib.xml: Add structure tests.
2741
2742 2005-07-10  Colin Walters  <walters@verbum.org>
2743
2744         * doc/TODO: Knock off some GLib items with this patch.
2745
2746         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2747         (_dbus_gvalue_signals_error): New functions.
2748
2749         * glib/dbus-gvalue-utils.h: Prototype them.
2750
2751         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2752         and change to not output const/retval flags for input args.  All
2753         callers updated.
2754         (invoke_object_method): Refactor to handle return values.  Add
2755         some more comments in various places.  Remove debug g_print.
2756
2757         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2758
2759         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2760         Handle G_TYPE_NONE.
2761         (compute_gsignature): New function; refactored from code from
2762         compute_marshaller and compute_marshaller_name.  Enhance to
2763         handle return values and async ops more cleanly.  Update for
2764         async ops returning NONE instead of BOOLEAN.
2765         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2766         and output appropriate string.
2767         (generate_glue): Handle return value annotation.  Also don't dump
2768         constness flag for input arguments.
2769
2770         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2771         files shared between installed library and utilities.
2772         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2773         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2774         binding tool can access gtype utility functions.
2775
2776         * test/glib/test-service-glib.c: 
2777         * test/glib/test-service-glib.xml: 
2778         * test/glib/test-dbus-glib.c: Add some tests for return values.
2779
2780 2005-07-09  Colin Walters  <walters@verbum.org>
2781
2782         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2783         argument if available, not method.
2784
2785         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2786         (invoke_object_method): First, remove some redundant
2787         GValues (object_value, error_value) in favor of working on
2788         array directly.  Second, rework constness to be less buggy.
2789         Now we iterate directly over the argument metadata instead
2790         of parallel iterating over output signature and metadata.
2791
2792         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2793
2794         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2795         annotation on input args.
2796         
2797 2005-07-09  Colin Walters  <walters@verbum.org>
2798
2799         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2800         Define.
2801
2802         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2803         annotation.
2804
2805         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2806         (method_dir_signature_from_object_info): Handle arg_iterate change.
2807         (write_interface): Ditto.
2808         (lookup_object_info): Don't barf if format_version is > 0.
2809         (invoke_object_method): Handle arg constness.
2810
2811         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2812         (arg_info_new): Create.
2813         (arg_info_unref): Destroy.
2814         (arg_info_get_annotations, arg_info_get_annotation) 
2815         (arg_info_add_annotation): New functions.
2816
2817         * glib/dbus-gidl.h: Prototype them.
2818
2819         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2820         args, disallow them in properties.
2821         (parse_annotation): Handle arg annotations.
2822
2823         * test/glib/test-service-glib.xml: 
2824         * test/glib/test-service-glib.c: Update to make some methods
2825         const.
2826
2827 2005-07-08  Colin Walters  <walters@verbum.org>
2828
2829         * test/glib/test-service-glib.xml: 
2830         * test/glib/test-service-glib.c:
2831         * test/glib/test-dbus-glib.c: Test a{sv}.
2832
2833         * glib/examples/statemachine/statemachine.c:
2834         * glib/examples/statemachine/statemachine-server.c:
2835         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2836         add progress bar, etc.
2837
2838         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2839         needed anymore due to generic array/map marshalling.
2840         (dbus_g_value_types_init): Don't register basic arrays or the
2841         string/string hash.
2842         (dbus_gtype_from_signature_iter): Don't try to recurse into
2843         variants.
2844         (dbus_gtype_to_signature): Check collection/map before type
2845         metadata.
2846         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2847         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2848         generic map creation/append functions instead of hash table
2849         specifically.
2850         (get_type_demarshaller): Handle maps.
2851         (demarshal_collection): Dispatch on collection type to either
2852         demarshal_collection_ptrarray or demarshal_collection_array.
2853         (get_type_marshaller): Handle maps.
2854         (marshal_collection): Dispatch collection type to either
2855         marshal_collection_ptrarray or marshal_collection_array.
2856         (_dbus_gvalue_test): New test.
2857
2858         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2859         (hash_free_from_gtype): Use it to free GValues.
2860         (hashtable_append): New function.
2861         (ptrarray_append): Fix prototype.
2862         (slist_append): Ditto.
2863         (_dbus_gvalue_utils_test): Extend tests.
2864
2865         * glib/dbus-gtype-specialized.c
2866         (dbus_g_type_specialized_init_append): Renamed from
2867         dbus_g_type_specialized_collection_init_append.  Remove const from
2868         value, since we steal it.
2869         (dbus_g_type_specialized_map_append): New function.
2870
2871         * glib/dbus-gtype-specialized.h: Update prototypes.
2872         Add DBusGTypeSpecializedMapAppendFunc.
2873
2874         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2875         _dbus_gvalue_test.
2876         
2877         * glib/dbus-gtest.h: Prototype it.
2878
2879 2005-07-08  Ross Burton  <ross@openedhand.com>
2880
2881         * dbus/dbus-glib.h:
2882         Add DBysGAsyncData for the async bindings.
2883
2884         * glib/dbus-binding-tool-glib.c:
2885         Re-enable the async bindings.
2886
2887         * test/glib/test-dbus-glib.c:
2888         Add a test for the generated async bindings.
2889
2890 2005-07-08  Colin Walters  <walters@verbum.org>
2891
2892         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2893         connection concept.
2894         
2895 2005-07-08  Colin Walters  <walters@verbum.org>
2896         
2897         * tools/Makefile.am: Kill of print-introspect in favor of using
2898         dbus-send --print-reply=literal.
2899
2900         * test/glib/test-service-glib.xml: 
2901         * test/glib/test-service-glib.c (my_object_get_objs): New test
2902         for "ao".
2903
2904         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2905         (main): Test GetObjs.
2906
2907         * glib/examples/statemachine/Makefile.am:
2908         * glib/examples/statemachine/sm-marshal.list:
2909         * glib/examples/statemachine/statemachine-client.c:
2910         * glib/examples/statemachine/statemachine-server.c:
2911         * glib/examples/statemachine/statemachine-server.xml:
2912         * glib/examples/statemachine/statemachine.c:
2913         * glib/examples/statemachine/statemachine.h:
2914         * glib/examples/statemachine/statemachine.xml:
2915
2916         New example.
2917
2918         * glib/examples/example-service.c (main): Move invocation
2919         of dbus_g_object_type_install_info earlier, to emphasize it
2920         should only be done once.
2921
2922         * glib/examples/example-signal-emitter.c (main): Ditto.
2923
2924         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2925
2926         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2927         (dbus_gvalue_marshal): Update prototypes.
2928
2929         * glib/dbus-gvalue.c: Update all marshalling functions to take
2930         const GValue instead of GValue.
2931         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2932         types.
2933         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2934         change.
2935         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2936         Return a newly-allocated string.
2937         (demarshal_proxy, demarshal_object_path, demarshal_object)
2938         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2939         we get the wrong types from message.
2940         (get_type_demarshaller): New function, extracted from
2941         dbus_gvalue_demarshal.
2942         (demarshal_collection): New function, demarshals generic
2943         collection.
2944         (dbus_gvalue_demarshal): Just invoke result of
2945         get_type_demarshaller.  Throw error if we don't have one.
2946         (marshal_garray_basic): Abort on OOM.
2947         (get_type_marshaller): New function, extracted from
2948         dbus_gvalue_marshal.
2949         (collection_marshal_iterator, marshal_collection): New functions;
2950         implements generic marshalling for an iteratable specialized
2951         collection.
2952         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2953
2954         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2955         G_TYPE_STRING.
2956         (ptrarray_value_from_gvalue): Ditto.
2957         (ptrarray_append, ptrarray_free): New functions.
2958         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2959         (slist_append, slist_end_append, slist_free): New functions.
2960         (dbus_g_type_specialized_builtins_init): Add append fuctions
2961         for GPtrArray and GSList.  Register GSList.
2962         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2963
2964         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2965         New.
2966         (dbus_g_type_specialized_collection_init_append)
2967         (dbus_g_type_specialized_collection_append)
2968         (dbus_g_type_specialized_collection_end_append): Prototype.
2969         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2970         end_append_func.
2971
2972         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2973         (dbus_g_type_specialized_collection_append) 
2974         (dbus_g_type_specialized_collection_end_append): New functions.
2975         (dbus_g_type_map_value_iterate): Take const GValue.
2976         (dbus_g_type_collection_value_iterate): Ditto.
2977
2978         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2979         _dbus_gvalue_utils_test.
2980         
2981         * glib/dbus-gtest.h: Prototype it.
2982
2983         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2984         using uninitialized owner_list.
2985         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2986         public API.
2987         (dbus_g_proxy_end_call_internal): Update to use error set
2988         from dbus_gvalue_demarshal instead of setting it here.
2989         (dbus_g_proxy_begin_call): Move return_if_fail here.
2990
2991         * glib/dbus-gobject.c (write_interface): Update for
2992         dbus_gtype_to_signature returning new string.
2993
2994         * configure.in: Add glib/examples/statemachine.
2995
2996 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2997
2998         * configure.in: Add a configure option, --with-console-auth-dir
2999         
3000         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3001         new setting.  Patch from Kay Sievers.
3002
3003 2005-07-06  Colin Walters  <walters@verbum.org>
3004
3005         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3006         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3007         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3008         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3009         Delete in favor of dbus_g_proxy_begin_call and
3010         dbus_g_proxy_cancel_call.
3011         (DBusGProxyCall, DBusGProxyCallNotify): New.
3012         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3013         data, and destroy function.  This replaces
3014         dbus_g_pending_call_set_notify.
3015         (dbus_g_proxy_cancel_call): Prototype.
3016         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3017
3018         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3019         pending_calls map.
3020         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3021         internal proxy for calls to the bus. Remove
3022         pending_nameowner_calls, now the internal proxy keeps track.
3023         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3024         pending_nameowner_calls.
3025         (got_name_owner_cb): Update prototype, and use
3026         dbus_g_proxy_end_call.
3027         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3028         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3029         favor of using internal proxy.
3030         (dbus_g_proxy_manager_unregister): Update to use
3031         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3032         (dbus_g_proxy_init): Initialize pending calls map.
3033         (dbus_g_proxy_constructor): New.
3034         (dbus_g_proxy_class_init): Add get/set property functions,
3035         constructor, and add NAME, PATH, and INTERFACE properties.
3036         (cancel_pending_call): New function.
3037         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3038         cancel them.
3039         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3040         (GPendingNotifyClosure): New structure.
3041         (d_pending_call_notify, d_pending_call_free): Moved here from
3042         dbus-glib.c.
3043         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3044         ordering.
3045         (manager_begin_bus_call): New internal function for talking to
3046         internal bus proxy.
3047         (dbus_g_proxy_new): Construct object using GObjet properties.
3048         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3049         Create closure of same, and insert call into map of pending calls.
3050         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3051         call.  Look up pending call in current set.  Remove it when we've
3052         completed.
3053         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3054         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3055         and destroy function directly.
3056         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3057         (dbus_g_proxy_call): Invoke with NULL callback.
3058         (dbus_g_proxy_cancel_call): New function, replaces
3059         dbus_g_pending_call_cancel.
3060
3061         * glib/dbus-gparser.c (validate_signature): Fix call to
3062         dbus_set_g_error.
3063
3064         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3065         New quark for attaching metadata to GType.
3066         (info_hash): Delete.
3067         (lookup_object_info): Look up using quark.
3068         (dbus_g_object_type_install_info): Check that a type is classed,
3069         not that it's an object.  Also just install type data using quark
3070         instead of using global hash.
3071
3072         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3073         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3074         (GPendingNotifyClosure): Delete.
3075         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3076         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3077
3078         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3079         client method generation until we can fix it...
3080         
3081         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3082         (load_from_service_thread_func): Ditto.
3083
3084         * tools/dbus-names-model.c (struct NamesModel): Hold
3085         DBusGProxyCall.
3086         (have_names_notify): Update prototype, use
3087         dbus_g_proxy_cancel_call.
3088         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3089
3090         * tools/dbus-monitor.c (filter_func): Update for print_message
3091         API change.
3092
3093         * test/glib/test-dbus-glib.c: Add more tests for async
3094         invocations.  Update many begin_call/end_call pairs to just use
3095         dbus_g_proxy_call.
3096
3097         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3098         allows us to dump print-introspect.c.
3099
3100         * tools/dbus-print-message.h (print_message): Add literal argument
3101         to print_message which is intended to allow printing arguments without
3102         metadata like "string=".
3103
3104         * tools/dbus-print-message.c (print_iter): Add literal argument.
3105         (print_message): Allow printing string messages literally.
3106
3107 2005-07-05  Colin Walters  <walters@verbum.org>
3108
3109         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3110         Remove value refcount leak, original patch from Jorn Baayen
3111         <jorn@openedhand.com>.  Also remove useless extra value in favor
3112         of prepending to value array directly.
3113
3114 2005-07-02  Colin Walters  <walters@verbum.org>
3115
3116         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3117
3118 2005-07-01  Colin Walters  <walters@verbum.org>
3119
3120         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3121         
3122         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3123         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3124         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3125         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3126
3127 2005-06-30  Colin Walters  <walters@verbum.org>
3128
3129         * test/glib/test-dbus-glib.c:
3130         * test/glib/test-service-glib.c:
3131         * test/glib/test-service-glib.xml: Update tests for new error
3132         setting bits, also add async tests (patch from Ross Burton).
3133
3134         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3135         DBUS_GLIB_THREADS_LIBS.
3136
3137         * glib/dbus-gproxy.c (get_name_owner)
3138         (dbus_g_pending_call_end_valist): Ditto.
3139
3140         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3141         domain (GQuark) to DBusGErrorInfo.  
3142         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3143         quark in error_metadata.  Take message interface as default
3144         error message interface.
3145         (gerror_to_dbus_error_message): Pass message interface.
3146         (dbus_set_g_error): Resurrected.
3147         (dbus_g_error_info_free): New function.
3148         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3149         of _peek to actually create the object class if it hasn't been
3150         created yet.
3151         (dbus_g_error_domain_register): New function.
3152
3153         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3154
3155         * glib/dbus-gparser.c (validate_signature): Ditto.
3156
3157         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3158         (dbus_g_error_domain_register): Prototype.
3159
3160         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3161         Update tests.
3162
3163 2005-06-29  Colin Walters  <walters@verbum.org>
3164
3165         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3166         DBUS_TYPE_G_OBJECT_PATH.
3167
3168         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3169         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3170         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3171         (dbus_g_object_path_get_g_type): New function.
3172         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3173         to DBUS_TYPE_G_OBJECT_PATH by default.
3174         (demarshal_proxy): Remove unused name variable.
3175         (demarshal_object_path, marshal_object_path): New functions.
3176         (demarshal_proxy_array, marshal_proxy_array): Delete.
3177         
3178         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3179         DBUS_TYPE_G_OBJECT_PATH to char *.
3180         (dbus_g_type_get_lookup_function): Map builtin
3181         DBUS_TYPE_G_OBJECT_PATH.
3182
3183         * test/glib/test-dbus-glib.c
3184         * test/glib/test-service-glib.c (my_object_objpath): 
3185         Adapt tests to new object path marshalling.
3186
3187 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3188
3189         * configure.in: force check for Python >= 2.4
3190
3191 2005-06-29  Colin Walters  <walters@verbum.org>
3192         
3193         Patch from Ross Burton <ross@openedhand.com>
3194         
3195         * glib/dbus-gobject.c (invoke_object_method): Unset object
3196         value in all cases, not only in async case.
3197
3198 2005-06-29  Colin Walters  <walters@verbum.org>
3199
3200         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3201         name_call for keeping track of any outgoing GetNameOwner call.
3202         Also add for_owner and associated.
3203         (struct _DBusGProxyManager): Add owner_names, which is hash table
3204         that maps a base name to a list of names it owns (that we're
3205         interested in).  Add pending_nameowner_calls which is a list of
3206         all outstanding GetNameOwner; avoids us having to iterate over
3207         every proxy.  Add unassociated_proxies which keeps track of name
3208         proxies with no associated name owner.
3209         (dbus_g_proxy_manager_unref): Destroy owner_names.
3210         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3211         name refcounts.
3212         (find_name_in_info, name_owner_foreach)
3213         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3214         (dbus_g_proxy_manager_monitor_name_owner)
3215         (dbus_g_proxy_manager_unmonitor_name_owner)
3216         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3217         New functions; they manipulate the owner_names mapping.
3218         (got_name_owner_cb): New function.
3219         (get_name_owner): New function, extracted from
3220         dbus_g_proxy_new_for_name_owner.
3221         (dbus_g_proxy_manager_register): For now we need to keep track of
3222         all NameOwnerChanged.  Also if the proxy is for a name, if we
3223         don't already know the name owner, queue a new GetNameOwner
3224         request and add it to our list of unassociated proxies.  Otherwise
3225         inc the refcount.
3226         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3227         cancel any pending GetNameOwner call, etc.
3228         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3229         the owner_names mapping to look up the current names for the
3230         signal source, and dispatch to any proxies for that name.
3231         (dbus_g_proxy_new): Initialize new members.
3232         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3233         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3234         (dbus_g_pending_call_end_valist): New function, extracted from
3235         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3236         but want to use the GLib infrastructure.  Also note how many
3237         arguments in reply were over.
3238         (dbus_g_pending_call_end): New function, just call
3239         dbus_g_pending_call_end_valist.
3240         (dbus_g_proxy_end_call_internal): Just call
3241         dbus_g_pending_call_end_valist.
3242
3243         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3244         of builtin marshaller for STRING_STRING_STRING.
3245
3246         * test/glib/test-dbus-glib.c: 
3247         * test/glib/test-service-glib.c:
3248         * test/glib/test-service-glib.xml:
3249         Extend tests to cover name proxies, destruction of owner proxies,
3250         etc.
3251         
3252         * glib/examples/example-signal-recipient.c
3253         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3254         
3255         * tools/dbus-send.c (main): Print D-BUS error name in addition
3256         to message.
3257
3258 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3259
3260         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3261         cmessage_function_handler): Patch from 
3262         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3263         by using the Py_GILState_Ensure/Release to synchronize with the
3264         python runtime.
3265         
3266 2005-06-28  Ray Strode  <rstrode@redhat.com>
3267
3268         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3269         babysitter helper process on last unref, bug #2813.
3270
3271 2005-06-27  Colin Walters  <walters@verbum.org>
3272
3273         * test/glib/test-dbus-glib.c: 
3274         * test/glib/test-service-glib.c:
3275         * test/glib/test-service-glib.xml:
3276         Test hash table signal emitting.
3277
3278         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3279         types to their fundamental basis types, since this is what
3280         marshallers operate on.  Also add an entry for VOID__BOXED.
3281         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3282
3283 2005-06-26  Havoc Pennington  <hp@redhat.com>
3284
3285         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3286         from Don Park
3287
3288 2005-06-26  Colin Walters  <walters@verbum.org>
3289
3290         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3291         (dbus_g_error_set): New public function from its ashes; used by
3292         both service-side method implementation and GLib bindings
3293         internals.
3294         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3295         (_dbus_glib_test): Add some tests.
3296
3297         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3298
3299         * test/glib/test-service-glib.c (my_object_throw_error): Use
3300         dbus_g_error_set.
3301
3302         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3303         errors thrown by dbus_g_error_set.
3304
3305         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3306
3307         * glib/dbus-gparser.c (validate_signature): Ditto.
3308
3309         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3310         (dbus_g_proxy_end_call_internal): Ditto.
3311
3312         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3313         converts DBUS_ERROR_x to DBUS_GERROR_x.
3314         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3315
3316         * doc/TODO: Remove error TODO.
3317
3318         * doc/dbus-tutorial.xml: Update with documentation about error
3319         handling.
3320
3321         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3322         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3323         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3324
3325 2005-06-22  Colin Walters  <walters@verbum.org>
3326         
3327         Patch from Ross Burton <ross@openedhand.com>
3328
3329         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3330
3331 2005-06-20  Colin Walters  <walters@verbum.org>
3332
3333         * configure.in: Add glib/examples.
3334
3335         * glib/Makefile.am: Add examples/
3336
3337         * glib/examples/.cvsignore
3338         * glib/examples/Makefile.am
3339         * glib/examples/example-client.c
3340         * glib/examples/example-service.c
3341         * glib/examples/example-service.xml
3342         * glib/examples/example-signal-emitter.c
3343         * glib/examples/example-signal-emitter.xml
3344         * glib/examples/example-signal-recipient.c:
3345         New files; GLib binding examples, ported from
3346         python/examples.
3347
3348 2005-06-20  Colin Walters  <walters@verbum.org>
3349
3350         * dbus/dbus-glib.h: 
3351         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3352         dbus_g_proxy_call.
3353
3354         * glib/dbus-binding-tool-glib.c: 
3355         * doc/dbus-tutorial.xml: 
3356         * test/glib/test-dbus-glib.c: Update for rename.
3357         
3358 2005-06-20  Colin Walters  <walters@verbum.org>
3359
3360         Patch suggested by Ross Burton <ross@openedhand.com>
3361
3362         * glib/dbus-gobject.c (export_signals): Free signal name.
3363         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3364         memory leak.  Add a bit of documentation.
3365         (dbus_g_method_return_error): Free context, and note we do
3366         so.
3367
3368 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3369
3370         * dbus/dbus-glib.h:
3371         * glib/dbus-gobject.c:
3372         * glib/dbus-gproxy.c:
3373         * glib/dbus-gvalue.c: Predeclare structs as 
3374         typedef struct _Something Something instead of 
3375         typedef struct Something Something, so we can 
3376         redeclare the prototypes. Other GNOME libraries 
3377         do this already.
3378
3379 2005-06-17  Colin Walters  <walters@verbum.org>
3380
3381         * tools/dbus-names-model.c (have_names_notify): Fix call
3382         to dbus_g_proxy_end_call.
3383         
3384 2005-06-17  Colin Walters  <walters@verbum.org>
3385
3386         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3387         spew warnings if we get malformed remote signals.
3388
3389         * glib/dbus-gobject.c (propsig_iterate): New function.
3390         (lookup_object_info): New function, extracted from
3391         lookup_object_and_method.
3392         (introspect_properties, introspect_signals): Delete; these
3393         are merged into write_interface.
3394         (write_interface): Write out signals and properties here;
3395         dump the org.gtk.object stuff and use the interface given
3396         in the introspection data blob.  Also fix up property XML.
3397         (lookup_values): New function.
3398         (introspect_interfaces): Gather a mapping from interface to a
3399         list of its methods, signals, and properties, then write out
3400         each interface.
3401         (lookup_object_and_method): Use lookup_object_info.
3402         (struct DBusGSignalClosure): Add interface.
3403         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3404         we can just use the constant data.
3405         (dbus_g_signal_closure_finalize): Don't free signal name.
3406         (signal_emitter_marshaller): Use interface from signal closure.
3407         (export_signals): Only export signals mentioned in introspection
3408         blob.
3409         (dbus_g_connection_register_g_object): Warn if we have no
3410         introspection data for an object.
3411         (funcsig_equal): Remove unused variable.
3412         (dbus_g_object_register_marshaller): Take varargs instead of
3413         list.
3414         (dbus_g_object_register_marshaller_array): New function,
3415         extracted from old dbus_g_object_register_marshaller.
3416
3417         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3418         signals and property data.
3419         (write_quoted_string): New function, extracted from generate_glue.
3420         (generate_glue): Write signals and properties to introspection
3421         blob.
3422
3423         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3424         exported_signals and exported_properties.
3425         (dbus_g_object_register_marshaller): Update prototype.
3426         (dbus_g_object_register_marshaller_array): Prototype.
3427         
3428         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3429
3430         * test/glib/test-service-glib.c: Add new test signals and method
3431         to emit them.
3432
3433         * test/glib/test-service-glib.xml: Add some test signals.
3434
3435         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3436         and my-object-marshal.h
3437         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3438         my-object-marshal.c.
3439         (my-object-marshal.c, my-object-marshal.h): Implement.
3440
3441         * test/glib/.cvsignore: Update.
3442
3443         * doc/TODO: Remove two GLib TODO items fixed by this
3444         patch.
3445
3446 2005-06-16  Colin Walters  <walters@verbum.org>
3447
3448         * doc/TODO: Update for GLib bindings.
3449         
3450 2005-06-16  Colin Walters  <walters@verbum.org>
3451
3452         * glib/dbus-binding-tool-glib.c:
3453         * glib/dbus-gobject.c:
3454         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3455         from Ross Burton, for his GLib bindings work.
3456
3457 2005-06-16  Colin Walters  <walters@verbum.org>
3458
3459         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3460         to iterate instead of walking to G_TYPE_INVALID.
3461
3462         Patch based on a patch from Ryan Gammon.
3463
3464 2005-06-16  Colin Walters  <walters@verbum.org>
3465
3466         * bus/bus.c (bus_context_new): Set parser to NULL
3467         after we unref it (Patch from Chris Boscolo, #2174).
3468         
3469 2005-06-16  Colin Walters  <walters@verbum.org>
3470
3471         * python/dbus_bindings.pyx.in: Import size_t,
3472         __int64_t, __uint64_t, and __signed.
3473
3474         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3475         Define cmsg struct, output it.
3476         (_dbus_read_credentials_unix_socket):
3477         Use cmsg struct.
3478         
3479         Patch from Joe Markus Clarke for FreeBSD support.
3480         
3481 2005-06-16  Colin Walters  <walters@verbum.org>
3482
3483         * tools/dbus-send.c (append_array): Use strtok.
3484         (append_dict): New function.
3485         (type_from_name): New function, extracted from main.
3486         (main): Handle sending dicts.
3487
3488         * tools/dbus-print-message.c (print_iter): Print dict
3489         entries.
3490         
3491 2005-06-16  Colin Walters  <walters@verbum.org>
3492
3493         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3494         values as the empty string (#2948).
3495         
3496 2005-06-16  Colin Walters  <walters@verbum.org>
3497
3498         * dbus/Makefile.am:
3499         * mono/doc/Makefile.am:
3500         * test/glib/Makefile.am:
3501
3502         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3503
3504 2005-06-16  Colin Walters  <walters@verbum.org>
3505
3506         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3507         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3508
3509         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3510         Increment pointer after swapping fixed array.  Add assertion
3511         for array length.
3512                 
3513 2005-06-15  Colin Walters  <walters@verbum.org>
3514
3515         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3516         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3517         
3518 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3519
3520         * NEWS: Update to 0.34
3521
3522 2005-06-15  David Zeuthen  <davidz@redhat.com>
3523
3524         * configure.in (LT_CURRENT): Revert back to 1 as the library
3525         hasn't changed and we've certainly not committed to protocol
3526         stability yet.  All this does is to break ABI. See commit note
3527         from hp@redhat.com 2005-05-05 for details.
3528         
3529 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3530
3531         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3532         (_dbus_connection_run_builtin_filters): New method
3533         (dbus_connection_dispatch): Run the builtin filters which in turn
3534         runs the peer filter which handles Ping messages.
3535
3536         * doc/TODO: 
3537          - Ping isn't handled: This patch fixes it
3538          
3539          - Add a test case for the Ping message: added TODO item
3540
3541 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3542
3543         * dbus/dbus-message.c:
3544         (dbus_message_has_path): New method
3545         (dbus_message_has_interface): New method
3546         (dbus_message_has_member): New method
3547
3548         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3549         New method
3550
3551         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3552         the keyring directory is private to the user
3553
3554         * doc/TODO:
3555          - The convenience functions in dbus-bus.h should perhaps have
3556          the signatures that they would have if they were autogenerated
3557          stubs. e.g. the acquire service function. We should also evaluate
3558          which of these functions to include, in light of the fact that
3559          GLib/Qt native stubs will probably also exist.: Punted
3560
3561          - add dbus_message_has_path(), maybe has_member/interface:
3562          fixed in this patch
3563
3564          - in dbus-keyring.c, enforce that the keyring dir is not
3565          world readable/writable: Fixed in this patch
3566
3567 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3568
3569         * dbus/dbus-marshal-validate.h: Added a new validation
3570         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3571         out of memory errors when validating signitures
3572
3573         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3574         in places where we previously used DBUS_VALID and a FALSE return 
3575         value to indicate OOM
3576         
3577         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3578         Use a stack to track the number of elements inside containers.  The 
3579         stack values are then used to validate that dict entries have only two
3580         elements within them.
3581         (validate_body_helper): check the reason for failure when validating
3582         varients
3583         
3584         * dbus/dbus-message.c (load_message): use 
3585         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3586         DBUS_VALID and a FALSE return value to indicate OOM
3587
3588         * doc/TODO: remove "- validate dict entry number of fields" as this
3589         patch fixes it
3590
3591 2005-06-14  David Zeuthen  <davidz@redhat.com>
3592
3593         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3594         watches (if applicable) and add new watches
3595
3596         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3597         (main): Setup SIGIO signal handler if using D_NOTIFY
3598
3599         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3600
3601         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3602         (merge_included): Also merge conf_dirs list
3603         (bus_config_parser_unref): Clear conf_dirs list
3604         (include_dir): Add directory to conf_dirs list
3605         (bus_config_parser_get_conf_dirs): New function
3606
3607         * bus/dir-watch.[ch]: New files
3608
3609         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3610
3611         * configure.in: Add checks for D_NOTIFY on Linux
3612
3613 2005-06-14  Colin Walters  <walters@verbum.org>
3614
3615         * glib/dbus-binding-tool-glib.c:
3616         * glib/dbus-gobject.c:
3617         * glib/dbus-gvalue.c: Fix indentation and brace style.
3618         
3619 2005-06-14  Ross Burton <ross@openedhand.com>.
3620
3621         * glib/dbus-glib.h: Make DBusGMethodInvocation
3622         a private structure.  Rearrange prototypes a bit.
3623         
3624         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3625         documentation for first_arg_type.
3626         
3627         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3628         here, add documentation.  Move dbus_g_method_return
3629         and dbus_g_method_return_error into public API
3630         section.
3631
3632 2005-06-14  Colin Walters  <walters@verbum.org>
3633
3634         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3635         Add missing return statements, noticed by Ross Burton.
3636         
3637 2005-06-13  Ross Burton <ross@openedhand.com>.
3638
3639         * glib/dbus-gobject.c: Handle errors on message
3640         demarshalling by sending error message back.
3641         * glib/dbus-gvalue.c: Initialize return variables.
3642
3643 2005-06-13  Colin Walters  <walters@verbum.org>
3644
3645         * glib/Makefile.am: Fix thinko in last patch.
3646
3647 2005-06-13  Colin Walters  <walters@verbum.org>
3648
3649         * glib/Makefile.am: Move dbus-gtype-specialized.c
3650         and dbus-gtype-specialized.h into a _HEADERS variable,
3651         install them.
3652
3653 2005-06-12  Colin Walters  <walters@verbum.org>
3654
3655         Async signals and various bugfixes and testing by
3656         Ross Burton <ross@openedhand.com>.
3657
3658         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3659         (dbus_gvalue_genmarshal_name_from_type)
3660         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3661         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3662         (dbus_g_value_types_init, dbus_gtype_from_signature)
3663         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3664         (dbus_gtypes_from_arg_signature): New function prototypes.
3665         (dbus_gvalue_demarshal): Take context and error arguments.
3666         (dbus_gvalue_demarshal_variant): New function.
3667         (dbus_gvalue_demarshal_message): New function.
3668         (dbus_gvalue_store): Delete.
3669
3670         * glib/dbus-gvalue.c:
3671
3672         File has been almost entirely rewritten; now we special-case
3673         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3674         hash tables correctly, etc.  Full support for recursive values
3675         is not yet complete.
3676
3677         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3678         argument of signal to G_TYPE_POINTER since we now pass a
3679         structure.
3680         (lookup_g_marshaller): Delete in favor of
3681         _dbus_gobject_lookup_marshaller.
3682         (marshal_dbus_message_to_g_marshaller): Use
3683         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3684         to handle remote signal callbacks.
3685         (dbus_g_proxy_new_from_proxy): New function; creates a new
3686         DBusGProxy by copying an existing one.
3687         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3688         (dbus_g_proxy_get_path): New functions.
3689         (dbus_g_proxy_marshal_args_to_message): New function;
3690         factored out of existing code.
3691         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3692         from a varargs array.
3693         (dbus_g_proxy_begin_call_internal): New function.
3694         (dbus_g_proxy_end_call_internal): New function.
3695         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3696         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3697         after collecting args into value array.
3698         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3699         invoke dbus_g_proxy_end_call_internal.
3700         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3701         end_call_internal.
3702         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3703         types.
3704         (array_free_all): New function.
3705         (dbus_g_proxy_add_signal): Take GTypes.
3706
3707         * glib/dbus-gobject.h:
3708         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3709         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3710         Prototype.
3711
3712         * glib/dbus-gobject.c: Add a global marshal_table hash which
3713         stores mappings from type signatures to marshallers.  Change lots
3714         of invocations of dbus_gtype_to_dbus_type to
3715         dbus_gtype_to_signature.
3716         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3717         (introspect_signals): Fix test for query.return_type.
3718         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3719         (invoke_object_method): Many changes.  Handle asynchronous
3720         invocations.  Convert arguments with
3721         dbus_gvalue_demarshal_message.  Handle errors.  Use
3722         DBusSignatureIter instead of strlen on args. Handle all arguments
3723         generically.  Special-case variants.
3724         (dbus_g_method_return, dbus_g_method_return_error): New function.
3725         (DBusGSignalClosure): New structure, closes over signal
3726         information.
3727         (dbus_g_signal_closure_new): New function.
3728         (dbus_g_signal_closure_finalize): New function.
3729         (signal_emitter_marshaller): New function; is special marshaller
3730         which emits signals on bus.
3731         (export_signals): New function; introspects object signals and
3732         connects to them.
3733         (dbus_g_object_type_install_info): Take GType instead of
3734         GObjectClass.
3735         (dbus_g_connection_register_g_object): Invoke export_signals.
3736         (dbus_g_connection_lookup_g_object): New function.
3737         (DBusGFuncSignature) New structure; used for mapping type
3738         signatures to marshallers.
3739         (funcsig_hash): New function; hashes DBusGFuncSignature.
3740         (funcsig_equal): New function; compares DBusGFuncSignature.
3741         (_dbus_gobject_lookup_marshaller): New function.
3742         (dbus_g_object_register_marshaller): New function; used to
3743         register a marshaller at runtime for a particular signature.
3744
3745         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3746
3747         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3748         which notes a server method implementation should be
3749         asynchronous.
3750
3751         * glib/dbus-binding-tool-glib.c
3752         (dbus_binding_tool_output_glib_server): Call
3753         dbus_g_value_types_init.
3754         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3755         variants specially.
3756         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3757         of a lookup function.
3758         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3759         (write_untyped_out_args): New method; write output arguments.
3760         (write_formal_declarations_for_direction): Function for
3761         writing prototypes.
3762         (write_formal_parameters_for_direction): Function for
3763         writing implementations.
3764         (write_typed_args_for_direction): Function for writing
3765         arguments prefixed with GTypes.
3766         (write_async_method_client): Write out async version
3767         of method.
3768
3769         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3770         (dbus_g_type_get_marshal_name): Move mapping from GType
3771         to marshal name into here.
3772         (dbus_g_type_get_c_name): Move into here.
3773         (compute_marshaller): Convert signature to type with
3774         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3775         (compute_marshaller_name): Ditto.
3776         (compute_marshaller): Handle async signal annotations.
3777         (gather_marshallers): Return if we don't have a known
3778         prefix.
3779         (generate_glue): Collect introspection blob here, and
3780         write all of the blob at the end.  This allows an object
3781         with multiple interfaces to work.
3782         Mark async methods in introspection blob.
3783
3784         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3785         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3786         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3787
3788         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3789         avoids people accidentally using DBUS_TYPE_* which should
3790         not be necessary anymore.
3791         Do include dbus-gtype-specialized.h, which are utilities
3792         for GLib container types.
3793         Add various #defines for types such as
3794         DBUS_TYPE_G_BOOLEAN_ARRAY.
3795         (DBusGValueIterator, DBusGValue): Define, not fully used
3796         yet.
3797         (dbus_g_value_get_g_type): Type for recursive value.
3798         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3799         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3800         (dbus_g_value_free): Prototypes.
3801         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3802         (dbus_g_proxy_set_interface): Prototype.
3803         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3804         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3805         types.
3806         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3807         Accessors.
3808         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3809         doing async invocations.
3810         (dbus_g_method_return, dbus_g_method_return_error):
3811         Prototypes.
3812         * doc/dbus-tutorial.xml: Update GLib section.
3813         
3814         * tools/dbus-viewer.c (load_child_nodes): Update
3815         for new invocation type of dbus_g_proxy_end_call.
3816         (load_from_service_thread_func): Ditto.
3817
3818         * tools/print-introspect.c (main): Ditto.
3819
3820         * tools/dbus-names-model.c (have_names_notify)
3821         (names_model_reload, names_model_set_connection)
3822         Use GTypes.
3823
3824         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3825         needed since Python bindings use GLib bindings.
3826
3827         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3828         Add --prefix argument.
3829
3830         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3831         unneeded --ignore-unsupported arg.
3832         
3833         * test/glib/test-service-glib.c: 
3834         * test/glib/test-service-glib.xml:
3835         * test/glib/test-dbus-glib.c: Add many more tests.
3836
3837 2005-06-06  David Zeuthen  <davidz@redhat.com>
3838
3839         * doc/TODO: Add item about need to remove deprecated functions.
3840
3841         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3842
3843         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3844         to repair the ABI which was broken with the last commit.
3845
3846 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3847
3848         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3849         (dbus_connection_disconnect): renamed to dbus_connection_close 
3850         for API symmetry with dbus_connection_open
3851         (_dbus_connection_open_internal): 
3852         s/dbus_connection_disconnect/dbus_connection_close
3853
3854         * dbus/dbus-bus.c (dbus_bus_get):
3855         s/dbus_connection_disconnect/dbus_connection_close
3856
3857         * bus/connection.c (bus_connections_unref, 
3858         bus_connections_setup_connection, bus_connections_expire_incomplete):
3859         s/dbus_connection_disconnect/dbus_connection_close
3860
3861         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3862         kill_client_connection_unchecked, check_hello_connection):
3863         s/dbus_connection_disconnect/dbus_connection_close
3864
3865         * bus/bus.c (new_connection_callback):
3866         s/dbus_connection_disconnect/dbus_connection_close
3867
3868         * tools/dbus-send.c (main):
3869         s/dbus_connection_disconnect/dbus_connection_close
3870
3871         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3872         s/dbus_connection_disconnect/dbus_connection_close
3873         
3874         * test/test-service.c (path_message_func, filter_func):
3875         s/dbus_connection_disconnect/dbus_connection_close
3876         
3877         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3878         
3879 2005-05-25  Colin Walters  <walters@verbum.org>
3880
3881         * dbus/dbus-protocol.h: Move various bus service #defines such
3882           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3883           dbus/dbus-shared.h.
3884         * dbus/dbus-shared.h: Various defines moved here.
3885         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3886
3887 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3888
3889         * python/__init__.py: Python bindings deserve a minor version
3890         update.  Upped to (0, 40, 2)
3891
3892 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3893
3894         * python/decorators.py: add explicitly_pass_message decorator
3895         for passing in the dbus message as keyword for edge case signal
3896         handling
3897
3898         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3899         to conform with what dbus expects for match rules
3900         (SignalMatchRule.execute): add the dbus message as a keyword
3901         if the signal handler has requested it
3902
3903         * python/examples/example/signal-recipient.py: added some more
3904         examples on how to hook up to signals
3905
3906 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3907
3908         * python/decorators.py: import dbus_bindings
3909
3910         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3911         SignalMatchNode): new classes that implement wildcard signal
3912         callback matching using a tree lookup. Heavily modified from a
3913         patch sent by Celso Pinto (fd.o bug #3241)
3914
3915         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3916         use new match classes to handle signals.
3917
3918 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3919         
3920         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3921
3922 2005-05-18  Havoc Pennington  <hp@redhat.com>
3923
3924         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3925         gettext. Not really worth requiring yet perhaps, but any
3926         production quality 1.0 would require it so we should go ahead and
3927         get things set up. We do have a couple token calls to
3928         bindtextdomain in the code already.
3929
3930 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3931
3932         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3933         when using recursive g_main_loops
3934
3935         * python/_dbus.py (class Bus): add the ProxyObjectClass
3936         alias for ProxyObject to make it easier for the Twisted 
3937         networking framework to integrate dbus.
3938
3939         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3940         alias for ProxyMethod to make it easier for the Twisted 
3941         networking framework to integrate dbus. 
3942
3943 2005-05-11  Ross Burton  <ross@openedhand.com>
3944
3945         * glib/dbus-glib-tool.c: Add --prefix argument.
3946         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3947         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3948         Add prefix argument.
3949         (generate_glue): Pass prefix argument down.
3950         (dbus_binding_tool_output_glib_server): Pass prefix to
3951         glib-genmarshal.
3952         
3953 2005-05-11  Colin Walters  <walters@verbum.org>
3954
3955         * tools/dbus-send.c (append_array): New function.
3956         (append_arg): Broken out from main.
3957         (main): Add cheesy hack to send arrays and variants.
3958         (usage): Update.
3959         * tools/dbus-print-message.c (print_iter): Broken out
3960         from main.
3961
3962 2005-05-11  Colin Walters  <walters@verbum.org>
3963
3964         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3965         New function, returns signature string for signature iter.
3966         * dbus/dbus-signature.h: Prototype it.
3967         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3968         New function, returns signature string for message iter.
3969         (dbus_message_iter_get_array_len): New function, returns
3970         length of array.
3971         (dbus_message_iter_get_fixed_array): Fix assertion; this
3972         function should be used when the iter is pointing to the
3973         contents of an array
3974         * dbus/dbus-message.h: Prototypes.
3975         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3976         New function; returns length of an array.
3977         * dbus/dbus-marshal-recursive.h: Prototype it.
3978         
3979 2005-05-11  Colin Walters  <walters@verbum.org>
3980
3981         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3982         compilation error.
3983         
3984 2005-05-08  Havoc Pennington  <hp@redhat.com>
3985
3986         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3987         daemon's pid, not the parent's pid, to the file descriptor.
3988         Reported by Taj Morton.
3989
3990 2005-05-05  Havoc Pennington  <hp@redhat.com>
3991
3992         * configure.in (LT_*): add notes on how the libtool versioning
3993         works to save thinking. Increment soname to indicate protocol
3994         breakage (though really the library interface hasn't changed I
3995         guess)
3996
3997         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3998         verify the GUID received from server matches what we were
3999         expecting, if we had an expectation
4000
4001         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4002         (_dbus_auth_get_guid_from_server): new function
4003         (send_begin): parse the OK args
4004
4005         * doc/dbus-specification.xml: add GUID to the auth protocol
4006
4007 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4008
4009         * Fix my name in previous changelog ;)
4010
4011         * python/proxies.py (ProxyObject.__getattr__): add further patch
4012         from Anthony Baxter to throw an AttributeError when python 
4013         __special__ functions are called instead of marshling them over 
4014         the bus (Bug#1685 comment 3).
4015
4016 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4017
4018         * python/Makefile.am: changed to use pyexecdir for the binding
4019         shared libraries (Bug#2494)
4020
4021         * python/exceptions.py: bring exceptions over from the bindings
4022         so they can be used in applications (Bug#2036)
4023         Make all exceptions derive from DBusException
4024
4025         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4026         of classes so that print obj doesn't throw an exception (Bug #1685)
4027
4028 2005-05-03  Ross Burton  <ross@openedhand.com>
4029
4030         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4031         Return if we get an error during registration.  Set up a
4032         weak reference on object to unregister if object is destroyed.
4033         (unregister_gobject): New function.
4034         
4035 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4036
4037         * python/dbus_bindings.pyx.in: 
4038         - added new type classes for hinting to the marashaler what type 
4039         to send over the wire
4040         - added int16 and uint16 marshalers
4041         - Fixed a bug in the type constants that caused int32 to go out
4042         as uint16 over the wire
4043         * python/dbus.py: split up into different files and renamed _dbus.py
4044         * python/__init__.py, python/_util.py, python/decorators.py, 
4045         python/exceptions.py, python/proxies.py, python/services.py,
4046         python/types.py: new files split off from dbus.py
4047         * python/Makefile.am: Add new files, remove dbus.py and 
4048         install all python files to <python module dir>/dbus
4049         * python/examples/*: Added #!/usr/bin/env python to the top of
4050         every example.  Patch provided by Tatavarty Kalyan
4051
4052 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4053
4054         * NEWS: Update to 0.33
4055
4056 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4057
4058         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4059         method for doing async calls
4060         (_pending_call_notification): New C function for handling pendning call
4061         callbacks
4062         (set_notify): New method for setting pending call notification
4063         
4064         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4065         Async capabilities added to remote method calls
4066         (Sender): class removed
4067         (RemoteService): class removed
4068         (ObjectTree): class removed for now
4069         (RemoteObject): Renamed to ProxyObject
4070         (RemoteMethod): Renamed to ProxyMethod
4071         (method): Decorator added for decorating python methods as dbus methods
4072         (signal): Decorator added for decorating python methods as signal emitters
4073         (ObjectType): Metaclass added for generating introspection data and the
4074         method callback vtable
4075         (Interface): Wrapper class added to wrap objects in a dbus interface
4076         (Object): Uses ObjectType as its metaclass and exports Introspect
4077         of the org.freedesktop.DBus.Introspectable interface
4078         (ValidationException, UnknownMethodException): new exceptions
4079
4080         * python/examples/*: Modified to fit with the new bindings
4081
4082 2005-04-23  Havoc Pennington  <hp@redhat.com>
4083
4084         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4085         reported by Tony Houghton
4086
4087         * test/test-service.c (main): test
4088         dbus_connection_get_object_path_data()
4089
4090         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4091         the exact_match
4092         (_dbus_object_tree_get_user_data_unlocked): new function used by
4093         dbus_connection_get_object_path_data()
4094         (do_register): add assertion test for get_user_data_unlocked
4095         (object_tree_test_iteration): more tests
4096
4097         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4098         new function from Dan Reed to let you get the user data from 
4099         dbus_connection_register_object_path()
4100
4101 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4102
4103         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4104         in numerous places that did not account for the NULL terminator
4105         (signature_from_seed): changed the manual string copy loop to 
4106         just use strcpy instead
4107         make check should now pass
4108
4109 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4110
4111         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4112         so that it allows messages that are not signals to pass in 
4113         NULL as the interface.
4114
4115 2005-04-18  David Zeuthen  <davidz@redhat.com>
4116
4117         * glib/dbus-gmain.c (io_handler_destroy_source): 
4118         (timeout_handler_destroy_source, connection_setup_free): 
4119         Also unref the source to avoid memory leaks.
4120
4121 2005-04-13  David Zeuthen  <davidz@redhat.com>
4122
4123         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4124         more reasonable, yet still totally arbitrary, value :-). 
4125
4126 2005-04-13  David Zeuthen  <davidz@redhat.com>
4127
4128         * doc/TODO: Added an "important for 1.0" item about selinux
4129         allow/deny messages
4130
4131 2005-04-13  David Zeuthen  <davidz@redhat.com>
4132
4133         * bus/selinux.c: Add c-file-style to top of file
4134         (log_audit_callback): Don't free the data here anymore
4135         (bus_selinux_check): Don't take spid and tpid since appending
4136         that to auxdata may OOM.
4137         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4138         to the caller if we are OOM by taking an error object.
4139         (bus_selinux_allows_send): -do-
4140
4141         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4142         and bus_selinux_allows_send
4143
4144         * bus/bus.c (bus_context_check_security_policy): Pass error and
4145         pass on OOM thrown by bus_selinux_allows_send()
4146
4147         * bus/services.c (bus_registry_acquire_service): Pass error and
4148         pass on OOM thrown by bus_selinux_allows_acquire_service()
4149
4150 2005-04-13  Havoc Pennington  <hp@redhat.com>
4151
4152         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4153         message at a time to avoid monopolizing the main loop, bug 
4154         #2953 from Benjamin Otte
4155
4156 2005-04-09  Havoc Pennington  <hp@redhat.com>
4157
4158         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4159         possible overlap, fix from Daniel Reed
4160         (fixup_alignment): fix signedness warnings
4161         (_dbus_string_append_unichar): ditto
4162
4163 2005-04-09  Havoc Pennington  <hp@redhat.com>
4164
4165         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4166
4167         * glib/dbus-glib-tool.c (main): fix warning
4168
4169         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4170
4171         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4172         add a new function that can be used in simple applications that
4173         don't have a main loop and are willing to block
4174
4175 2005-04-05  David Zeuthen  <davidz@redhat.com>
4176
4177         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4178
4179         * glib/dbus-gmain.c:
4180         (io_handler_destroy_source): Remove from list of IO handlers
4181         of the ConnectionSetup object
4182         (timeout_handler_destroy_source): -do- for timeout handlers
4183         (io_handler_source_finalized): Don't remove from list since
4184         we now do that in io_handler_destroy_source(). Renamed from
4185         io_handler_source_destroyed
4186         (timeout_handler_source_destroyed): -do- for timeout handlers
4187         (connection_setup_free): It is now safe to iterate over all
4188         IO and timeout handlers as the _destroy_source removes them
4189         from the list synchronously
4190
4191 2005-03-30  Havoc Pennington  <hp@redhat.com>
4192
4193         * configure.in: change check to gtk 2.4
4194
4195         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4196         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4197         to 2.4
4198
4199 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4200
4201         * News: Update 0.32
4202
4203         * HACKING: Fixed realease instructions.  configure.in should be updated to
4204           the next release by the person who made the last release.
4205
4206 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4207
4208         * python/lvalue_cast_post_process.py - removed.  Patch has been
4209           submitted to Pyrex maintainers that fixes gcc4.0 errors
4210
4211         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4212
4213 2005-03-24  Daniel Reed  <n@ml.org>
4214
4215         * tools/Makefile.am: Make print-introspect and
4216         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4217
4218 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4219
4220         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4221
4222         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4223           had in Red Hat packages for a while but for some reason never 
4224           got merged upstream
4225           (_dbus_is_a_number): New checks if a string
4226           can be converted to a number and does the conversion if it can
4227           (_dbus_user_database_lookup): Add check to see if the given username
4228           is a udi.  This allows udi's to be used instead of usernames in the
4229           config file.
4230           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4231           is a gdi.  This allows gdi's to be used instead of groupnames in the
4232           config file.
4233
4234 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4235
4236         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4237           code so that it compiles with gcc4.0
4238
4239         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4240           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4241           results back to dbus_binding.c
4242
4243 2005-03-20  Colin Walters  <walters@verbum.org>
4244
4245         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4246
4247         * configure.in: Require GTK+ 2.6.
4248         
4249 2005-03-20  Colin Walters  <walters@verbum.org>
4250
4251         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4252
4253 2005-03-17  Tom Parker  <palfrey@tevp.net>
4254
4255         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4256         print DBUS_UID_UNSET; instead print passed username.  Also
4257         be sure to actually use gid looked up in cache.
4258         
4259         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4260         for DBUS_GID_UNSET and groupname.
4261
4262 2005-03-17  Colin Walters  <walters@verbum.org>
4263
4264         * bus/print-introspect.c: Move to tools/.
4265         * bus/run-with-tmp-session-bus.sh: Ditto.
4266         
4267         * glib/Makefile.am (dbus-glib-bindings.h): Move
4268         generation to tools/Makefile.am.
4269
4270         * test/glib/run-test.sh: Update to handle move
4271         of run-with-tmp-session-bus.sh.
4272
4273         * test/glib/test-service-glib.c: Update to handle
4274         move of dbus-glib-bindings.h.
4275
4276         * tools/print-introspect.c: Moved here
4277         from bus/, and ported to GLib bindings.
4278
4279         * tools/run-with-tmp-session-bus.sh: Moved here
4280         from bus/.
4281
4282         * tools/Makefile.am: Generate dbus-glib-bindings.h
4283         and dbus-bus-introspect.xml here.
4284
4285         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4286         Update.
4287
4288 2005-03-17  Colin Walters  <walters@verbum.org>
4289
4290         * bus/driver.c (write_args_for_direction): Use
4291         _dbus_string_get_const_data to retrieve string;
4292         _dbus_string_get_const_data_len doesn't actually return
4293         a NULL-terminated substring.
4294
4295         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4296         (main): Change to use org_freedesktop_DBus_request_name
4297         instead of using g_proxy_begin_call/end_call.
4298
4299 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4300
4301         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4302         generating the finalizer.  Fixes from Ben Maurer.
4303
4304 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4305
4306         * mono/BusDriver.cs: Update method names: ListServices
4307         becomes ListNames; GetOwner becomes GetNameOwner.
4308
4309         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4310         onto the eval stack when removing the delegate.
4311
4312 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4313
4314         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4315         LT_CURRENT.  Set it to the autoconf variable.
4316                                                                                 
4317         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4318         classes that disconnects the signal handler delegate from the
4319         service object.  Fixes a big leak of proxy objects on the
4320         client side of things.  Patch from Ben Maurer
4321         <bmaurer@ximian.com>
4322
4323 2005-03-12  Colin Walters  <walters@verbum.org>
4324
4325         * bus/driver.c (write_args_for_direction): New function,
4326         parses a type signature into arguments and outputs to
4327         XML.
4328         (bus_driver_handle_introspect): Use it instead of
4329         hardcoding XML for certain signatures.
4330         
4331         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4332         dependency on dbus-daemon.
4333
4334         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4335         argument, pass it to dbus_binding_tool_output_glib_client.
4336
4337         * glib/dbus-binding-tool-glib.c
4338         (generate_client_glue): Protect against multiple inclusion.
4339         (dbus_binding_tool_output_glib_client): Add
4340         G_BEGIN_DECLS/G_END_DECLS.
4341
4342         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4343         Change to just take iface prefix directly.
4344         (write_formal_parameters): Clarify error message.
4345         (check_supported_parameters): New function; checks to see type
4346         signatures of method parameters are supported.
4347         (generate_client_glue): Handle ignore_unsupported flag.
4348         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4349         parameter.
4350
4351         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4352         --ignore-unsupported by default until glib bindings
4353         support arrays.
4354
4355 2005-03-11  Colin Walters  <walters@verbum.org>
4356
4357         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4358         install it.
4359
4360         * bus/print-introspect.c: New file; prints introspection
4361         data for a given name and object path.
4362
4363         * bus/run-with-tmp-session-bus.sh: New file, refactored
4364         from test/glib/run-test.sh.  Creates a temporary session
4365         bus and runs another program.
4366
4367         * test/glib/run-test.sh: Refactor to invoke
4368         run-with-tmp-session-bus.sh.
4369
4370         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4371         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4372         macros instead of hardcoding.
4373
4374         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4375
4376 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4377
4378         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4379         this unref; it doesn't match up evenly in some codepaths.
4380         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4381         this evenly matches with the ref near the top of this function.
4382
4383 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4384
4385         * dbus/dbus-object-tree.c
4386         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4387         and we try to unregister a path that's not registered, still go
4388         through the process of unlocking and don't just return.
4389
4390 2005-03-09  Colin Walters  <walters@verbum.org>
4391
4392         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4393         to this are generated for client-side wrappers.  Invokes a
4394         D-BUS method and returns reply values.  
4395
4396         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4397         function; writes signature string for argument direction.
4398         (write_args_for_direction): Change to pass input values directly
4399         instead of via address, and fix indentation.
4400         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4401         make generated wrappers inlineable.
4402
4403         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4404         note about using dbus_type_is_fixed.
4405
4406         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4407         dbus/dbus-signature.c as dbus_type_is_fixed.
4408
4409         All callers updated.
4410
4411         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4412         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4413
4414         * dbus/dbus-signature.h: Prototype.
4415
4416         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4417         error printf code.
4418
4419         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4420         appropriate instead of just freeing it.
4421         (main): Free returned strings using g_free.
4422
4423         * test/glib/Makefile.am (test-service-glib-glue.h)
4424         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4425
4426         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4427         simply maps a simple D-BUS type to GType.
4428         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4429         GType.
4430         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4431         initialize the value with it.
4432         (dbus_gvalue_binding_type_from_type): Unused, delete.
4433         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4434         various types instead of unmarshalling to value data directly.
4435         Remove can_convert boolean.
4436         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4437         returning directly instead of using can_convert boolean.
4438         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4439         Stores a GValue in a pointer to a value of its corresponding C
4440         type.
4441
4442         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4443         add dbus_gvalue_store.
4444
4445 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4446
4447         Fix a bunch of lifecycle and memory management problems
4448         in the mono bindings.
4449
4450         * mono/Arguments.cs (Arguments): Implement IDisposable
4451
4452         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4453         strictly a static class.
4454
4455         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4456         delegates into this file.
4457         (Connection): Implement IDisposable.
4458         (Dispose): Disconnect the connection and set the raw connection
4459         pointer to IntPtr.Zero.
4460         (~Connection): Call Dispose().
4461         (RegisterObjectPath): Added.  Manages the registration of object
4462         paths so we can cleanly disconnect them at dispose/finalize time.
4463         (UnregisterObjectPath): Ditto.
4464         (set_RawConnection): Unregister all of the object paths when
4465         changing the underlying DBusConnection.  Add them back onto the
4466         new connection, if any.
4467
4468         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4469         more unmanaged resources anymore, so it's not necessary.  Move all
4470         the DBusObjectPathVTable stuff out of here.
4471         (Handler): Save references to our delegates so that they don't get
4472         finalized.  Call Connection.RegisterObjectPath() instead of
4473         dbus_connection_register_object_path() directly.
4474         (Message_Called): Dispose the message after we're finished with
4475         it.
4476
4477         * mono/Message.cs (Message): Implement IDisposable.
4478         (Dispose): Dispose the Arguments, and set the RawMessage to
4479         IntPtr.Zero.
4480         (SendWithReplyAndBlock): We own the ref to the reply that comes
4481         back from dbus_connection_send_with_reply_and_block() so add a
4482         comment about that and unref it after we've constructed a managed
4483         MethodReturn class around it.  Fixes a big, big leak.
4484
4485         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4486         method.
4487         (BuildSignalHandler): After we've sent the Signal message, dispose
4488         of it.
4489         (BuildMethod): Dispose of the method call and reply messages after
4490         we've sent the message and extracted the data we want from the
4491         reply.
4492
4493         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4494         anymore.
4495         (Service_FilterCalled): Dispose of the message after we're
4496         finished with it.
4497
4498 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4499
4500         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4501         After we attach our pending call to the connection, unref
4502         it.  Fixes a leak.
4503  
4504         * mono/Connection.cs (set_RawConnection): Disconnect our
4505         filter and match callbacks from the old connection and
4506         reconnect them to the new connection, if any.
4507
4508         * mono/DBusType/Array.cs: "Code" is a static member, so
4509         don't use "this" to refer to it.  Fix for stricter checking
4510         in Mono 1.1.4.
4511  
4512         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4513         object path that we pass into unmanaged code.
4514  
4515         * mono/DBusType/String.cs (Append): Don't leak the string
4516         that we pass into unmanged code.
4517
4518 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4519         * NEWS: Update for 0.31
4520
4521         * configure.in: Release 0.31
4522         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4523
4524         * qt/Makefile.am: fixed build
4525
4526         * dbus/Makefile.am: soname bump for libdbus
4527
4528         * glib/Makefile.am: soname bump for libdbus-glib
4529
4530 2005-03-05  Havoc Pennington  <hp@redhat.com>
4531
4532         * dbus/dbus-sysdeps.c:
4533         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4534         value
4535         (_dbus_generate_random_bytes_buffer): fix return value
4536
4537         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4538         checks actually work, from Tom Parker <fdo@tevp.net>
4539
4540 2005-03-01  Colin Walters  <walters@verbum.org>
4541
4542         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4543         functions copied from dbus-glib-tool.c.
4544         (main): Convert lots of error code to use them.
4545         Also add some testing for introspection bits.
4546
4547 2005-03-01  Colin Walters  <walters@verbum.org>
4548         
4549         * doc/TODO: Remove introspection signature TODO.
4550
4551 2005-02-27  Colin Walters  <walters@verbum.org>
4552
4553         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4554         Change return value to const char * instead of int so we can do
4555         full signatures.
4556         (struct PropertyInfo, struct ArgInfo): Store char *.
4557         (property_info_new, arg_info_new): Update parameters, strdup.
4558         (property_info_unref, arg_info_unref): Free.
4559
4560         * glib/dbus-gidl.h: Update prototypes.
4561
4562         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4563         (validate_signature): New function, just validates signature and
4564         sets GError.
4565         (parse_property, parse_arg): Invoke validate_signature.  Store
4566         signature instead of just type code.
4567
4568         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4569         function to return a primary type for a signature, dropping
4570         information about types in container types.
4571         (dbus_gvalue_genmarshal_name_from_type)
4572         (dbus_gvalue_binding_type_from_type)
4573         (dbus_gvalue_ctype_from_type): Update to take full signature
4574          instead of type code.
4575         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4576
4577         * glib/dbus-gvalue.h: Update prototypes for above.
4578
4579         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4580         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4581         (introspect_properties, introspect_signals, write_interface):
4582         Update to handle signatures, and remove usage of
4583         _dbus_gutils_type_to_string.
4584         (handle_introspect): Print out type codes instead of e.g. "string"
4585         in hardcoded introspection XML; also use x_AS_STRING constants
4586         instead of hardcoding in string.
4587
4588         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4589         to string.  Remove usage of _dbus_gutils_type_to_string.
4590
4591         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4592
4593         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4594         deletion.
4595         
4596         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4597         (compute_marshaller_name, generate_glue): Handle signature change
4598         to string.
4599         (write_formal_parameters, write_args_for_direction): Ditto, and
4600         remove FIXME.
4601
4602         * tools/dbus-tree-view.c (type_to_string): Delete.
4603         (info_set_func_text): Update to print full signatures.
4604
4605         * test/glib/test-service-glib.xml: Change types to new
4606         introspection format.
4607
4608 2005-02-26  Havoc Pennington  <hp@redhat.com>
4609
4610         * doc/TODO: remove the "guid" item
4611
4612         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4613         (with_bus_thread_func): use open_private
4614
4615         * dbus/dbus-connection.c (dbus_connection_open_private): new
4616         function that works like the old dbus_connection_open()
4617         (dbus_connection_open): now returns an existing connection if
4618         possible
4619
4620         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4621         through the GUID to the transport
4622
4623         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4624         GUID in hex-encoded form.
4625
4626         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4627         pass GUID argument in to the transport
4628
4629         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4630         guid argument
4631
4632         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4633
4634         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4635
4636 2005-02-25  Havoc Pennington  <hp@redhat.com>
4637
4638         * doc/dbus-specification.xml: document the GUID thing
4639
4640         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4641         globally unique ID for the server, and put a "guid=hexencoded"
4642         field in the address
4643
4644         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4645
4646         * dbus/dbus-message.c: ditto
4647
4648         * dbus/dbus-dataslot.c: ditto
4649
4650         * dbus/dbus-list.c: ditto
4651
4652         * dbus/dbus-internals.h: wait, just include
4653         dbus-threads-internal.h here
4654         
4655         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4656         use in main library
4657
4658         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4659
4660 2005-02-24  Colin Walters  <walters@verbum.org>
4661
4662         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4663
4664 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4665
4666         * glib/Makefile.am: added dbus-gobject.h to sources list
4667         so distcheck doesn't fail
4668         
4669 2005-02-24  Havoc Pennington  <hp@redhat.com>
4670
4671         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4672         you must disconnect before unref, since locking and other things
4673         are screwed up otherwise. Fix assorted other locking stuff.
4674
4675         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4676         fix compilation
4677
4678         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4679         into a private header and don't export from the library
4680
4681         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4682
4683 2005-02-24  Colin Walters  <walters@verbum.org>
4684         
4685         * dbus/dbus-signature.c: New file; implements various functions
4686         related to type signatures.  Includes an interator for parsing,
4687         validation functions.
4688         (dbus_type_is_basic): Moved here from
4689         dbus-marshal-basic.c:_dbus_type_is_basic.
4690         (dbus_type_is_container): Moved here from
4691         dbus-marshal-basic.c:_dbus_type_is_container.
4692
4693         All callers of _dbus_type_is_container and _dbus_type_is_basic
4694         updated, and include dbus-signature.h.
4695
4696         * dbus/dbus-signature.h: New file; prototypes for the above.
4697
4698         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4699         dbus-signature.h.
4700
4701         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4702         function factored out of _dbus_first_type_in_signature.
4703         (_dbus_first_type_in_signature_c_str): New function; returns first
4704         type code for a type signature character.
4705
4706         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4707         handle function moves.
4708
4709         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4710
4711         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4712         function; skips to next complete type in type signature.
4713         Implemented using previous skip_one_complete_type.  Now
4714         skip_one_complete_type just delegates to
4715         _dbus_type_signature_next.
4716
4717         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4718         to dbus-signature.c
4719         (_dbus_type_is_container): Ditto.
4720
4721         * doc/dbus-specification.xml: Update introspection sample to
4722         use real type signatures.
4723
4724         * dbus/dbus-test.h: Prototype signature test.
4725
4726         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4727         signature tests.
4728
4729         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4730
4731 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4732
4733         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4734         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4735
4736 2005-02-21  Colin Walters  <walters@verbum.org>
4737
4738         * dbus/dbus-test-main.c (main): Take optional specific test
4739         argument.
4740
4741         * dbus/dbus-test.c (run_test): New function, runs a test function
4742         with no data directory.
4743         (run_data_test): Like above, but takes data directory.
4744         (dbus_internal_do_not_use_run_tests): Take
4745         specific test argument.  Replace lots of cut n' paste code
4746         with run_test and run_data_test.
4747
4748         * dbus/dbus-test.h: Update prototype for
4749         dbus_internal_do_not_use_run_tests.
4750
4751 2005-02-20  Havoc Pennington  <hp@redhat.com>
4752
4753         Fix bugs reported by Daniel P. Berrange
4754         
4755         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4756         (protected_change_watch): new function
4757         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4758         (_dbus_server_add_watch): change to work like the
4759         dbus-connection.c equivalents; like those, probably kind of
4760         busted, but should at least mostly work for now
4761         (dbus_server_disconnect): drop the lock if we were already
4762         disconnected, patch from Daniel P. Berrange
4763
4764         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4765         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4766         same stuff
4767
4768         * doc/TODO: todo about unscrewing this mess
4769
4770 2005-02-19  Colin Walters  <walters@verbum.org>
4771
4772         * glib/dbus-binding-tool-glib.c
4773         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4774
4775         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4776         as errno.h and sys/stat.h.
4777         (lose): New function, prints error with
4778         newline and exits.
4779         (lose_gerror): Similar, but takes GError for message.
4780         (main): Add --output argument to specify output file to write to,
4781         instead of always printing to stdout.  In this mode, determine
4782         timestamps on source files to see whether any are newer than the
4783         target file.  If not, exit.  Also convert a number of error
4784         messages to use lose (since it's shorter), and switch to using
4785         g_io_channel_shutdown.
4786
4787 2005-02-19  Havoc Pennington  <hp@redhat.com>
4788
4789         * glib/dbus-gobject.c
4790         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4791
4792         * glib/dbus-glib.c: fix doxygen warnings
4793
4794         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4795         is found on an <arg>
4796
4797 2005-02-17  Colin Walters  <walters@verbum.org>
4798
4799         * glib/dbus-gobject.h: Don't export
4800         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4801         
4802         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4803         (invoke_object_method): Handle it.
4804
4805         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4806         Handle rename.
4807         
4808 2005-02-17  Colin Walters  <walters@verbum.org>
4809
4810         * bus/.cvsignore, doc/.cvsignore
4811         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4812         Update.
4813
4814 2005-02-17  Colin Walters  <walters@verbum.org>
4815         
4816         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4817         Rename to DBUS_SERVICE_DBUS.
4818         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4819         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4820         Change the value from "org.freedesktop.Local"
4821         to "org.freedesktop.DBus.Local".
4822         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4823         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4824         DBUS_INTERFACE_INTROSPECTABLE.
4825         Change the value from "org.freedesktop.Introspectable"
4826         to "org.freedesktop.DBus.Introspectable".
4827         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4828         DBUS_INTERFACE_PROPERTIES.
4829         Change the value from "org.freedesktop.Properties"
4830         to "org.freedesktop.DBus.Properties".
4831         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4832         DBUS_INTERFACE_PEER.
4833         Change the value from "org.freedesktop.Peer"
4834         to "org.freedesktop.DBus.Peer".
4835         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4836         DBUS_INTERFACE_LOCAL.
4837         Change the value from "org.freedesktop.Local"
4838         to "org.freedesktop.DBus.Local".
4839
4840         All other users of those constants have been changed.
4841
4842         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4843
4844         * glib/dbus-gobject.c (handle_introspect): Use constants.
4845
4846         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4847
4848 2005-02-17  Colin Walters  <walters@verbum.org>
4849
4850         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4851         (parse_node, parse_interface, parse_method, parse_signal)
4852         (parse_property, parse_annotation): Lose if we're currently in an
4853         annotation.
4854         (parse_annotation): New function.
4855         (parser_start_element, parser_end_element): Handle annotation.
4856         (parse_method, parse_interface): Remove support for c_name attribute,
4857         switch to annotations.
4858
4859         * glib/dbus-gidl.h (interface_info_get_binding_names)
4860         (method_info_get_binding_names)
4861         (interface_info_get_binding_name, method_info_get_binding_name)
4862         (interface_info_set_binding_name, method_info_set_binding_name):
4863         Remove.
4864         (interface_info_get_annotations, method_info_get_annotations)
4865         (interface_info_get_annotation, method_info_get_annotation)
4866         (interface_info_add_annotation, method_info_add_annotation):
4867         Prototype.
4868
4869         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4870         for "bindings".
4871         (struct MethodInfo): Ditto.
4872         Straightfoward conversion of binding methods into annotation methods
4873         as prototyped.
4874
4875         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4876
4877         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4878
4879         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4880         Use new annotation API.
4881
4882         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4883         annotation element.
4884         
4885         * doc/dbus-specification.xml: Discuss introspection annotations,
4886         include list of well-known annotations.
4887
4888         * test/glib/test-service-glib.xml: Make validate against new DTD.
4889
4890 2005-02-17  Colin Walters  <walters@verbum.org>
4891
4892         This patch is based on initial work from
4893         Paul Kuliniewicz <kuliniew@purdue.edu>.
4894
4895         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4896         initialization of GValue from dbus type to here.
4897         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4898         for the "glib-genmarshal" program from a DBus type.
4899         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4900         into the C name for it we use in the glib bindings.
4901         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4902         glib C type (not GValue).
4903         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4904
4905         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4906         from dbus-gobject.c.
4907
4908         * glib/dbus-gutils.h: Prototype it.
4909
4910         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4911         (marshal_dbus_message_to_g_marshaller): Use new shared function
4912         dbus_glib_marshal_dbus_message_to_gvalue_array.
4913
4914         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4915         Will be changed once we have annotations.
4916
4917         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4918         GStaticRWLock.  Callers updated.
4919         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4920         (string_table_next): New function for iterating over zero-terminated
4921         string value array.
4922         (string_table_lookup): New function; retrieves specific entry in
4923         array.
4924         (get_method_data): New function; look up method data in object data chunk.
4925         (object_error_domain_prefix_from_object_info)
4926         (object_error_code_from_object_info): New functions, but not implemented yet.
4927         (method_interface_from_object_info): New function; retrieve interface name.
4928         (method_name_from_object_info): New function; retrieve method name.
4929         (method_arg_info_from_object_info): New function; retrieve argument data.
4930         (arg_iterate): New function; iterates over serialized argument data.
4931         (method_dir_signature_from_object_info): New function; returns a
4932         GString holding type signature for arguments for just one
4933         direction (input or output).
4934         (method_input_signature_from_object_info)
4935         (method_output_signature_from_object_info): New functions.
4936         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4937         converts dbus message arguments into a GValue array.  Used for both
4938         signal handling and method invocation.
4939         (struct DBusGlibWriteIterfaceData): New utility structure.
4940         (write_interface): New function; generate introspection XML for
4941         an interface.
4942         (introspect_interfaces): New function; gathers all interface->methods,
4943         generates introspection XML for them.
4944         (handle_introspect): Invoke introspect_interfaces.
4945         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4946         (lookup_object_and_method): New function; examines an incoming message
4947         and attempts to match it up (via interface, method name, and argument
4948         signature) with a known object and method.
4949         (gerror_domaincode_to_dbus_error_name): New function; converts a
4950         GError domain and code into a DBus error name.  Needs GError data
4951         added to object introspection to work well.
4952         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4953         GError.
4954         (invoke_object_method): New function to invoke an object method
4955         looked up via lookup_object_and_method.  Parses the incoming
4956         message, turns it into a GValue array, then invokes the marshaller
4957         specified in the DBusGMethodInfo.  Creates a new message with
4958         either return values or error message as appropriate.
4959         (gobject_message_function): Invoke lookup_object_and_method and
4960         invoke_object_method.
4961
4962         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4963         (enum DBusBindingOutputMode): New enum for binding output modes.
4964         (pretty_print): Print binding names.
4965         (dbus_binding_tool_error_quark): GError bits.
4966         (version): Fix typo.
4967         (main): Create GIOChannel for output.  Parse new --mode argument,
4968         possible values are "pretty-print", "glib-server", "glib-client".
4969         Use mode to invoke appropriate function.
4970         
4971         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4972
4973         * glib/dbus-glib-tool.h: New header, just includes GError bits
4974         for now.
4975
4976         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4977         maps binding style to name.
4978         (struct MethodInfo): Ditto.
4979         (get_hash_keys, get_hash_key): Utility function, returns keys for
4980         a GHashTable.
4981         (interface_info_new, method_info_new): Initialize bindings.
4982         (interface_info_unref, method_info_unref): Destroy bindings.
4983         (method_info_get_binding_names, method_info_get_binding_name)
4984         (interface_info_get_binding_names, interface_info_get_binding_name):
4985         Functions for retrieving binding names.
4986         (method_info_set_binding_name, interface_info_set_binding_name):
4987         Functions for setting binding names.
4988
4989         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4990         for glib binding generation.
4991
4992         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4993         and client-side glib glue generation.
4994
4995         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4996         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4997         dbus-glib-tool.h.
4998
4999         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5000         of using GClosureMarshal directly.
5001         (struct DBusGObjectInfo): Add n_infos member.
5002
5003         * test/glib/test-service-glib.xml: New file; contains introspection data
5004         for MyTestObject used in test-service-glib.c.
5005
5006         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5007         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5008         (my_object_uppercase, my_object_many_args): New test methods.
5009         (main): Use dbus_g_object_class_install_info to include generated object
5010         info.
5011
5012         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5013         as well as client-side bindings.
5014
5015         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5016         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5017         using both the dbus_gproxy stuff directly as well as the generated bindings.
5018
5019 2005-02-15  Havoc Pennington  <hp@redhat.com>
5020
5021         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5022         complete a pending call, don't run filters first.
5023
5024         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5025         dbus_pending_call_steal_reply
5026
5027         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5028         _dbus_connection_block_pending_call
5029         (dbus_pending_call_get_reply): change to steal_reply and return a
5030         ref
5031
5032         * dbus/dbus-connection.c
5033         (dbus_connection_send_with_reply_and_block): port to work in terms
5034         of DBusPendingCall
5035         (_dbus_connection_block_pending_call): replace block_for_reply
5036         with this
5037
5038 2005-02-14  Havoc Pennington  <hp@redhat.com>
5039
5040         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5041         properly handle looking up group information by name; fix 
5042         from j@bootlab.org
5043
5044 2005-02-13  Havoc Pennington  <hp@redhat.com>
5045
5046         * dbus/dbus-connection.c (dbus_connection_return_message) 
5047         (dbus_connection_borrow_message): hold dispatch lock while message
5048         is outstanding
5049         (_dbus_connection_block_for_reply): hold dispatch lock while we
5050         block for the reply, so nobody steals our reply
5051         (dbus_connection_pop_message): hold the dispatch lock while we
5052         pluck the message
5053
5054 2005-02-13  Havoc Pennington  <hp@redhat.com>
5055
5056         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5057         (_dbus_connection_release_dispatch)
5058         (_dbus_connection_acquire_io_path)
5059         (_dbus_connection_release_io_path): make the mutex and condvar
5060         control access to the "acquired" flag. Drop the connection lock
5061         while waiting on the condvar. Hopefully these are baby steps in
5062         roughly the right direction.
5063
5064 2005-02-13  Havoc Pennington  <hp@redhat.com>
5065
5066         * dbus/dbus-connection.c: use separate mutexes for the condition
5067         variables; this is some kind of baseline for sanity, but the
5068         condition variables still aren't used correctly afaict
5069
5070 2005-02-13  Havoc Pennington  <hp@redhat.com>
5071
5072         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5073         fix a double-unlock
5074
5075         * dbus/dbus-connection.c
5076         (_dbus_connection_detach_pending_call_unlocked): add this
5077
5078         Initial semi-correct pass through to fix thread locking; there are
5079         still some issues with the condition variable paths I'm pretty
5080         sure
5081         
5082         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5083         lock/unlock calls
5084
5085         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5086         rename to add _unlocked
5087         (struct DBusConnection): move "dispatch_acquired" and
5088         "io_path_acquired" to use only one bit each.
5089         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5090         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5091         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5092         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5093         (_dbus_connection_remove_timeout) 
5094         (_dbus_connection_toggle_timeout): drop lock when calling out to
5095         user functions; done in a hacky/bad way.
5096         (_dbus_connection_send_and_unlock): add a missing unlock
5097         (_dbus_connection_block_for_reply): add a missing unlock
5098
5099         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5100         drop lock in a hacky probably unsafe way to call out to user
5101         function
5102
5103 2005-02-12  Havoc Pennington  <hp@redhat.com>
5104
5105         * tools/dbus-tree-view.c (info_set_func_text): display more
5106         details on args
5107
5108         * bus/driver.c (bus_driver_handle_list_services): list the bus
5109         driver
5110
5111         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5112
5113         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5114         (method_info_get_n_args): new function
5115
5116 2005-02-12  Havoc Pennington  <hp@redhat.com>
5117
5118         * bus/driver.c (bus_driver_handle_introspect): add introspection
5119         for bus driver
5120
5121 2005-02-12  Havoc Pennington  <hp@redhat.com>
5122
5123         * bus/driver.c: put the signature of each bus driver method in the
5124         table of handlers and check it on incoming calls; this isn't
5125         really useful, but going to add introspect support in a minute.
5126
5127 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5128
5129         * mono/Connection.cs: The unpredictability of finalizers in mono
5130         prevents us from deterministically disconnecting the filters from
5131         the Service class's finalizer, so move tracking of filters and
5132         matches here.  Add API for that.
5133
5134         * mono/Service.cs: Remove the code, add code which calls the
5135         methods now on the Connection class.
5136
5137 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5138
5139         * python/dbus.py (class Sender): added to support dbus signals better
5140         (Bus::add_signal_receiver): added expand_args parameter which defaults
5141         to True.  When expand args is True the signal handler will pass the 
5142         message arguments as parameters to the signal handler.  If False
5143         revert to previous behavior where the signal handler must get the
5144         argument list from the message.  This is to help port applications
5145         like HAL that have a tendancy to send variable length argument lists.
5146         self._match_rule_to_receivers is now a dict of dicts.
5147         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5148         removing it from a list
5149         (Bus::_signal_func): change signal handlers so that interface,
5150         signal_name, service, path and message are packed into a Sender
5151         object and that is passed to the handler.  If expand_args is True
5152         extract the args list from the message and append it to the parameter
5153         list
5154         
5155         * python/dbus_bindings.pyx.in (class Signature): added to support 
5156         signiature types
5157         (MessageIter::__init__): changed iteration limit to match D-BUS
5158         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5159         STRUCT and VARIENT type support
5160         (MessageIter::python_value_to_dbus_sig): made recursive to support
5161         recursive types
5162         (MessageIter::append*): added Signature, dict, tuple 
5163         support
5164
5165         * python/examples/example-client.py: added examples of getting tuples
5166         and dicts
5167
5168         * python/examples/example-service.py: added examples of sending tuples
5169         and dicts
5170
5171         * python/examples/example-signal-recipient.py: Fixed to handle new
5172         signal callback format
5173
5174 2005-02-10  Havoc Pennington  <hp@redhat.com>
5175
5176         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5177         (call dbus_g_proxy_add_signal)
5178
5179         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5180         escape the hostname
5181         (_dbus_server_new_for_domain_socket): escape the path
5182
5183         * dbus/dbus-address.c (dbus_address_escape_value): new
5184         (dbus_address_unescape_value): new
5185         (dbus_parse_address): unescape values
5186
5187         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5188
5189         * doc/dbus-specification.xml: explain how to escape values in
5190         addresses
5191
5192 2005-02-10  Havoc Pennington  <hp@redhat.com>
5193
5194         * dbus/dbus-message-factory.c (generate_special): modify test to
5195         avoid using a non-basic dict key
5196
5197         * dbus/dbus-marshal-validate-util.c: add test for the below
5198
5199         * doc/dbus-specification.xml: require that dict keys are a basic
5200         type
5201
5202         * dbus/dbus-marshal-validate.c
5203         (_dbus_validate_signature_with_reason): require that dict key is a
5204         basic type
5205
5206 2005-02-10  Havoc Pennington  <hp@redhat.com>
5207
5208         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5209         change to be _and_unlock instead of _unlocked
5210
5211         * dbus/dbus-connection.c
5212         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5213         have no_update so we can find this bug quickly in future
5214
5215 2005-02-10  Havoc Pennington  <hp@redhat.com>
5216
5217         * dbus/dbus-message-util.c (verify_test_message): tests for string
5218         array
5219
5220         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5221         support for arrays of string/signature/path
5222
5223 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5224
5225         * dbus/dbus-connection.c
5226         (_dbus_connection_queue_received_message_link,
5227         _dbus_connection_message_sent): Add the path to
5228         the verbose output.
5229         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5230         _dbus_connection_send_preallocated_unlocked(), updated the
5231         dispatch status, and unlocks.  Fixes a bug where certain
5232         situations (like a broken pipe) could cause a Disconnect message
5233         to not be sent, tricking the bus into thinking a service was still
5234         there when the process had quit.
5235         (_dbus_connection_send_preallocated): Call
5236         _dbus_connection_send_preallocated_and_unlock().
5237         (_dbus_connection_send_and_unlock): Added.  Calls
5238         _dbus_connection_send_preallocated_and_unlock().
5239         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5240         (dbus_connection_send_with_reply): Update the dispatch status and
5241         unlock.
5242
5243         * mono/Service.cs (~Service): Added.  Removes the filter so that
5244         we don't get unmanaged code calling back into a GCed delegate.
5245         (RemoveFilter); Added.
5246
5247 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5248
5249         * dbus/dbus-message.c (dbus_message_iter_open_container):
5250         - Removed check for iterator type being an array because
5251         get_arg_type does not work with writer iterators
5252         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5253
5254 2005-02-07  Havoc Pennington  <hp@redhat.com>
5255
5256         * doc/dbus-specification.xml: some more language cleanups; add
5257         stuff about how to deal with invalid protocol and extension
5258         points; add _ to allowed chars in auth commands; add EXTENSION_
5259         auth command prefix
5260
5261 2005-02-06  Havoc Pennington  <hp@redhat.com>
5262
5263         * s/expected/required/ in a couple places for clarity
5264
5265 2005-02-07  Colin Walters  <walters@verbum.org>
5266
5267         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5268         sender or proposed_recipient.
5269
5270 2005-02-06  Havoc Pennington  <hp@redhat.com>
5271
5272         * dbus/dbus-message-factory.c (generate_special): more tests
5273
5274         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5275         array length that exceeds the maximum
5276
5277 2005-02-05  Havoc Pennington  <hp@redhat.com>
5278
5279         * dbus/dbus-message-factory.c (generate_special): more test cases,
5280         increasing coverage
5281
5282         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5283         reason why a signature was invalid
5284
5285         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5286         skip the length of the string before we look at it in validation
5287
5288         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5289         equal_substring
5290
5291         * dbus/dbus-message.c (_dbus_message_loader_new): default
5292         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5293
5294 2005-02-05  Havoc Pennington  <hp@redhat.com>
5295
5296         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5297         if the signature of a variant was empty
5298         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5299         struct with no element type)
5300
5301         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5302         mangled messages to break things
5303
5304 2005-02-04  Havoc Pennington  <hp@redhat.com>
5305
5306         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5307         g_quark_try_string() so it actually can return 0
5308         (dbus_g_proxy_connect_signal): ditto
5309
5310 2005-02-04  Havoc Pennington  <hp@redhat.com>
5311
5312         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5313         bogus warning
5314         (tristring_from_message): assert cleanly on null path/interface
5315         (should not be possible though I decided later)
5316         (dbus_g_proxy_dispose): move proxy manager unregistration here
5317         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5318         g_return_if_fail() checks
5319
5320 2005-02-04  Havoc Pennington  <hp@redhat.com>
5321
5322         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5323
5324         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5325         (with some minor changes)
5326
5327         * doc/dbus-specification.xml: add deprecated attribute to
5328         introspection format
5329
5330 2005-01-31  Havoc Pennington  <hp@redhat.com>
5331
5332         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5333         think it's sort of right
5334
5335 2005-01-30  Havoc Pennington  <hp@redhat.com>
5336
5337         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5338
5339 2005-01-30  Havoc Pennington  <hp@redhat.com>
5340
5341         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5342
5343         * autogen.sh: change to autotools 1.9
5344
5345         * glib/dbus-gproxy.c: completely change how signals work
5346         (dbus_g_proxy_add_signal): new function to specify signature of a
5347         signal
5348         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5349         and g_warning if the incoming message has the wrong signature.
5350
5351 2005-01-30  Havoc Pennington  <hp@redhat.com>
5352
5353         * tools/dbus-names-model.c (have_names_notify): fix this
5354
5355         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5356         up the string array handling a bit 
5357
5358 2005-01-30  Havoc Pennington  <hp@redhat.com>
5359
5360         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5361         (dbus_g_pending_call_cancel): new function
5362
5363         * dbus/dbus-glib.h: move GType decls for connection/message here;
5364         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5365         here, just kind of rationalizing how we handle all that
5366
5367         * tools/dbus-names-model.c: new file for a tree model listing the
5368         services on a bus
5369
5370         * tools/dbus-tree-view.c (model_new): use proper typing on the
5371         model rows
5372
5373 2005-01-30  Havoc Pennington  <hp@redhat.com>
5374
5375         * glib/dbus-gmain.c: add a custom GSource back that just checks
5376         whether the message queue has anything in it; otherwise, there are 
5377         cases where we won't see messages in the queue since there was no 
5378         IO visible to the glib main loop
5379
5380         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5381         increase default message timeout to 25 seconds
5382
5383 2005-01-30  Havoc Pennington  <hp@redhat.com>
5384
5385         * test/glib/test-profile.c (no_bus_stop_server): remove the
5386         warning about the g_warning that I just fixed
5387
5388         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5389         custom source, seems to be a lot easier to understand and work
5390         better.
5391
5392 2005-01-30  Havoc Pennington  <hp@redhat.com>
5393
5394         I think this main loop thing is conceptually broken, but here are 
5395         some band aids. I'll maybe rewrite it in a minute.
5396         
5397         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5398         custom GSource, so don't pass it in; confusing
5399         (gsource_server_finalize, gsource_connection_finalize): add
5400         finalize handlers that remove all the watches.  
5401
5402 2005-01-30  Havoc Pennington  <hp@redhat.com>
5403
5404         * glib/dbus-gobject.c (introspect_properties): fix the XML
5405         generated
5406
5407         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5408         which effectively detects the use of freed messages
5409
5410         * glib/dbus-gobject.c (handle_introspect): modify and return the
5411         reply message instead of the incoming message
5412
5413         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5414         gee, maybe it should SEND THE XML instead of just making a string
5415         and freeing it again ;-)
5416
5417         * tools/dbus-print-message.c (print_message): improve printing of
5418         messages
5419
5420         * configure.in: add debug-glib.service to the output
5421
5422 2005-01-30  Havoc Pennington  <hp@redhat.com>
5423
5424         dbus-viewer introspected and displayed the bus driver
5425         
5426         * dbus/dbus-object-tree.c 
5427         (object_tree_test_iteration): add tests for a handler registered on "/"
5428
5429         * dbus/dbus-object-tree.c
5430         (_dbus_decompose_path): fix to handle path "/" properly
5431         (run_decompose_tests): add tests for path decomposition
5432         
5433         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5434         properly
5435
5436         * glib/dbus-gobject.c (handle_introspect): fix quotes
5437
5438         * test/glib/run-test.sh: support launching the bus, then running
5439         dbus-viewer
5440
5441         * test/glib/test-service-glib.c (main): put in a trivial gobject
5442         subclass and register it on the connection
5443
5444         * bus/driver.c (bus_driver_handle_introspect): implement
5445         introspection of the bus driver service
5446
5447         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5448         identifiers, doctype decl
5449
5450         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5451         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5452         returning the service unchanged.
5453         (bus_driver_handle_message): remove old check for reply_serial in
5454         method calls, now the message type deals with that
5455         (bus_driver_handle_message): handle NULL interface
5456
5457         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5458
5459         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5460         -1 for len
5461
5462         * tools/dbus-viewer.c: add support for introspecting a service on
5463         a bus
5464
5465         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5466         (dbus_g_pending_call_unref): add
5467
5468 2005-01-29  Havoc Pennington  <hp@redhat.com>
5469
5470         * tools/dbus-tree-view.c: add support for displaying properties.
5471         (run dbus-viewer with an introspect xml file as arg, then resize
5472         the window so the tree elements show up, not sure what that is)
5473
5474         * glib/dbus-gobject.c (handle_introspect): return
5475         org.freedesktop.Properties and org.freedesktop.Introspectable
5476         interfaces when we are introspected.
5477
5478         * doc/dbus-specification.xml: allow empty interface name when 
5479         Get/Set a property
5480
5481 2005-01-29  Havoc Pennington  <hp@redhat.com>
5482
5483         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5484         though it uses glib, it could be extended for any binding in
5485         principle
5486
5487         * glib/dbus-gobject.c (gobject_message_function): change to the
5488         new way properties work
5489
5490         * dbus/dbus-protocol.h: add the new interfaces
5491
5492         * doc/dbus-specification.xml: document the introspection format,
5493         Introspectable interface, and add an org.freedesktop.Properties
5494         interface.
5495
5496         * glib/dbus-gparser.c: add support for a <property> element
5497
5498         * glib/dbus-gidl.c: add PropertyInfo
5499
5500         * glib/dbus-gobject.c (handle_introspect): put the outermost
5501         <node> outside the signal and property descriptions.
5502         (introspect_properties): export properties as <property> rather
5503         than as method calls
5504
5505 2005-01-28  Havoc Pennington  <hp@redhat.com>
5506
5507         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5508         related to authentication protocol
5509
5510 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5511
5512         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5513                 - BUS_ACTIVATION -> BUS_STARTER
5514                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5515                 - class MessageIter (__init__): Added recursion checking 
5516                 so we throw a nice error instead of just disconnecting from the
5517                 bus.
5518                 (get): Added arg_type parameter for recursion.
5519                 Removed the nil type
5520                 Added signiture type placeholder (not implemented)
5521                 Added struct type placeholder (not implemented)
5522                 Added varient type placeholder (not implemented)
5523                 Commented out dict type for now     
5524                 (get_element_type): renamed from get_array_type
5525                 (get_*): changed to use the dbus_message_iter_get_basic API
5526                 (get_*_array): removed in favor of recursive get_array method
5527                 (get_array): new recursive method which calls get to marshal
5528                 the elements of the array
5529                 (value_to_dbus_sig): New method returns the corrasponding
5530                 dbus signiture to a python value
5531                 (append): Comment out dict handling for now
5532                 Handle lists with the new recursive API
5533                 Comment out None handling for now
5534                 (append_nil): removed
5535                 (append_*): changed to use dbus_message_iter_append_basic API
5536                 (append_*_array): removed in favor of recursive append_array 
5537                 method
5538                 (__str__): Make it easier to print out recursive iterators
5539                 for debugging
5540                 - class Message (__str__): moved type inspection to the
5541                 MessageIter class' __str__ method
5542                 (get_iter): Added an append parameter wich defaults to False
5543                 If True use the new API's to create an append iterator
5544
5545         * python/dbus.py: Update to use new bindings API
5546                 - TYPE_ACTIVATION -> TYPE_STARTER
5547                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5548                 - class ActivationBus -> class StarterBus
5549                 - class RemoteObject (__call__): get an append iterator
5550                 - (_dispatch_dbus_method_call): get an append iterator
5551                 - class Object (emit_signal): get an append iterator
5552
5553         * python/examples/: Fixed up the examples to work with the new API
5554                 
5555 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5556
5557         * configure.in: Bump version up to 0.30.
5558
5559         * HACKING: Add a release item to bump the version number up after 
5560         a release.
5561
5562 2005-01-28  Havoc Pennington  <hp@redhat.com>
5563
5564         * doc/dbus-specification.xml: update to describe 16-bit types and
5565         dict entries
5566
5567         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5568         assertion
5569
5570         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5571         type
5572
5573         * dbus/dbus-marshal-recursive.c: implement
5574
5575 2005-01-27  Havoc Pennington  <hp@redhat.com>
5576
5577         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5578
5579         * configure.in: find the right type for 16 and 32 bit ints as well
5580         as 64
5581
5582         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5583         the 16-bit types so people don't have to stuff them in 32-bit or
5584         byte arrays.
5585
5586 2005-01-27  Havoc Pennington  <hp@redhat.com>
5587
5588         * dbus/dbus-message.c: byteswap the message if you init an
5589         iterator to read/write from it
5590         
5591         * dbus/dbus-marshal-byteswap.c: new file implementing 
5592         _dbus_marshal_byteswap()
5593
5594         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5595
5596 2005-01-26  Havoc Pennington  <hp@redhat.com>
5597         
5598         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5599         build, apparently - nobody noticed?)
5600         
5601 2005-01-26  Havoc Pennington  <hp@redhat.com>
5602
5603         * dbus/dbus-marshal-recursive.h: remove todo comment
5604
5605 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5606
5607         * Land the mono binding changes to conform to the new APIs.
5608
5609         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5610         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5611
5612         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5613         type code as a string.
5614         (InitAppending): Rename dbus_message_append_iter_init() to
5615         dbus_message_iter_init_append().
5616
5617         * mono/BusDriver.cs: Rename ServiceEventHandler to
5618         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5619         Rename ServiceOwnerChanged to NameOwnerChanged.
5620
5621         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5622         underlying C call.
5623
5624         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5625
5626         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5627         dbus_bus_acquire_service() to dbus_bus_request_name().
5628
5629         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5630         of Type.UnderlyingSystemType to get the correct element type for
5631         the array.
5632         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5633         dbus_message_get_{element|arg}_type() instead of
5634         dbus_message_iter_init_array_iterator().
5635         (Append): Replace dbus_message_iter_append_array() with
5636         dbus_message_iter_open_container() and
5637         dbus_message_iter_close_container().
5638
5639         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5640         types have been removed.
5641         
5642         * mono/DBusType/*.cs: Replace calls of
5643         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5644         but specify the type in the DllImport extern declaration.  Ditto
5645         for dbus_message_iter_append_[type]() ->
5646         dbus_message_iter_append_basic().
5647
5648         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5649         NameOwnerChangedHandler.
5650
5651 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5652
5653         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5654                 - get_base_service -> get_unique_name
5655                 - bus_get_base_service -> bus_get_unique_name
5656                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5657                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5658                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5659                 - bus_activate_service -> bus_start_service_by_name
5660                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5661                 - bus_acquire_service -> bus_request_name
5662                 - dbus_bus_acquire_service -> dbus_bus_request_name
5663                 - bus_service_exists -> bus_name_has_owner
5664                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5665
5666         * python/dbus.py: Rename of methods
5667                 - activate_service -> start_service_by_name
5668                 - bus_acquire_service -> bus_request_name
5669                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5670                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5671
5672         
5673 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5674
5675         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5676         signature for the method that can't be found.
5677
5678         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5679         the message has any arguments, we need to call
5680         _dbus_type_reader_get_current_type(), not
5681         _dbus_type_reader_has_next().
5682
5683 2005-01-24  Havoc Pennington  <hp@redhat.com>
5684
5685         * dbus/dbus-message-factory.c: more testing of message validation
5686
5687         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5688         header
5689
5690 2005-01-23  Havoc Pennington  <hp@redhat.com>
5691
5692         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5693         get this all working, not many tests in the framework yet though
5694
5695 2005-01-22  Havoc Pennington  <hp@redhat.com>
5696
5697         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5698         tutorial, based on work from David Wheeler.
5699
5700 2005-01-21  Havoc Pennington  <hp@redhat.com>
5701
5702         * dbus/dbus-bus.c: add more return_if_fail checks
5703
5704         * dbus/dbus-message.c (load_message): have the "no validation"
5705         mode (have to edit the code to toggle the mode for now though)
5706
5707         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5708         skips all validation; I want to use this at least for benchmark
5709         baseline, I'm not sure if it should be a publicly-available switch.
5710
5711 2005-01-21  Havoc Pennington  <hp@redhat.com>
5712
5713         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5714         toplevel doxygen group as the low-level API stuff
5715
5716         * dbus/dbus.h: note that libdbus is the low-level API
5717
5718 2005-01-20  Havoc Pennington  <hp@redhat.com>
5719
5720         * update-dbus-docs.sh: script to update docs on the web site, only
5721         works for me though. neener.
5722
5723 2005-01-20  Havoc Pennington  <hp@redhat.com>
5724
5725         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5726         code can reveal bugs in it
5727
5728 2005-01-20  Havoc Pennington  <hp@redhat.com>
5729
5730         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5731         select() version, patches from Tor Lillqvist
5732
5733 2005-01-20  Havoc Pennington  <hp@redhat.com>
5734
5735         * doc/dbus-tutorial.xml: replace > with &gt;
5736
5737         * bus/services.c (bus_registry_acquire_service): validate the name
5738         and return a better error if it's no good.
5739
5740         * doc/dbus-specification.xml: note NO_AUTO_START change
5741
5742         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5743         from AUTO_START, we're toggling the default
5744
5745         * bus/dispatch.c: adapt the tests to change of auto-start default
5746
5747 2005-01-18  Havoc Pennington  <hp@redhat.com>
5748
5749         * rename dbus-daemon-1 to dbus-daemon throughout
5750
5751 2005-01-18  Havoc Pennington  <hp@redhat.com>
5752
5753         * Throughout, grand renaming to strip out the use of "service",
5754         just say "name" instead (or "bus name" when ambiguous).  Did not
5755         change the internal code of the message bus itself, only the
5756         programmer-facing API and messages.
5757         
5758         * doc/dbus-specification.xml: further update the message bus section
5759         
5760         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5761         in error case
5762
5763 2005-01-17  Havoc Pennington  <hp@redhat.com>
5764
5765         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5766         ever
5767
5768         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5769         "invalid name character" not only non-ASCII
5770
5771         * doc/dbus-specification.xml: further update spec, message bus 
5772         parts are still out-of-date but the marshaling etc. stuff is now
5773         accurate-ish
5774
5775 2005-01-17  Havoc Pennington  <hp@redhat.com>
5776
5777         * doc/dbus-specification.xml: partially update spec
5778
5779 2005-01-17  Havoc Pennington  <hp@redhat.com>
5780
5781         * Throughout, align variant bodies according to the contained
5782         type, rather than always to 8. Should save a fair bit of space in
5783         message headers.
5784         
5785         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5786         fix handling of case where p == end
5787
5788         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5789
5790 2005-01-17  Havoc Pennington  <hp@redhat.com>
5791
5792         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5793
5794         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5795         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5796         are marshaling/unmarshaling a boolean.
5797
5798 2005-01-16  Havoc Pennington  <hp@redhat.com>
5799
5800         This is about it on what can be disabled/deleted from libdbus
5801         easily, back below 150K anyhow. Deeper cuts are more work than 
5802         just turning the code off as I've done here.
5803         
5804         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5805         signed int convenience funcs
5806
5807         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5808         verbose mode
5809
5810         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5811         things out of libdbus
5812
5813         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5814         
5815         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5816         tests-enabled-only, though it should probably be deleted)
5817
5818         * dbus/dbus-message-util.c: same stuff
5819
5820         * dbus/dbus-auth-util.c: same stuff
5821
5822 2005-01-16  Havoc Pennington  <hp@redhat.com>
5823
5824         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5825
5826         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5827         way for stripping down dbus-userdb.c stuff included in libdbus.
5828         Rename _dbus_parse_uid for consistency.
5829
5830 2005-01-16  Havoc Pennington  <hp@redhat.com>
5831
5832         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5833         name the assertion failed in
5834
5835         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5836         (_dbus_return_val_if_fail): assert that the name of the function
5837         containing the check doesn't start with '_', since we only want to 
5838         use checks on public functions
5839         
5840         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5841         checks to assertions
5842
5843         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5844         change checks to asserts for private function
5845
5846         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5847         to asserts for private function
5848
5849         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5850         broken assertion that was breaking make check
5851         (_dbus_type_reader_array_is_empty): remove this rather than fix
5852         it, was only used in assertions
5853
5854 2005-01-16  Havoc Pennington  <hp@redhat.com>
5855
5856         * test/unused-code-gc.py: hacky script to find code that's used
5857         only by the bus (not libdbus) or used only by tests or not used at
5858         all. It has some false alarms, but looks like we can clean up a
5859         lot of size from libdbus.
5860
5861         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5862         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5863         
5864 2005-01-16  Havoc Pennington  <hp@redhat.com>
5865
5866         * Add and fix docs according to Doxygen warnings throughout
5867         source.
5868         
5869         * dbus/dbus-marshal-recursive.c
5870         (_dbus_type_reader_array_is_empty): change this to just call
5871         array_reader_get_array_len() and make it static
5872
5873         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5874         from get_array_type
5875         (dbus_message_iter_init_append): rename from append_iter_init
5876
5877         * dbus/dbus-marshal-recursive.c
5878         (_dbus_type_reader_get_element_type): rename from
5879         _dbus_type_reader_get_array_type
5880
5881 2005-01-15  Havoc Pennington  <hp@redhat.com>
5882
5883         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5884
5885         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5886         when DBUS_DISABLE_ASSERT
5887         (_dbus_marshal_set_basic): be sure we align for the string length
5888
5889         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5890         this look faster
5891
5892         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5893         inline macro version
5894         (_dbus_string_set_byte): provide inline macro version
5895
5896 2005-01-15  Havoc Pennington  <hp@redhat.com>
5897
5898         * Land the new message args API and type system.
5899
5900         This patch is huge, but the public API change is not 
5901         really large. The set of D-BUS types has changed somewhat, 
5902         and the arg "getters" are more geared toward language bindings;
5903         they don't make a copy, etc.
5904
5905         There are also some known issues. See these emails for details
5906         on this huge patch:
5907         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5908         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5909         
5910         * dbus/dbus-marshal-*: all the new stuff
5911
5912         * dbus/dbus-message.c: basically rewritten
5913
5914         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5915         freed blocks to be all non-nul bytes so using freed memory is less
5916         likely to work right
5917
5918         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5919         DBUS_FAIL_MALLOC=N environment variable, so you can do
5920         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5921         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5922         thorough.
5923
5924         * qt/message.cpp: port to the new message args API
5925         (operator<<): use str.utf8() rather than str.unicode()
5926         (pretty sure this is right from the Qt docs?)
5927
5928         * glib/dbus-gvalue.c: port to the new message args API
5929
5930         * bus/dispatch.c, bus/driver.c: port to the new message args API
5931
5932         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5933         "locked" flag to TRUE and align_offset to 0; I guess we never
5934         looked at these anyhow, but seems cleaner.
5935
5936         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5937         move allocation padding macro to this header; use it to implement
5938         (_DBUS_STRING_STATIC): ability to declare a static string.
5939
5940         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5941         change to return TRUE if the interface is not set.
5942
5943         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5944         to dbus-marshal-validate.[hc]
5945
5946         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5947         dbus-internals.c
5948
5949         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5950         to dbus-marshal-*.[hc]
5951
5952         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5953         function here from dbus-marshal.c
5954
5955 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5956
5957         * NEWS: Update for 0.23.
5958
5959         * configure.in: Release 0.23.
5960
5961 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5962
5963         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5964         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5965         behind.
5966
5967         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5968         uninstall"
5969
5970         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5971         is an enum, get the enum's underlying type.  Another mono
5972         1.1.3 fix.
5973
5974 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5975
5976         Patch from Sjoerd Simons <sjoerd@luon.net>
5977
5978         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5979         DESTDIR.  It breaks stuff.
5980
5981 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5982
5983         Patch from Tambet Ingo <tambet@ximian.com>
5984
5985         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5986         calling type.GetElementType().  The code previously depended on
5987         broken Mono behavior, which was fixed in Mono 1.1.3.
5988
5989         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5990         Activator.CreateInstance() so that the class's constructor is
5991         called with the right parameters.
5992
5993 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5994
5995         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5996
5997         * dbus/dbus-connection.c
5998         (_dbus_connection_queue_received_message_link): Call
5999         _dbus_connection_remove_timeout() instead of the _locked()
6000         variant, since it's always called from
6001         _dbus_connection_handle_watch(), which handles the locking.
6002         Removed the _locked() variant since it's no longer used.
6003
6004 2005-01-03  Havoc Pennington  <hp@redhat.com>
6005
6006         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6007         return
6008         
6009 2004-12-26  Havoc Pennington  <hp@redhat.com>
6010
6011         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6012
6013 2005-01-03  Havoc Pennington  <hp@redhat.com>
6014
6015         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6016         floating point
6017
6018         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6019
6020 2005-01-02  Havoc Pennington  <hp@redhat.com>
6021
6022         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6023
6024 2005-01-01  Havoc Pennington  <hp@redhat.com>
6025
6026         * configure.in: add -Wfloat-equal
6027
6028 2005-01-01  Havoc Pennington  <hp@redhat.com>
6029
6030         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6031         for a variety of reasons '==' doesn't do this.
6032
6033 2004-12-31  Havoc Pennington  <hp@redhat.com>
6034
6035         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6036         I keep wishing I had
6037
6038 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6039
6040         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6041
6042 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6043
6044         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6045         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6046         dbus-protocol.h.  Because they are defines and not enums they are not
6047         autogenerated.
6048
6049 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6050
6051         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6052         dbus_bus_activate_service
6053
6054         * python/dbus.py (Bus.activate_service): activate a service on the
6055         bus.
6056
6057 2004-12-24  Havoc Pennington  <hp@redhat.com>
6058
6059         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6060         file format has also changed and I haven't adapted to that yet
6061         
6062         * Makefile.am: load .gcno files from latest gcc
6063
6064 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6065         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6066
6067         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6068         lowlevel binding
6069
6070         * python/dbus.py (get_unix_user): Added binding to 
6071         call dbus_bindings.bus_get_unix_user
6072
6073         * python/extract.py: Modified the proto_pat regex to
6074         handle unsigned long
6075
6076 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6077
6078         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6079         better POSIX compliance.
6080
6081 2004-12-19  Havoc Pennington  <hp@redhat.com>
6082
6083         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6084         (_dbus_string_insert_8_aligned): new functions
6085
6086         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6087
6088 2004-12-18  Havoc Pennington  <hp@redhat.com>
6089
6090         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6091         macro
6092
6093         * dbus/dbus-message.c: fix a comment, and add a still-unused
6094         not-implemented function
6095
6096         * dbus/dbus-marshal.h: fix comment
6097
6098         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6099
6100 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6101
6102         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6103         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6104         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6105         Type.UnderlyingSystemType to get the actual system type
6106         underneath.  This code previously depended on the broken Mono
6107         behavior, which was fixed in 1.1.3.
6108
6109 2004-11-27  Havoc Pennington  <hp@redhat.com>
6110
6111         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6112         are disabled
6113         (_dbus_string_get_const_data): inline when asserts are disabled
6114
6115         * dbus/dbus-message.c: record the _dbus_current_generation of
6116         creation so we can complain if dbus_shutdown() is used improperly.
6117         Do this only if checks are enabled.
6118
6119         * dbus/dbus-connection.c: ditto
6120         
6121 2004-11-26  Havoc Pennington  <hp@redhat.com>
6122
6123         * test/glib/test-profile.c: add with_bus mode to profile echoes
6124         that go through the bus.
6125
6126         * test/glib/run-test.sh: add ability to run test-profile
6127
6128         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6129         config file reload.
6130
6131 2004-11-26  Havoc Pennington  <hp@redhat.com>
6132
6133         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6134         thing was implemented
6135
6136 2004-11-26  Havoc Pennington  <hp@redhat.com>
6137
6138         * test/glib/test-profile.c: tweak a bit, add support for some
6139         made-up minimal malloc overhead with plain sockets, since in 
6140         real life some sort of buffers are unavoidable thus we could 
6141         count them in the theoretical best case
6142
6143 2004-11-26  Havoc Pennington  <hp@redhat.com>
6144
6145         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6146         where I was trying to cache one too many messages
6147
6148 2004-11-26  Havoc Pennington  <hp@redhat.com>
6149
6150         * dbus/dbus-message.c: reimplement message cache as an array which 
6151         makes the cache about twice as fast and saves maybe 1.5% overall
6152
6153 2004-11-26  Havoc Pennington  <hp@redhat.com>
6154
6155         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6156         message cache lock here
6157
6158 2004-11-26  Havoc Pennington  <hp@redhat.com>
6159
6160         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6161         the "char byte_order" next to each other to save 4 bytes
6162         (dbus_message_new_empty_header): reduce preallocation, since the
6163         message cache should achieve a similar effect
6164         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6165         message cache that keeps a few DBusMessage around in a pool,
6166         another 8% speedup or so.
6167
6168         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6169
6170 2004-11-25  Havoc Pennington  <hp@redhat.com>
6171
6172         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6173         to write, without reading or blocking, try it before the poll()
6174         and skip the poll() if nothing remains to write. This is about a
6175         3% speedup in the echo client/server
6176
6177 2004-11-25  Havoc Pennington  <hp@redhat.com>
6178
6179         The primary change here is to always write() once before adding
6180         the write watch, which gives us about a 10% performance increase.
6181         
6182         * dbus/dbus-transport-unix.c: a number of modifications to cope
6183         with removing messages_pending
6184         (check_write_watch): properly handle
6185         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6186         messages_pending stuff
6187         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6188         AUTHENTICATED cases
6189         (unix_handle_watch): after writing, see if the write watch can be
6190         removed
6191         (unix_do_iteration): assert that write_watch/read_watch are
6192         non-NULL rather than testing that they aren't, since they 
6193         aren't allowed to be NULL. check_write_watch() at the end so 
6194         we add the watch if we did not finish writing (e.g. got EAGAIN)
6195
6196         * dbus/dbus-transport-protected.h: remove messages_pending call,
6197         since it resulted in too much inefficient watch adding/removing; 
6198         instead we now require that the transport user does an iteration 
6199         after queueing outgoing messages, and after trying the first
6200         write() we add a write watch if we got EAGAIN or exceeded our 
6201         max bytes to write per iteration setting
6202
6203         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6204         function
6205
6206         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6207         freed and then accessed, valgrind flagged this bug, fix it
6208
6209         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6210         as the last valid field plus 1, where really it is equal to the
6211         last valid field. Corrects some message corruption issues.
6212
6213         * dbus/dbus-mainloop.c: verbosity changes
6214
6215         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6216         instead of aborting in one of the test codepaths
6217
6218         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6219         caused not printing the pid ever again if a verbose was missing
6220         the newline at the end
6221         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6222
6223         * dbus/dbus-connection.c: verbosity changes; 
6224         (dbus_connection_has_messages_to_send): new function
6225         (_dbus_connection_message_sent): no longer call transport->messages_pending
6226         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6227         try to write() immediately, so we can avoid the write watch. This
6228         is the core purpose of this patchset
6229         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6230         dump the outgoing message queue, so nobody will get confused
6231         trying to send them or thinking stuff is pending to be sent
6232
6233         * bus/test.c: verbosity changes
6234
6235         * bus/driver.c: verbosity/assertion changes
6236
6237         * bus/dispatch.c: a bunch of little tweaks to get it working again
6238         because this patchset changes when/where you need to block.
6239
6240 2004-11-23  Havoc Pennington  <hp@redhat.com>
6241
6242         * test/glib/test-profile.c: modify to accept a plain_sockets
6243         argument in which case it will bench plain sockets instead of
6244         libdbus, for comparison purposes.
6245
6246 2004-11-22  Havoc Pennington  <hp@redhat.com>
6247
6248         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6249         threads for more time, so sysprof can get a grip on it.
6250
6251         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6252         pointless variable
6253
6254 2004-11-13  Havoc Pennington  <hp@redhat.com>
6255
6256         * test/glib/test-profile.c: fix this thing up a bit
6257
6258         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6259         preallocation sizes by a fair bit; not sure if this will be an
6260         overall performance win or not, but it does reduce reallocs.
6261
6262         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6263         the test hack that forced constant realloc if asserts are
6264         disabled, so we can profile sanely. Sprinkle in some
6265         _DBUS_UNLIKELY() which are probably pointless, but before I
6266         noticed the real performance problem I put them in.
6267         (_dbus_string_validate_utf8): micro-optimize this thing a little
6268         bit, though callgrind says it didn't help; then special-case
6269         ascii, which did help a lot; then be sure we detect nul bytes as
6270         invalid, which is a bugfix.
6271         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6272         superstition; use memset to nul the padding instead of a manual
6273         loop.
6274         (_dbus_string_get_length): inline this as a
6275         macro; it showed up in the profile because it's used for loop
6276         tests and so forth
6277
6278 2004-11-10  Colin Walters  <walters@verbum.org>
6279
6280         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6281         for extra paranoia.
6282
6283 2004-11-09  Colin Walters  <walters@verbum.org>
6284
6285         * dbus/dbus-string.c (_dbus_string_get_length): New
6286         function, writes DBusString to C buffer.
6287
6288         * dbus/dbus-string.h: Prototype it.
6289
6290         * dbus/dbus-message.c (dbus_message_type_to_string): New
6291         function, converts message type into C string.
6292
6293         * dbus/dbus-message.h: Prototype it.
6294
6295         * bus/selinux.c (bus_selinux_check): Take source pid,
6296         target pid, and audit data.  Pass audit data to
6297         avc_has_perm.
6298         (log_audit_callback): New function, appends extra
6299         audit information.
6300         (bus_selinux_allows_acquire_service): Also take
6301         service name, add it to audit data.
6302         (bus_selinux_allows_send): Also take message
6303         type, interface, method member, error name,
6304         and destination, and add them to audit data.
6305         (log_cb): Initialize func_audit.
6306         
6307         * bus/selinux.h (bus_selinux_allows_acquire_service)
6308         (bus_selinux_allows_send): Update prototypes 
6309
6310         * bus/services.c (bus_registry_acquire_service): Pass
6311         service name to bus_selinux_allows_acquire_service.
6312
6313         * bus/bus.c (bus_context_check_security_policy): Pass
6314         additional audit data.  Move assignment of dest
6315         to its own line.
6316
6317 2004-11-07  Colin Walters  <walters@verbum.org>
6318
6319         * dbus/dbus-transport-unix.c (do_authentication): Always
6320         initialize auth_completed.
6321         
6322 2004-11-07  Colin Walters  <walters@verbum.org>
6323
6324         * bus/bus.c (load_config): Break into three
6325         separate functions: process_config_first_time_only,
6326         process_config_every_time, and process_config_postinit.
6327         (process_config_every_time): Move call of
6328         bus_registry_set_service_context_table into
6329         process_config_postinit.
6330         (process_config_postinit): New function, does
6331         any processing that needs to happen late
6332         in initialization (and also on reload).
6333         (bus_context_new): Instead of calling load_config,
6334         open config parser here and call process_config_first_time_only
6335         and process_config_every_time directly.  Later, after
6336         we have forked but before changing UID,
6337         invoke bus_selinux_full_init, and then call
6338         process_config_postinit.
6339         (bus_context_reload_config): As in bus_context_new,
6340         load parse file inside here, and call process_config_every_time
6341         and process_config_postinit.
6342
6343         * bus/services.h, bus/services.c
6344         (bus_registry_set_service_context_table): Rename
6345         from bus_registry_set_sid_table.  Take string hash from config
6346         parser, and convert them here into SIDs.
6347
6348         * bus/config-parser.c (struct BusConfigParser): Have
6349         config parser only store a mapping of service->context
6350         string.
6351         (merge_service_context_hash): New function.
6352         (merge_included): Merge context string hashes instead
6353         of using bus_selinux_id_table_union.
6354         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6355         simply create a new string hash.
6356         (bus_config_parser_unref): Unref it.
6357         (start_selinux_child): Simply insert strings into hash,
6358         don't call bus_selinux_id_table_copy_over.
6359
6360         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6361         (bus_selinux_id_table_copy_over): Delete.
6362
6363 2004-11-03  Colin Walters  <walters@verbum.org>
6364
6365         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6366         variables.
6367         
6368 2004-11-03  Colin Walters  <walters@verbum.org>
6369
6370         * bus/test-main.c (test_pre_hook): Fix test logic,
6371         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6372
6373 2004-11-02  Colin Walters  <walters@redhat.com>
6374
6375         * bus/selinux.c (bus_selinux_init): Split into two functions,
6376         bus_selinux_pre_init and bus_selinux_post_init.
6377         (bus_selinux_pre_init): Just determine whether SELinux is
6378         enabled.
6379         (bus_selinux_post_init): Do everything else.
6380
6381         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6382         config file, and bus_selinux_post_init after.  This ensures that
6383         we don't lose the policyreload notification thread that
6384         bus_selinux_init created before forking previously.
6385         
6386         * bus/test-main.c (test_pre_hook): Update for split.
6387
6388 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6389
6390         Patch from Johan Fischer <linux@fischaz.com>
6391         
6392         * mono/doc/Makefile.am (install-data-local): Added directory
6393         install for DESTDIR
6394
6395 2004-10-29  Colin Walters  <walters@redhat.com>
6396
6397         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6398         parameter for fd to write pid to.       
6399
6400         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6401         
6402         * bus/bus.c (bus_context_new): Pass print_pid_fd
6403         to _dbus_become_daemon (bug #1720)
6404
6405 2004-10-29  Colin Walters  <walters@redhat.com>
6406
6407         Patch from Ed Catmur <ed@catmur.co.uk>
6408
6409         * mono/doc/Makefile.am (install-data-local): Handle
6410         DESTDIR.
6411
6412 2004-10-29  Colin Walters  <walters@redhat.com>
6413
6414         * bus/.cvsignore, qt/.cvsignore: Update.
6415
6416 2004-10-29  Colin Walters  <walters@redhat.com>
6417
6418         Patch from Kristof Vansant <de_lupus@pandora.be>
6419
6420         * configure.in: Detect Slackware.
6421         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6422         * bus/rc.messagebus.in: New file.
6423
6424 2004-10-29  Colin Walters  <walters@redhat.com>
6425
6426         * tools/dbus-monitor.c (filter_func): Return
6427         DBUS_HANDLER_RESULT_HANDLED in filter function
6428         for now.  See:
6429         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6430
6431 2004-10-29  Colin Walters  <walters@redhat.com>
6432
6433         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6434
6435         * bus/services.c (bus_registry_acquire_service): 
6436         Correctly retrieve service name from DBusString
6437         for printing.
6438
6439 2004-10-29  Colin Walters  <walters@redhat.com>
6440
6441         * dbus/dbus-glib.h: Update documentation to not
6442         refer to internal APIs.
6443
6444 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6445
6446         * mono/Arguments.cs (GetDBusTypeConstructor):
6447         type.UnderlyingSystemType will return "System.Byte" if you do it
6448         on "byte[]", which is not what we want.  So check the type.IsArray
6449         property and use System.Array instead.
6450
6451 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6452
6453         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6454         the DBusUserInfo structure since this is passed into the function.
6455         This would cause a double free when the function that allocated
6456         the structure would try to free it when an error occured.
6457
6458         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6459         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6460         for service activation to avoid 32bit/64bit parallel install issues
6461
6462 2004-10-21  Colin Walters  <walters@verbum.org>
6463
6464         * AUTHORS: Fix my email address, the @gnu.org one
6465         has been bouncing for some time.  Also add J5.
6466         
6467 2004-10-21  Colin Walters  <walters@verbum.org>
6468
6469         * dbus/dbus-transport-unix.c (do_authentication): Return
6470         authentication status to callers.
6471         (unix_handle_watch): If we completed authentication this round,
6472         don't do another read.  Instead wait until the next iteration,
6473         after we've read any pending data in the auth buffer.
6474         (unix_do_iteration): Ditto.
6475         (unix_handle_watch): Updated for new do_authentication prototype.
6476
6477 2004-10-18  Colin Walters  <walters@verbum.org>
6478
6479         * bus/selinux.c (bus_selinux_enabled): Handle
6480         --disable-selinux case.
6481         
6482 2004-10-18  Colin Walters  <walters@verbum.org>
6483
6484         * bus/selinux.h: Add bus_selinux_enabled.
6485         
6486         * bus/selinux.c (bus_selinux_enabled): Implement it.
6487         
6488         * bus/config-parser.c (struct include): Add
6489         if_selinux_enabled member.
6490         (start_busconfig_child): Parse if_selinux_enabled
6491         attribute for include.
6492         (bus_config_parser_content): Handle it.
6493
6494         * bus/session.conf.in, bus/system.conf.in: Add
6495         inclusion of context mapping to default config files;
6496         conditional on SELinux being enabled.
6497         
6498         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6499         
6500         * test/data/invalid-config-files/badselinux-1.conf, 
6501         test/data/invalid-config-files/badselinux-2.conf:
6502         Test files for bad syntax.
6503         
6504 2004-10-17  Colin Walters  <walters@verbum.org>
6505
6506         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6507         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6508         format specifier mismatches.
6509
6510 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6511
6512         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6513         format string.
6514
6515         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6516         pointer (bug #1540, Leonardo Boiko).
6517
6518 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6519
6520         * mono/BusDriver.cs: Changed BusDriver struct to remove
6521         the ServiceCreated and ServiceDeleted events and replace them
6522         with the new ServiceOwnerChanged event.
6523
6524         * mono/example/BusListener.cs: Added a new example program,
6525         which listens for and reports any ServiceOwnerChanged events
6526         on the bus driver.
6527
6528         * mono/example/Makefile.am (DESTDIR): Build changes for the
6529         new BusListener.cs example.
6530
6531 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6532
6533         * bus/signals.c (bus_match_rule_parse): validate the components of
6534         match rules (bug #1439).
6535
6536         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6537
6538 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6539
6540         * doc/dbus-specification.xml: document ServiceOwnerChanged
6541         signal.
6542         
6543         * bus/driver.c, bus/driver.h, bus/services.c: Use
6544         ServiceOwnerChanged signal instead of ServiceCreated and
6545         ServiceDeleted.
6546         
6547         * bus/dispatch.c: update testcase for the new signal.
6548
6549 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6550
6551         Patch from Nat Friedman <nat@novell.com>
6552
6553         * mono/Makefile.am: A number of small build fixes to allow "make
6554         distcheck" to succeed.
6555
6556         * mono/example/Makefile.am: "make distcheck" fixes.
6557
6558         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6559         key in @srcdir@.
6560
6561         * test/Makefile.am: "make distcheck" fixes.
6562
6563 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6564
6565         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6566
6567         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6568
6569         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6570         messages after the first one (bug #1389).
6571         
6572         * bus/dispatch.c (check_double_hello_message): add a test case for
6573         the double hello message bug.
6574         (check_existent_service_activation): fix check of spawning error.
6575         
6576 2004-09-16  David Zeuthen  <david@fubar.dk>
6577
6578         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6579
6580 2004-09-12  David Zeuthen  <david@fubar.dk>
6581
6582         Patch from Kay Sievers <kay.sievers@vrfy.org>
6583
6584         * bus/bus.c (bus_context_new):
6585         * bus/bus.h:
6586         * bus/main.c (usage)
6587         (main):
6588         Add commandline option --nofork to override configuration file
6589         setting.
6590
6591 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6592
6593         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6594         compilers don't like it (bug #974).
6595
6596 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6597
6598         * qt/connection.*: Applied patch by Jérôme Lodewyck
6599         <lodewyck@clipper.ens.fr> to integrate an existing
6600         connection into the Qt eventloop
6601
6602 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6603
6604         * mono/BusDriver.cs: Added.  This is a class for interacting with
6605         the org.freedesktop.DBus service.
6606
6607         * mono/Message.cs: Added a mechanism to expose the message that is
6608         currently being dispatched via the static Message.Current
6609         property.  Added Message.Sender and Message.Destination
6610         properties.
6611
6612         * mono/Handler.cs: Expose the dispatched message via
6613         Message.Current when handling method calls.
6614
6615         * mono/Service.cs: Expose the dispatched message via
6616         Message.Current when handling signal emissions.
6617         
6618         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6619         Connection.BaseService property.
6620
6621 2004-08-28  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6624
6625         More fixes from Steve Grubb
6626         
6627         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6628         (_dbus_listen_tcp_socket): fix fd leak
6629
6630         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6631         EINTR to a bit lower in the code
6632
6633 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6634
6635         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6636         TRUE if we are inquiring about the existence of the built-in
6637         org.freedesktop.DBus service.
6638
6639 2004-08-25  John Palmieri  <johnp@redhat.com>
6640         * bus/config-parser.c:
6641         (struct PolicyType): Add POLICY_CONSOLE
6642         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6643         (start_busconfig_child): Sets up console element when
6644         <policy at_console=""> is encountered in a policy file
6645         (append_rule_from_element): Convert console elements to console
6646         rules.
6647
6648         * bus/policy.c: 
6649         (bus_policy_create_client_policy): Add console rules to the client
6650         policy based on if the client is at the console
6651         (bus_policy_append_console_rule): New function for adding a
6652         console rule to a policy
6653         (bus_policy_merge): Handle console rule merging
6654
6655         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6656         where we check for console user files
6657         
6658         * dbus/dbus-sysdeps.c:
6659         (_dbus_file_exists): New function which checks if the given
6660         file exists
6661         (_dbus_user_at_console): New function which does the system
6662         specific process of checking if the user is at the console
6663
6664         * dbus/dbus-userdb.c:
6665         (_dbus_is_console_user): New function converts a UID to user name
6666         and then calls the system specific _dbus_user_at_console to 
6667         see if the user is at the console and therefor a console user
6668
6669 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6670
6671         * bus/config-parser.c (set_limit):
6672         * bus/dbus-daemon-1.1.in:
6673         * test/data/valid-config-files/many-rules.conf: set the
6674         max_match_rules_per_connection limt from the config file. 
6675
6676         * doc/busconfig.dtd: update the DTD.
6677
6678         * bus/driver.c: remove some unused variables.
6679
6680 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6681
6682         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6683         it's been replaced by dbus_g_bus_get
6684
6685 2004-08-23  Colin Walters  <walters@redhat.com>
6686
6687         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6688
6689         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6690
6691         * bus/selinux.c: Create a thread for policy reload notification.
6692         (bus_selinux_get_policy_root): Implement.
6693
6694         * bus/config-parser.c (start_busconfig_child)
6695         (bus_config_parser_content): Support SELinux-root relative
6696         inclusion.
6697
6698         * configure.in <HAVE_SELINUX>: Add -lpthread.
6699         
6700         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6701         (test_post_hook): Move memory checking into here.
6702         (test_pre_hook, test_post_hook): Move SELinux checks in
6703         here, but conditional on a DBUS_TEST_SELINUX environment
6704         variable.  Unfortunately we can't run the SELinux checks
6705         as a normal user, since they won't have any permissions
6706         for /selinux.  So this will have to be tested manually
6707         for now, until we have virtualization for most of
6708         libselinux.
6709         
6710 2004-08-23  Havoc Pennington  <hp@redhat.com>
6711
6712         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6713         drop supplementary groups, suggested by Steve Grubb
6714
6715 2004-08-20  Colin Walters  <walters@redhat.com>
6716
6717         * bus/config-parser.c (start_busconfig_child): Remove some unused
6718         variables.
6719         
6720         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6721         warning.
6722
6723 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6724
6725         * configure.in: If --enable-mono is passed in, if we can't find
6726         mono error out.
6727
6728         * mono/Makefile.am: Use /gacutil to install assemblies into the
6729         GAC and not /root.
6730
6731 2004-08-12  Havoc Pennington  <hp@redhat.com>
6732
6733         * NEWS: update for 0.22
6734
6735         * configure.in: release 0.22
6736
6737 2004-08-11  Colin Walters  <walters@redhat.com>
6738
6739         * tools/dbus-send.c (main, usage): Add --reply-timeout
6740         argument.
6741
6742 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6743
6744         * bus/bus.c (process_config_first_time_only): get rid of an unused
6745         DBusError that was causing a memoy leak (bug #989).
6746
6747         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6748         fix compilation on Solaris/Forte C (bug #974)
6749
6750         * bus/main.c (main): plug two minuscule memleaks.
6751
6752 2004-08-10  Havoc Pennington  <hp@redhat.com>
6753
6754         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6755
6756 2004-08-09  Havoc Pennington  <hp@redhat.com>
6757
6758         * COPYING: switch to Academic Free License version 2.1 instead of
6759         2.0, to resolve complaints about patent termination clause.
6760
6761 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6762
6763         * README: added documentation for the --enable-python 
6764         configure switch.
6765
6766 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6767
6768         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6769         _unref in the SELinux support.
6770
6771         * doc/busconfig.dtd: update DTD for SELinux support.
6772
6773         * bus/config-loader-libxml.c: fix error handler and parser
6774         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6775
6776         * configure.in: remove the warning about libxml2.
6777
6778         * dbus/dbus-bus.c: silence doxygen warning.
6779
6780 2004-07-31  Colin Walters  <walters@redhat.com>
6781
6782         * configure.in: Move #error in SELinux check to its own line.
6783
6784 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6785
6786         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6787         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6788         dbus_error_set.
6789
6790         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6791         broken by the change in the _SET_OOM macros.
6792
6793 2004-07-31  Colin Walters  <walters@redhat.com>
6794
6795         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6796         BUS_SET_OOM.
6797
6798 2004-07-31  Colin Walters  <walters@redhat.com>
6799
6800         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6801         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6802         AC_MSG_CHECKING.
6803
6804 2004-07-24  Havoc Pennington  <hp@redhat.com>
6805
6806         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6807
6808         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6809         functionality
6810
6811         * configure.in: add --enable-selinux
6812         
6813         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6814
6815         * bus/main.c (main): initialize and shut down selinux
6816
6817         * bus/connection.c: store SELinux ID on each connection, to avoid 
6818         repeated getting of the string context and converting it into 
6819         an ID
6820
6821         * bus/bus.c (bus_context_get_policy): new accessor, though it
6822         isn't used
6823         (bus_context_check_security_policy): check whether the security
6824         context of sender connection can send to the security context of
6825         recipient connection
6826
6827         * bus/config-parser.c: add parsing for <selinux> and <associate>
6828         
6829         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6830         implement dbus_connection_get_unix_fd()
6831
6832         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6833         function, used by the selinux stuff
6834         
6835 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6836
6837         * bus/config-loader-libxml.c: complete the implementation of
6838         libxml backend for config file loader. Doesn't work with full OOM
6839         test yet. 
6840         
6841         * configure.in: change error when selecting libxml into a warning.
6842         
6843         * test/data/invalid-config-files: add two non-well-formed XML
6844         files. 
6845         
6846         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6847         
6848         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6849         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6850         be necessary to read all the buffer. (bug #894)
6851
6852         * bus/activation.c (bus_activation_activate_service): fix a
6853         potential assertion failure (bug #896). Small optimization in the
6854         case of auto-activation messages.
6855
6856         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6857         add test case for byte-through-vararg bug (#901). patch by Kimmo
6858         Hämäläinen. 
6859
6860 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6861
6862         * python/dbus.py:
6863         * python/dbus_bindings.pyx.in:
6864         Add dbus.init_gthreads (), allow emit_signal to pass
6865         arguments to the signal.
6866         
6867 2004-07-24  Havoc Pennington  <hp@redhat.com>
6868
6869         * AUTHORS: add some people, not really comprehensively, let me
6870         know if I missed you
6871
6872 2004-07-24  Havoc Pennington  <hp@redhat.com>
6873
6874         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6875         Owen
6876
6877         * test/Makefile.am (DIST_SUBDIRS): here also
6878
6879 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6880
6881         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6882         breaking build on Solaris, reported by Farhad Saberi on the ML.
6883
6884         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6885         va_arg invocation to account for integer promotion in the case of
6886         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6887
6888         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6889         _dbus_list_get_first_link, not _dbus_list_get_first.
6890
6891         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6892
6893         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6894         handler functions so that the asserts in _dbus_object_subtree_unref
6895         do not fail.
6896
6897         * dbus/dbus-transport-unix.c (do_reading):
6898         _dbus_transport_queue_messages return value is of type
6899         dbus_bool_t, not DBusDispatchStatus.
6900         
6901 2004-07-19  David Zeuthen  <david@fubar.dk>
6902
6903         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6904
6905         * bus/dispatch.c:
6906         (check_get_connection_unix_user): Debug says GetProperty; but the
6907         method is called GetConnectionUnixUser
6908         (check_get_connection_unix_process_id): New function
6909         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6910         also call check_get_connection_unix_process_id()
6911         
6912         * bus/driver.c:
6913         (bus_driver_handle_get_connection_unix_process_id): New function,
6914         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6915         interface
6916         
6917         * dbus/dbus-auth.c:
6918         (handle_server_data_external_mech): Set pid from the credentials
6919         obtained from the socket
6920         
6921         * dbus/dbus-connection.c:
6922         (dbus_connection_get_unix_process_id): New function
6923         
6924         * dbus/dbus-connection.h: 
6925         Add prototype for dbus_connection_get_unix_process_id
6926         
6927         * dbus/dbus-transport.c:
6928         (_dbus_transport_get_unix_process_id): New function
6929         
6930         * dbus/dbus-transport.h:
6931         Add prototype for _dbus_transport_get_unix_process_id
6932         
6933 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6934
6935         * dbus/dbus-message.c: Message counter fix, patch by Christian
6936         Hammond <chipx86@gnupdate.org>
6937
6938 2004-07-18  Seth Nickell  <seth@gnome.org>
6939
6940         * python/dbus.py:
6941         * python/dbus_bindings.pyx.in:
6942         * python/tests/test-client.py:
6943
6944         Add dbus.ByteArray and dbus_bindings.ByteArray
6945         types so that byte streams can be passed back.
6946
6947         Give jdahlin the heaps of credit that are so
6948         rightfully his.
6949         
6950 2004-07-12  Seth Nickell  <seth@gnome.org>
6951
6952         * python/dbus.py:
6953
6954         Add message argument to the default object_method_handler
6955         function.
6956         
6957         * python/dbus_bindings.pyx.in:
6958
6959         Automatically return NIL when passed an empty list
6960         (we can't pass back a list since lists are typed
6961         and we don't have any idea what type the the client
6962         intended the list to be... :-( )
6963         
6964 2004-07-10  Seth Nickell  <seth@gnome.org>
6965
6966         * python/examples/Makefile.am:
6967
6968         Fix distcheck breakage caused by new examples.
6969
6970 2004-07-10  Seth Nickell  <seth@gnome.org>
6971
6972         * python/dbus.py:
6973
6974         Add "message" argument to service-side dbus.Object
6975         methods. This will break existing services written
6976         using the python bindings, but will allow extraction
6977         of all the message information (e.g. who its from).
6978
6979         Add improved "object oriented" signal handling/emission.
6980         
6981         * python/examples/example-service.py:
6982
6983         Nix this example.
6984         
6985         * python/examples/example-signal-emitter.py:
6986         * python/examples/example-signal-recipient.py:
6987
6988         Two new examples that show how to emit and receive
6989         signals using the new APIs.
6990         
6991         * python/examples/example-signals.py:
6992         * python/examples/gconf-proxy-service.py:
6993         * python/examples/gconf-proxy-service2.py:
6994
6995         Add "message" argument to service methods.
6996
6997 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6998
6999         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7000         * dbus/bus.c (dbus_bus_get_unix_user)
7001         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7002         method of org.freedesktop.DBus interface.
7003
7004         * bus/dispatch.c: test case
7005
7006 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7007
7008         * python/Makefile.am: switched include directory from glib/ to dbus/
7009         since dbus-glib.h moved
7010  
7011 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7012
7013         * configure.in: prevent building the gcj stuff and libxml loader
7014         since they are broken.
7015
7016 2004-06-20  Havoc Pennington  <hp@redhat.com>
7017
7018         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7019         codes from the dbus error names
7020         
7021         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7022         as dbus/dbus-glib.h and that breakage is now visible due to 
7023         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7024         
7025         * glib/dbus-glib.h: s/gproxy/g_proxy/
7026
7027         * dbus/dbus-shared.h: new header to hold stuff shared with
7028         binding APIs
7029         
7030         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7031         than dbus-errors.h
7032
7033         * glib/dbus-glib.h (dbus_set_g_error): move to
7034         dbus-glib-lowlevel.h
7035
7036         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7037         of stuff to enable this
7038
7039         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7040
7041         * a bunch of other changes with the same basic "separate glib 
7042         bindings from dbus.h" theme
7043         
7044 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7045
7046         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7047
7048         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7049
7050 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7051
7052         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7053         the reply value of the ServiceExists message.
7054
7055 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7056
7057         * python/dbus_bindings.pyx.in: No longer need to parse path
7058         elements and pass them as arrays of strings.  The C API now
7059         accepts plain path strings.
7060         (_build_parsed_path): removed 
7061
7062 2004-06-07  Havoc Pennington  <hp@redhat.com>
7063
7064         * doc/TODO: remove auto-activation item since it's done; sort
7065         items by importance/milestone
7066
7067 2004-06-07  Havoc Pennington  <hp@redhat.com>
7068
7069         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7070         random signature when using REQUIRED_FIELDS (this hack won't work
7071         in the long term)
7072
7073         * dbus/dbus-message.c: change the signature to be a header field,
7074         instead of message->signature special-case string. Incremental
7075         step forward. Then we can fix up code to send the signature in the
7076         message, then fix up code to validate said signature, then fix up
7077         code to not put the typecodes inline, etc.
7078         (load_one_message): don't make up the signature after the fact
7079         (decode_header_data): require signature field for the known
7080         message types
7081
7082         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7083
7084         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7085
7086 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7087
7088         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7089
7090         * mono/Handler.cs: Updated to follow new path argument for
7091         (un-)registering objects.
7092
7093         * mono/example/Makefile.am:
7094         * mono/Makefile.am:
7095         * configure.in: Bumped required version for mono and use new -pkg
7096         syntax for deps
7097
7098 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7099
7100         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7101         registration functions take the path argument as char* instead of
7102         char**.
7103
7104         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7105         split off the path decompostion part of
7106         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7107         warnings. 
7108
7109         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7110         
7111 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7112  
7113         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7114         machine approach.  A state is implemented as a function that
7115         handles incoming events as specified for that state.
7116         
7117         * doc/dbus-specification.xml: Update auth protocol state machine
7118         specification to match implementation.  Remove some leftover
7119         base64 examples.
7120
7121 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7122
7123         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7124         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7125         quiet doxygen.
7126
7127         * Doxyfile.in: remove deprecated options.
7128
7129         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7130         glib/test-thread.h, glib/test-thread-client.c,
7131         glib/test-thread-server.c, glib/test-profile.c,
7132         glib/test-dbus-glib.c: remove these unused files.
7133
7134 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7135
7136         * dbus/dbus-object-tree.c
7137         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7138         non-fallback handlers (bug #684).
7139         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7140         (find_subtree_recurse): report wether the returned subtree is an
7141         exact match or a "fallback" match higher up in the tree.
7142         (object_tree_test_iteration): update test case.
7143
7144 2004-06-01  Seth Nickell  <seth@gnome.org>
7145
7146         * python/dbus_bindings.pyx.in:
7147         * python/tests/test-client.py:
7148
7149         Round off basic type support. Add dicts (yay!), and 
7150         remaining array types.
7151
7152         Make MessageIter more general so it works for dicts too.
7153
7154         Mark all loop variables as C integers.
7155         
7156 2004-05-31  Havoc Pennington  <hp@redhat.com>
7157
7158         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7159         "in" before "out"
7160
7161         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7162
7163         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7164         option that runs the tests, and start filling in some code
7165         including for starters just dumping the interfaces to stdout
7166
7167         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7168
7169         * test/data/valid-introspection-files/lots-of-types.xml: test of
7170         an example introspection file
7171
7172         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7173         "node" (I think...)
7174
7175 2004-05-31  Seth Nickell  <seth@gnome.org>
7176
7177         * python/dbus_bindings.pyx.in:
7178         * python/tests/test-client.py:
7179
7180         Test Suite: 1
7181         Python Bindings: 0
7182
7183         Fix string array memory trashing bug... oops...
7184
7185 2004-05-30  Seth Nickell  <seth@gnome.org>
7186
7187         * python/dbus.py:
7188
7189         Add a nicer-but-less-flexible alternate API for handling 
7190         calls to virtual objects in dbus.ObjectTree.
7191
7192         Screw up the argument order to the dbus.Object constructor
7193         for consistency with dbus.ObjectTree (and to make dbus_methods
7194         optional for future extension)
7195         
7196         * python/examples/Makefile.am:
7197         * python/examples/gconf-proxy-service.py:
7198         * python/examples/gconf-proxy-service2.py:
7199
7200         Alternate implementation of gconf-proxy-service using the
7201         nicer dbus.ObjectTree API.
7202         
7203         * python/examples/example-service.py:
7204         * python/tests/test-server.py
7205
7206         Reverse the argument order to deal with dbus.Object constructor
7207         changes.
7208         
7209 2004-05-30  Seth Nickell  <seth@gnome.org>
7210
7211         * python/examples/example-client.py:
7212         * python/examples/example-service.py:
7213
7214         Take it back. Lists seem to work but they're broken
7215         in the test suite. Make the base examples use
7216         lists (works fine).
7217
7218 2004-05-30  Seth Nickell  <seth@gnome.org>
7219
7220         * python/dbus_bindings.pyx.in:
7221         * python/tests/test-client.py:
7222
7223         Add some more tests and fix errors that crop up.
7224         Unfortunately, currently it seems like marshalling
7225         and unmarshalling of lists is completely broken :-(
7226
7227 2004-05-30  Seth Nickell  <seth@gnome.org>
7228
7229         * python/dbus_bindings.pyx.in:
7230
7231         Add support for ObjectPath type.
7232
7233         * python/dbus.py:
7234
7235         Refactor message handling code to a common function.
7236         
7237         * python/tests/test-client.py:
7238         * python/tests/test-server.py:
7239
7240         Add tests that check to make sure values of all types
7241         can be echoed from a service w/o mangling.
7242         
7243 2004-05-29  Seth Nickell  <seth@gnome.org>
7244
7245         * python/dbus.py:
7246
7247         Add ObjectTree class which allows implementation
7248         of trees of "virtual" objects. Basically the python
7249         wrapper for "register_fallback".
7250         
7251         * python/examples/Makefile.am
7252         * python/examples/gconf-proxy-client.py:
7253         * python/examples/gconf-proxy-service.py:
7254
7255         Implement a simple GConf proxy service that supports
7256         get/set on string and int GConf keys using the ObjectTree.
7257         
7258 2004-05-29  Seth Nickell  <seth@gnome.org>
7259
7260         * python/dbus.py:
7261         * python/examples/example-client.py:
7262         * python/examples/example-service.py:
7263         * python/examples/list-system-services.py:
7264
7265         Add SessionBus, SystemBus and ActivationBus classes
7266         so you don't need to know the special little BUS_TYPE
7267         flag.
7268         
7269 2004-05-29  Havoc Pennington  <hp@redhat.com>
7270
7271         * bus/config-parser.c (process_test_valid_subdir): temporarily
7272         stop testing config parser OOM handling, since expat has issues
7273         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7274
7275         * bus/dbus-daemon-1.1.in: change requested_reply to
7276         send_requested_reply/receive_requested_reply so we can send the
7277         replies, not just receive them.
7278
7279         * bus/config-parser.c: parse the new
7280         send_requested_reply/receive_requested_reply
7281
7282         * bus/policy.c (bus_client_policy_check_can_send): add
7283         requested_reply argument and use it
7284
7285         * bus/bus.c (bus_context_check_security_policy): pass through
7286         requested_reply status to message send check
7287
7288         * bus/system.conf.in: adapt to requested_reply change
7289         
7290 2004-05-28  Havoc Pennington  <hp@redhat.com>
7291
7292         * test/glib/test-service-glib.c (main): remove unused variable
7293
7294         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7295
7296         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7297         from the enum, no longer in use.
7298
7299         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7300         works right.
7301
7302         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7303         whether error_name passed in is a valid error name.
7304
7305 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7306
7307         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7308         OBJECT_PATH and OBJECT_PATH_ARRAY
7309
7310 2004-05-28  Seth Nickell  <seth@gnome.org>
7311
7312         * python/examples/Makefile.am:
7313
7314         Forget to add Makefile.am. Do not pass go.
7315
7316 2004-05-28  Michael Meeks  <michael@ximian.com>
7317
7318         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7319         fix no int64 case.
7320
7321         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7322
7323         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7324         (_dbus_message_iter_get_basic_type_array): impl.
7325         drastically simplify ~all relevant _get methods to use these.
7326         (_dbus_message_iter_append_basic_array),
7327         (dbus_message_iter_append_basic): impl
7328         drastically simplify ~all relevant _append methods to use these.
7329
7330         * dbus/dbus-message-builder.c (parse_basic_type) 
7331         (parse_basic_array, lookup_basic_type): impl.
7332         (_dbus_message_data_load): prune scads of duplicate /
7333         cut & paste coding.
7334
7335         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7336         (_dbus_demarshal_basic_type): implement,
7337         (demarshal_and_validate_len/arg): beef up debug.
7338         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7339
7340 2004-05-27  Seth Nickell  <seth@gnome.org>
7341
7342         * configure.in:
7343         * python/Makefile.am:
7344
7345         Include the example python apps in the tarball.
7346         
7347         * python/examples/list-system-services.py
7348
7349         Add a python new example that fetches the list of services
7350         from the system bus.
7351         
7352 2004-05-27  Seth Nickell  <seth@gnome.org>
7353
7354         * python/dbus.py:
7355         * python/dbus_bindings.pyx.in:
7356
7357         Fix failure to notify that a signal was not handled,
7358         resulted in hung functions.
7359         
7360 2004-05-25  Colin Walters  <walters@redhat.com>
7361
7362         * tools/dbus-monitor.c (main): Monitor all types of messages.
7363
7364 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7365
7366         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7367         which unregisters the object path and disposes the handler.
7368
7369 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7370  
7371         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7372          
7373         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7374         operands to && so we call dbus_message_iter_next () for the last
7375         argument also.
7376
7377 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7378
7379         * dbus/dbus-object-tree.c
7380         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7381         children even if the requested path isn't registered.
7382         (object_tree_test_iteration): test object_tree_list_registered.
7383
7384         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7385         it to 0.
7386         
7387 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7388
7389         * doc/TODO: Remove resolved items.
7390
7391         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7392         field.
7393         
7394         * bus/connection.c (bus_connections_expect_reply): Enforce the
7395         per-connection limit on pending replies.
7396         
7397         Patch from Jon Trowbridge <trow@ximian.com>:
7398  
7399         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7400         up a watch that triggers a config reload when one end of the pipe
7401         becomes readable.
7402         (signal_handler): Instead of doing the config reload in our SIGHUP
7403         handler, just write to the reload pipe and let the associated
7404         watch handle the reload when control returns to the main loop.
7405  
7406         * bus/driver.c (bus_driver_handle_reload_config): Added.
7407         Implements a ReloadConfig method for requesting a configuration
7408         file reload via the bus driver.
7409  
7410 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7411
7412         * HACKING: Updated release instructions concerning the wiki page.
7413
7414 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7415
7416         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7417         filter against auth->allowed_mechs; we only add allowed mechs in
7418         record_mechanisms().
7419  
7420         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7421         ALLOWED_MECHS to auth-script format so we can set the list of
7422         allowed mechanisms.
7423  
7424         * data/auth/client-out-of-mechanisms.auth-script: New test to
7425         check client disconnects when it is out of mechanisms to try.
7426  
7427         * dbus/dbus-auth.c (process_command): Remove check for lines
7428         longer that 1 MB; we only buffer up maximum 16 kB.
7429  
7430         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7431         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7432         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7433         assume there might be unused bytes.
7434  
7435         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7436         client-out-of-mechs, it is handled in process_reject(). Move check
7437         for max failures to send_rejected(), as it's a server-only thing.
7438
7439         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7440         send_auth(), send_data(), send_rejected(), send_error(),
7441         send_ok(), send_begin() and send_cancel().
7442
7443 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7444
7445         Remove base64 encoding, replace with hex encoding. Original patch
7446         from trow@ximian.com, added error handling.
7447
7448         * dbus/dbus-string.c (_dbus_string_base64_encode)
7449         (_dbus_string_base64_decode): Remove.
7450         (_dbus_string_hex_decode): Add end_return argument so we can
7451         distinguish between OOM and invalid hex encoding.
7452         (_dbus_string_test): Remove base64 tests and add test case for
7453         invalid hex.
7454
7455         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7456         Replace base64 with hex.
7457
7458         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7459         for invalid hex encoded data in auth protocol.
7460
7461 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7462
7463         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7464         leak.
7465
7466 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7467
7468         * mono/dbus-sharp.dll.config.in: Added for GAC
7469         * mono/dbus-sharp.snk: Added for GAC
7470         * mono/Assembly.cs.in: Added for GAC
7471         * mono/Makefile.am: Changes for GAC installation        
7472         * configure.in: Added refs for dbus-sharp.dll.config.in and
7473         Assembly.cs.in. More fixes for mono testing
7474         * mono/example/Makefile.am: Changed var to CSC
7475         * Makefile.am: Changed flag name to DBUS_USE_CSC
7476
7477 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7478
7479         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7480         * mono/doc/*: Added documentation framework
7481         * configure.in: Added monodoc check
7482         * README: Added description of mono configure flags
7483
7484 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7485
7486         * doc/dbus-specification.xml: Added a "Required" column to the 
7487         header fields table and changed the "zero or more" verbage in
7488         the above paragraph to read "The header must contain the required 
7489         named header fields and zero or more of the optional named header 
7490         fields".
7491         * test/data/invalid-messages/*.message: Added the required PATH 
7492         named header field to the tests so that they don't fail on 
7493         'Missing path field'
7494
7495 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7496
7497         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7498         the stack by implicitly defining variable and parameter types and
7499         removing the hack of defining C pointers as python objects and later
7500         casting them.
7501
7502 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7503
7504         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7505
7506 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7507
7508         * mono/DBusType/Dict.cs: Handle empty dicts
7509         * mono/DBusType/Array.cs: Handle empty arrays
7510         * mono/Arguments.cs: Handle empty arguments
7511
7512 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7513
7514         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7515         field
7516
7517 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7518
7519         * test/data/valid-messages/standard-*.message: Update message
7520         test scripts to new header field names.
7521
7522 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7523
7524         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7525         overflow to times_we_did_each_thing array which would chop off the
7526         first character of the failure_dir string. Increased the size of
7527         the array to 7 to reflect the number of random mutation functions
7528         we have.
7529
7530 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7531
7532         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7533         unix_server->watch here, it is unreffed in disconnect.
7534         (_dbus_server_new_for_tcp_socket): convert NULL host to
7535         "localhost" here so we don't append NULL to address.
7536         
7537         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7538         various addresses, including tcp with no explicit host.
7539
7540 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7541
7542         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7543         fix incorrect setting of .name_offset in the HeaderField (it was
7544         off by two bytes, positioned right after the name and typecode)
7545
7546         * bus/bus.c (bus_context_new, bus_context_unref): test before
7547         calling dbus_server_free_data_slot and _dbus_user_database_unref
7548         in case of an error.
7549
7550         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7551         by libdbus-gtool.
7552
7553 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7554
7555         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7556         _dbus_poll() instead of select().
7557
7558 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7559
7560         * bus/main.c (signal_handler): Reload the configuration files
7561         on SIGHUP.
7562         (main): Set up our SIGHUP handler.
7563
7564         * bus/bus.c (struct BusContext): Store the config file, user and
7565         fork flag in the BusContext.
7566         (process_config_first_time_only): Added.  Contains the code
7567         (previously in bus_context_new) for setting up the BusContext from
7568         the BusConfigParser that should only be run the first time the
7569         config files are read.
7570         (process_config_every_time): Added.  Contains the code (previously
7571         in bus_context_new) for setting up the BusContext from the
7572         BusConfigParser that should be run every time the config files are
7573         read.
7574         (load_config): Added.  Builds a BusConfigParser from the config
7575         files and passes the resulting structure off to
7576         process_config_first_time_only (assuming this is the first time)
7577         and process_config_every_time.
7578         (bus_context_new): All of the config-related code has been moved
7579         to process_config_first_time_only and process_config_every_time.
7580         Now this function just does the non-config-related initializations
7581         and calls load_config.
7582         (bus_context_reload_config): Added.
7583
7584 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7585
7586         * bus/driver.c (bus_driver_handle_get_service_owner):
7587         implement a GetServiceOwner method.
7588         * doc/dbus-specification.xml: document it.
7589         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7590         
7591         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7592         implement, using the bus GetServiceOwner method.
7593
7594         * test/glib/test-dbus-glib.c:
7595         use dbus_gproxy_new_for_service_owner so that we can receive the
7596         signal. 
7597
7598 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7599
7600         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7601         dbus/dbus-message.c, dbus/dbus-protocol.h
7602         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7603
7604         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7605         dbus/dbus-message.c, dbus/dbus-protocol.h
7606         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7607
7608         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7609         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7610         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7611
7612         * doc/dbus-specification.xml (Header Fields Table):
7613         s/SERVICE/DESTINATION
7614         s/SENDER_SERVICE/SENDER
7615
7616
7617 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7618
7619         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7620         a few seconds.
7621
7622 2004-04-13  Michael Meeks  <michael@ximian.com>
7623
7624         * glib/dbus-gobject.c (handle_introspect): split out
7625         (introspect_properties): this.
7626         (handle_introspect): implement this.
7627
7628         * test/glib/Makefile.am: use the absolute path so the bus
7629         daemon's chdir ("/") doesn't kill us dead.
7630
7631         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7632
7633 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7634
7635         * bus/config-parser.c (struct BusConfigParser): Added
7636         included_files field.
7637         (seen_include): Added.  Checks whether or not a file has already
7638         been included by any parent BusConfigParser.
7639         (bus_config_parser_new): Copy the parent's included_files.
7640         (include_file): Track which files have been included, and fail on
7641         circular inclusions.
7642         (process_test_valid_subdir): Changed printf to report if we are
7643         testing valid or invalid conf files.
7644         (all_are_equiv): Changed printf to be a bit clearer about
7645         what we are actually doing.
7646         (bus_config_parser_test): Test invalid configuration files.
7647
7648 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7649
7650         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7651         argument.  If non-null, the newly-constructed BusConfigParser will
7652         be initialized with the parent's BusLimits instead of the default
7653         values.
7654         (include_file): When including a config file, pass in
7655         the current parser as the parent and then copy the BusLimits
7656         from the included BusConfigParser pack to the current parser.
7657         (process_test_valid_subdir): Renamed from process_test_subdir.
7658         (process_test_equiv_subdir): Added.  Walks through a directory,
7659         descending into each subdirectory and loading the config files
7660         it finds there.  If any subdirectory contains two config files
7661         that don't produce identical BusConfigParser structs, fail.
7662         For now, the BusConfigParser's BusPolicies are not compared.
7663         (bus_config_parser_test): Call both process_test_valid_subdir and
7664         process_test_equiv_subdir.
7665
7666         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7667         argument and pass it along to the call to bus_config_parser_new.
7668         Also made a few small changes to allow this code to compile.
7669
7670         * bus/config-loader-expat.c (bus_config_load): Take a parent
7671         argument and pass it along to the call to bus_config_parser_new.
7672
7673         * bus/bus.c (bus_context_new): Load the config file
7674         with a NULL parent argument.
7675
7676 2004-03-29  Michael Meeks  <michael@ximian.com>
7677
7678         * glib/dbus-gobject.c (introspect_properties): split
7679         out, fix mangled 'while' flow control.
7680         (introspect_signals): implement.
7681         (handle_introspect): update.
7682
7683 2004-03-29  Michael Meeks  <michael@ximian.com>
7684
7685         * glib/dbus-gobject.c (set_object_property): split out / 
7686         re-work, use the property type, and not the message type(!)
7687         (get_object_property): ditto.
7688
7689         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7690         (dbus_gvalue_marshal): make this code re-usable, needed
7691         for signals too, also on both proxy and server side.
7692         Re-write for more efficiency / readability.
7693
7694 2004-03-29  Michael Meeks  <michael@ximian.com>
7695
7696         * dbus/dbus-message.c
7697         (dbus_message_new_error_printf): impl.
7698
7699         * dbus/dbus-connection.c
7700         (dbus_connection_unregister_object_path): fix warning.
7701
7702         * configure.in: fix no-mono-installed situation.
7703
7704 2004-03-27  Havoc Pennington  <hp@redhat.com>
7705
7706         Patch from Timo Teräs:
7707         
7708         * tools/dbus-send.c (main): if --print-reply, assume type is
7709         method call; support boolean type args
7710         
7711         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7712         bunch of memleak and logic bugs
7713         
7714 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7715
7716         * mono/Arguments.cs:
7717         * mono/Introspector.cs:
7718         * mono/Handler.cs:
7719         * mono/InterfaceProxy.cs:
7720         * mono/Message.cs
7721         * mono/ProxyBuilder.cs:
7722         * mono/Service.cs:
7723         Added InterfaceProxy class to avoid building proxies for every
7724         object.
7725
7726         * dbus-message.h:
7727         * dbus-message.c (dbus_message_append_args_valist)
7728         (dbus_message_iter_get_object_path)
7729         (dbus_message_iter_get_object_path_array)
7730         (dbus_message_iter_append_object_path)
7731         (dbus_message_iter_append_object_path_array):
7732         Added object_path iter functions to handle OBJECT_PATH arguments
7733         
7734 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7735
7736         First checkin of mono bindings.
7737         * configure.in:
7738         * Makefile.am:
7739         Build stuff for the bindings
7740         * dbus-sharp.pc.in: Added for pkgconfig
7741         
7742 2004-03-21  Havoc Pennington  <hp@redhat.com>
7743
7744         * test/test-service.c (main): remove debug spew
7745
7746 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7747
7748         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7749         arrays
7750
7751         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7752         (dbus_message_iter_init_array_iterator)
7753         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7754         indicate whether the iterator is empty
7755
7756         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7757         warnings
7758
7759 2004-03-19  Havoc Pennington  <hp@redhat.com>
7760
7761         * NEWS: 0.21 updates
7762
7763         * configure.in: 0.21
7764
7765         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7766         
7767         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7768         you don't need pyrex to make dist
7769
7770         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7771         sources; run moc
7772         
7773 2004-03-18  Richard Hult  <richard@imendio.com>
7774
7775         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7776         (dbus_message_set_auto_activation): Add doxygen docs.
7777
7778 2004-03-16  Richard Hult  <richard@imendio.com>
7779
7780         * bus/activation.c: (bus_activation_service_created),
7781         (bus_activation_send_pending_auto_activation_messages),
7782         (bus_activation_activate_service):
7783         * bus/activation.h:
7784         * bus/dispatch.c: (bus_dispatch),
7785         (check_nonexistent_service_auto_activation),
7786         (check_service_auto_activated),
7787         (check_segfault_service_auto_activation),
7788         (check_existent_service_auto_activation), (bus_dispatch_test):
7789         * bus/driver.c: (bus_driver_handle_activate_service):
7790         * bus/services.c: (bus_registry_acquire_service):
7791         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7792         (dbus_message_get_auto_activation):
7793         * dbus/dbus-message.h:
7794         * dbus/dbus-protocol.h: Implement auto-activation.
7795         
7796         * doc/dbus-specification.xml: Add auto-activation to the spec.
7797
7798 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7799
7800         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7801         fix a bug with CUSTOM types.
7802
7803         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7804         a unit test for this bug (used to fail).
7805
7806 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7807
7808         * bus/activation.c:
7809         (babysitter_watch_callback): notify all pending activations waiting for
7810           the same exec that the activation failed.
7811         (bus_activation_activate_service): shortcut the activation if we 
7812           already waiting for the same executable to start up.
7813
7814 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7815
7816         * bus/activation.c: 
7817         - Added service file reloading. 
7818           Each service files directory is kept in an hash table in 
7819           BusActivation and each BusActivationEntry knows what .service-file it
7820           was read from. So when you try to activate a service the bus will 
7821           check if it's been updated, removed or if new .service-files has 
7822           been installed.
7823         - Test code at the bottom for the service file reloading.
7824         * bus/test-main.c: (main):
7825         * bus/test.h:
7826         - added service reloading test.
7827         * dbus/dbus-sysdeps.c: 
7828         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7829
7830 2004-03-08  Michael Meeks  <michael@ximian.com>
7831
7832         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7833         bail immediately if disconnected, to avoid busy loop.
7834
7835         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7836         cleanup cut/paste/inefficiency.
7837
7838 2004-03-01  David Zeuthen  <david@fubar.dk>
7839
7840         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7841         bug where args were used twice. This bug resulted in a segfault
7842         on a Debian/PPC system when starting the messagebus daemon. Include
7843         dbus-sysdeps.h for DBUS_VA_COPY
7844
7845         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7846
7847         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7848         appropriate va_copy implementation. From GLib
7849         
7850 2004-02-24  Joe Shaw  <joe@ximian.com>
7851
7852         * bus/services.c (bus_registry_acquire_service): We need to pass
7853         in the service name to dbus_set_error() to prevent a crash.
7854
7855 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7856
7857         * AUTHORS: Reveal my True identity.
7858
7859 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7860
7861         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7862         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7863
7864 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7865
7866         * doc/TODO: Added not about better error check of configuration files.
7867
7868 2003-12-02  Richard Hult  <richard@imendio.com>
7869
7870         * Update AFL version to 2.0 throughout the source files to reflect
7871         the update that was done a while ago.
7872
7873 2003-12-02  Richard Hult  <richard@imendio.com>
7874
7875         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7876         wrote_dict_key to FALSE on the iter that the dict is appended to,
7877         just like when appending other types. Fixes a bug where a dict
7878         couldn't be put inside a dict.
7879         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7880         (message_iter_test, _dbus_message_test): Add test case for dict
7881         inside dict.
7882
7883 2003-12-01  David Zeuthen  <david@fubar.dk>
7884
7885         * python/dbus.py: Add the actual message when calling the reciever
7886         of a signal such that parameters can be inspected. Add the method
7887         remove_signal_receiver
7888         
7889 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7890
7891         * bus/*.[ch]:
7892         * dbus/*.[ch]:
7893         * glib/*.[ch]: Made ref functions return the pointer
7894
7895 2003-11-25  Zack Rusin  <zack@kde.org>
7896
7897         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7898
7899         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7900         wrappers,
7901
7902         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7903         the Integrator and to better fit with the server,
7904
7905 2003-11-24  Zack Rusin  <zack@kde.org>
7906
7907         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7908         the integrator handles it now
7909
7910         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7911         since QTimer wasn't really meant to be used the way DBusTimeout is
7912
7913 2003-11-24  Zack Rusin  <zack@kde.org>
7914
7915         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7916         Integrator class which integrates D-BUS with the Qt event loop,
7917
7918         * qt/connection.h, qt/connection.cpp: Move all the code which
7919         was dealing with D-BUS integration to the Integrator class,
7920         and start using Integrator,
7921
7922 2003-11-23  Zack Rusin  <zack@kde.org>
7923
7924         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7925         wrapper
7926
7927         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7928         switching namespaces to DBusQt, reworking the class,
7929
7930         * Makefile.cvs: switching dependencies so that it matches KDE 
7931         schematics,
7932         
7933         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7934         the library
7935
7936 2003-11-19  Havoc Pennington  <hp@redhat.com>
7937
7938         * NEWS: update
7939
7940         * configure.in: bump version to 0.20
7941
7942         * configure.in (have_qt): add yet another place to look for qt
7943         (someone hand trolltech a .pc file...)
7944
7945 2003-11-01  Havoc Pennington  <hp@redhat.com>
7946
7947         * doc/dbus-specification.xml: add state machine docs on the auth
7948         protocol; just a first draft, I'm sure it's wrong.      
7949
7950 2003-10-28  David Zeuthen  <david@fubar.dk>
7951
7952         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7953         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7954         
7955 2003-10-28  Havoc Pennington  <hp@redhat.com>
7956
7957         * dbus/dbus-message.c (get_next_field): delete unused function
7958
7959 2003-10-28  Havoc Pennington  <hp@redhat.com>
7960
7961         * bus/expirelist.c (do_expiration_with_current_time): detect
7962         failure of the expire_func due to OOM
7963
7964         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7965
7966         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7967         NoReply error that's now created by the bus when the service exits
7968
7969 2003-10-28  Havoc Pennington  <hp@redhat.com>
7970
7971         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7972         tests for set_path, set_interface, set_member, etc.
7973
7974         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7975
7976         * dbus/dbus-message.c (set_string_field): always just delete and
7977         re-append the field; accept NULL for deletion
7978         (re_align_fields_recurse): reimplement
7979         
7980 2003-10-26  Havoc Pennington  <hp@redhat.com>
7981
7982         * dbus/dbus-connection.c: fix docs to properly describe the
7983         disconnected message
7984         (_dbus_connection_notify_disconnected): remove this function; 
7985         we can't synchronously add the disconnected message, we have to 
7986         do it after we've queued any remaining real messages
7987         (_dbus_connection_get_dispatch_status_unlocked): queue the
7988         disconnect message only if the transport has finished queueing all
7989         its real messages and is disconnected.
7990         (dbus_connection_disconnect): update the dispatch status here
7991
7992 2003-10-22  Havoc Pennington  <hp@redhat.com>
7993
7994         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7995
7996         * bus/connection.c (bus_transaction_send_from_driver): set the
7997         destination to the connection's base service
7998
7999 2003-10-20  Havoc Pennington  <hp@redhat.com>
8000
8001         hmm, make check is currently not passing.
8002         
8003         * doc/dbus-specification.xml: add requirement that custom type
8004         names follow the same rules as interface names.
8005
8006         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8007         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8008         'map'
8009
8010         * doc/dbus-specification.xml: update type codes to match
8011         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8012         CUSTOM. Add type OBJECT_PATH to the spec.
8013
8014 2003-10-17  Havoc Pennington  <hp@redhat.com>
8015
8016         * bus/driver.c (create_unique_client_name): use "." as separator
8017         in base service names instead of '-'
8018
8019         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8020         byte at the end of the string
8021
8022         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8023         optimization macros since string validation seems to be a slow
8024         point.
8025         
8026         * doc/dbus-specification.xml: restrict valid
8027         service/interface/member/error names. Add test suite code for the
8028         name validation.
8029
8030         * dbus/dbus-string.c: limit service/interface/member/error names 
8031         to [0-9][A-Z][a-z]_
8032
8033         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8034         format arg to verbose spew
8035
8036         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8037         memory, return instead of g_error
8038
8039         * test/test-service.c (path_message_func): support emitting a
8040         signal on request
8041
8042         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8043         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8044         assuming the activation bus was the session bus so that services
8045         started manually will still register.
8046         (init_connections_unlocked): fix so that in OOM situation we get
8047         the same semantics when retrying the function
8048         
8049         * test/test-service.c (main): change to use path registration, to
8050         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8051         than DBUS_BUS_SESSION
8052
8053 2003-10-16  Havoc Pennington  <hp@redhat.com>
8054
8055         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8056
8057         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8058         coverage of the tests
8059         (coverage-report.txt): don't move the .da and .bbg files around
8060
8061 2003-10-16  Havoc Pennington  <hp@redhat.com>
8062
8063         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8064         to put there
8065
8066 2003-10-16  Havoc Pennington  <hp@redhat.com>
8067
8068         * bus/connection.c (bus_pending_reply_expired): either cancel or
8069         execute, not both
8070         (bus_connections_check_reply): use unlink, not remove_link, as we
8071         don't want to free the link; fixes double free mess
8072
8073         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8074         where no reply was received
8075
8076         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8077         fix a refcount leak
8078
8079         * bus/signals.c (match_rule_matches): add special cases for the
8080         bus driver, so you can match on sender/destination for it.
8081
8082         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8083         DBUS_PRINT_BACKTRACE is set
8084
8085         * dbus/dbus-internals.c: add pid to assertion failure messages
8086
8087         * dbus/dbus-connection.c: add message type code to the debug spew
8088
8089         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8090         sender=foo not service=foo
8091
8092         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8093         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8094         DBUS_ACTIVATION_ADDRESS instead
8095
8096         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8097         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8098
8099         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8100         context struct
8101
8102         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8103         (dbus_message_iter_get_object_path_array): new function (half
8104         finished, disabled for the moment)
8105         
8106         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8107         DBUS_MESSAGE_TYPE_ERROR
8108
8109         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8110         avoid redirecting stderr to /dev/null
8111         (babysit): close stdin if not doing the "exit_with_session" thing
8112
8113         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8114         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8115         stdout/stdin, so things don't get confused
8116         
8117         * bus/system.conf.in: fix to allow replies, I modified .conf
8118         instead of .conf.in again.
8119
8120 2003-10-14  David Zeuthen  <david@fubar.dk>
8121
8122         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8123         argtype to arg_type when raising unknown arg type exception.
8124         Changed type list to reflect the changes in dbus-protocol.h so 
8125         the bindings actually work.
8126
8127 2003-10-14  Havoc Pennington  <hp@redhat.com>
8128
8129         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8130         to have a bug keeping it from outputting the .da files sometimes
8131         (string_get_string): don't append garbage nul bytes to the string.
8132
8133 2003-10-15  Seth Nickell  <seth@gnome.org>
8134
8135         * python/Makefile.am:
8136
8137         Include dbus_h_wrapper.h in the dist tarball.
8138
8139 2003-10-14  Havoc Pennington  <hp@redhat.com>
8140
8141         * bus/bus.c (bus_context_check_security_policy): revamp this to
8142         work more sanely with new policy-based requested reply setup
8143
8144         * bus/connection.c (bus_transaction_send_from_driver): set bus
8145         driver messages as no reply
8146
8147         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8148         requested_reply attribute on allow/deny rules
8149
8150         * bus/system.conf: add <allow requested_reply="true"/>
8151
8152         * bus/driver.c (bus_driver_handle_message): fix check for replies
8153         sent to the bus driver, which was backward. How did this ever work
8154         at all though? I think I'm missing something.
8155
8156         * dbus/dbus-message.c (decode_header_data): require error and
8157         method return messages to have a reply serial field to be valid
8158         (_dbus_message_loader_queue_messages): break up this function;
8159         validate that reply serial and plain serial are nonzero; 
8160         clean up the OOM/error handling.
8161         (get_uint_field): don't return -1 from this
8162         (dbus_message_create_header): fix signed/unsigned bug
8163
8164         * bus/connection.c (bus_connections_expect_reply): save serial of
8165         the incoming message, not reply serial
8166
8167 2003-10-14  Havoc Pennington  <hp@redhat.com>
8168
8169         * bus/connection.c: implement pending reply tracking using
8170         BusExpireList
8171
8172         * bus/bus.c (bus_context_check_security_policy): verify that a
8173         reply is pending in order to allow a reply to be sent. Deny 
8174         messages of unknown type.
8175
8176         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8177
8178         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8179         (bus_context_get_reply_timeout): new
8180
8181 2003-10-13  Seth Nickell  <seth@gnome.org>
8182
8183         * python/Makefile.am:
8184
8185         Pass "make distcheck": remove a couple files from DIST_FILES
8186         that weren't included in the final version.
8187
8188 2003-10-12  Havoc Pennington  <hp@pobox.com>
8189
8190         Added test code that 1) starts an actual bus daemon and 2) uses
8191         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8192         more testing possible, but this is the basic framework.
8193         
8194         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8195         empty proxy lists from the proxy list hash
8196
8197         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8198         couple of return_if_fail checks
8199
8200         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8201         to allocate, so everything is cleared to NULL as it should be.
8202
8203         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8204         source as data to dbus_connection_set_timeout_functions() as the 
8205         timeout functions expected
8206
8207         * test/glib/run-test.sh: add a little script to start up a message
8208         bus and run tests using it
8209
8210         * tools/dbus-launch.1: updates
8211
8212         * tools/dbus-launch.c (main): add --config-file option
8213
8214         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8215         that could never be reached.
8216
8217         * dbus/dbus-message.c (dbus_message_new_method_return) 
8218         (dbus_message_new_error, dbus_message_new_signal): set the
8219         no-reply-expected flag on all these. Redundant, but may
8220         as well be consistent.
8221
8222 2003-10-11  Havoc Pennington  <hp@pobox.com>
8223
8224         * test/decode-gcov.c (function_solve_graph): make broken block
8225         graph a nonfatal error since it seems to be broken. Need to debug
8226         this.
8227
8228         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8229         can't just check type > INVALID < LAST anymore
8230
8231         * dbus/dbus-message.c (dbus_message_get_signature): new function
8232         (dbus_message_has_signature): new function
8233         (struct DBusMessage): add signature field (right now it isn't sent
8234         over the wire, just generated on the fly)
8235         (dbus_message_copy): copy the signature, and init strings to
8236         proper length to avoid some reallocs
8237         (dbus_message_iter_init_array_iterator): return void, since it
8238         can't fail
8239         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8240         (_dbus_message_loader_queue_messages): add silly temporary hack to
8241         fill in message->signature on load
8242
8243         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8244         characters, so they are relatively human-readable.
8245
8246 2003-10-11  Havoc Pennington  <hp@pobox.com>
8247
8248         * dbus/dbus-message.c (_dbus_message_test): add more test
8249         coverage, but #if 0 for now since they uncover a bug 
8250         not fixed yet; I think in re_align_field_recurse()
8251         (re_align_field_recurse): add FIXME about broken assertion
8252
8253         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8254
8255         * bus/connection.c: share a couple code bits with expirelist.c
8256
8257         * bus/expirelist.h, bus/expirelist.c: implement a generic
8258         expire-items-after-N-seconds facility, was going to share between
8259         expiring connections and replies, decided not to use for expiring
8260         connections for now.
8261
8262         * COPYING: include AFL 2.0 (still need to change all the file headers)
8263
8264 2003-10-09  Havoc Pennington  <hp@redhat.com>
8265
8266         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8267         gcc 3.3. Not that we do anything about it yet.
8268
8269         * bus/signals.c (bus_match_rule_parse): impose max length on the
8270         match rule text
8271
8272         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8273
8274 2003-10-09  Havoc Pennington  <hp@redhat.com>
8275
8276         Make matching rules theoretically work (add parser).
8277         
8278         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8279         the case where destination is explicitly specified as bus driver
8280         and someone else is eavesdropping.
8281         
8282         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8283         definition of eavesdropping and assertion
8284
8285         * tools/dbus-send.c (main): use dbus_message_type_from_string
8286
8287         * bus/signals.c (bus_match_rule_parse): implement
8288
8289         * dbus/dbus-message.c (dbus_message_type_from_string): new
8290
8291         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8292
8293 2003-10-02  Havoc Pennington  <hp@pobox.com>
8294
8295         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8296         dbus_gproxy_oneway_call
8297
8298         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8299         (dbus_server_setup_with_g_main): fix to allow calling them more
8300         than once on the same args
8301         (dbus_bus_get_with_g_main): new function
8302
8303 2003-10-02  Havoc Pennington  <hp@redhat.com>
8304
8305         * doc/dbus-tutorial.xml: write some stuff
8306
8307 2003-09-29  Havoc Pennington  <hp@pobox.com>
8308
8309         * configure.in: split checks for Doxygen from XML docs, check for
8310         xmlto
8311
8312         * doc/Makefile.am: XML-ify all the docs, and add a blank
8313         dbus-tutorial.xml
8314
8315 2003-09-29  Havoc Pennington  <hp@pobox.com>
8316
8317         * Merge dbus-object-names branch. To see the entire patch 
8318         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8319         it's huuuuge though.
8320         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8321         
8322 2003-09-28  Havoc Pennington  <hp@pobox.com>
8323
8324         * HACKING: update to reflect new server
8325
8326 2003-09-26  Seth Nickell  <seth@gnome.org>
8327
8328         * python/dbus.py:
8329         * python/examples/example-signals.py:
8330
8331         Start implementing some notions of signals. The API
8332         is really terrible, but they sort of work (with the
8333         exception of being able to filter by service, and to
8334         transmit signals *as* a particular service). Need to
8335         figure out how to make messages come from the service
8336         we registered :-(
8337         
8338         * python/dbus_bindings.pyx.in:
8339
8340         Removed duplicate message_handler callbacks.
8341         
8342 2003-09-25  Havoc Pennington  <hp@redhat.com>
8343
8344         * bus/session.conf.in: fix my mess
8345
8346 2003-09-25  Havoc Pennington  <hp@pobox.com>
8347
8348         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8349
8350 2003-09-25  Seth Nickell  <seth@gnome.org>
8351
8352         * python/examples/example-service.py:
8353
8354         Johan notices complete wrong code in example-service, but
8355         completely wrong in a way that works exactly the same (!).
8356         Johan is confused, how could this possibly work? Example
8357         code fails to serve purpose of making things clear.
8358         Seth fixes.
8359
8360 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8361
8362         * doc/dbus-specification.sgml: don't require header fields
8363         to be 4-byte aligned and specify that fields should be
8364         distinguished from padding by the fact that zero is not
8365         a valid field name.
8366         
8367         * doc/TODO: remove re-alignment item and add item to doc
8368         the OBJECT_PATH type.
8369         
8370         * dbus/dbus-message.c:
8371         (HeaderField): rename the original member to value_offset
8372         and introduce a name_offset member to keep track of where
8373         the field actually begins.
8374         (adjust_field_offsets): remove.
8375         (append_int_field), (append_uint_field),
8376         (append_string_field): don't align the start of the header
8377         field to a 4-byte boundary.
8378         (get_next_field): impl finding the next marhsalled field
8379         after a given field.
8380         (re_align_field_recurse): impl re-aligning a number of
8381         already marshalled fields.
8382         (delete_field): impl deleting a field of any type and
8383         re-aligning any following fields.
8384         (delete_int_or_uint_field), (delete_string_field): remove.
8385         (set_int_field), (set_uint_field): no need to re-check
8386         that we have the correct type for the field.
8387         (set_string_field): ditto and impl re-aligning any
8388         following fields.
8389         (decode_header_data): update to take into account that
8390         the fields aren't 4-byte aligned any more and the new
8391         way to distinguish padding from header fields. Also,
8392         don't exit when there is too much header padding.
8393         (process_test_subdir): print the directory.
8394         (_dbus_message_test): add test to make sure a following
8395         field is re-aligned correctly after field deletion.
8396         
8397         * dbus/dbus-string.[ch]:
8398         (_dbus_string_insert_bytes): rename from insert_byte and
8399         allow the insert of multiple bytes.
8400         (_dbus_string_test): test inserting multiple bytes.
8401
8402         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8403         warning note to docs about having to re-align any
8404         marshalled values following the string.
8405         
8406         * dbus/dbus-message-builder.c:
8407         (append_string_field), (_dbus_message_data_load):
8408         don't align the header field.
8409         
8410         * dbus/dbus-auth.c: (process_test_subdir): print the
8411         directory.
8412         
8413         * test/break-loader.c: (randomly_add_one_byte): upd. for
8414         insert_byte change.
8415         
8416         * test/data/invalid-messages/bad-header-field-alignment.message:
8417         new test case.
8418         
8419         * test/data/valid-messages/unknown-header-field.message: shove
8420         a dict in the unknown field.
8421
8422 2003-09-25  Seth Nickell  <seth@gnome.org>
8423
8424         * python/dbus.py:
8425         * python/dbus_bindings.pyx.in:
8426
8427         Handle return values.
8428         
8429         * python/examples/example-client.py:
8430         * python/examples/example-service.py:
8431
8432         Pass back return values from the service to the client.
8433         
8434 2003-09-24  Seth Nickell  <seth@gnome.org>
8435
8436         * python/dbus.py:
8437
8438         Connect Object methods (when you are sharing an object) up... pass
8439         in a list of methods to be shared. Sharing all the methods just
8440         worked out too weird. You can now create nice Services over the
8441         DBus in Python. :-)
8442         
8443         * python/dbus_bindings.pyx.in:
8444
8445         Keep references to user_data tuples passed into C functions so 
8446         Python doesn't garbage collect on us.
8447
8448         Implement MethodReturn and Error subclasses of Message for creating
8449         DBusMessage's of those types.
8450         
8451         * python/examples/example-client.py:
8452         * python/examples/example-service.py:
8453
8454         Simple example code showing both how create DBus services and objects,
8455         and how to use them.
8456
8457 2003-09-23  Havoc Pennington  <hp@pobox.com>
8458
8459         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8460
8461 2003-09-23  Havoc Pennington  <hp@redhat.com>
8462
8463         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8464         (dbus_gproxy_disconnect_signal): implement
8465         (dbus_gproxy_manager_remove_signal_match): implement
8466         (dbus_gproxy_manager_add_signal_match): implement
8467         (dbus_gproxy_oneway_call): implement
8468
8469 2003-09-23  Havoc Pennington  <hp@pobox.com>
8470
8471         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8472         subclass. This means dropping the transparent thread safety of the
8473         proxy; you now need a separate proxy per-thread, or your own
8474         locking on the proxy. Probably right anyway.
8475         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8476
8477 2003-09-22  Havoc Pennington  <hp@redhat.com>
8478
8479         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8480
8481 2003-09-21  Seth Nickell  <seth@gnome.org>
8482
8483         First checkin of the Python bindings.
8484         
8485         * python/.cvsignore:
8486         * python/Makefile.am:
8487         * python/dbus_bindings.pyx.in:
8488         * python/dbus_h_wrapper.h:
8489
8490         Pieces for Pyrex to operate on, building a dbus_bindings.so
8491         python module for low-level access to the DBus APIs.
8492         
8493         * python/dbus.py:
8494
8495         High-level Python module for accessing DBus objects.
8496
8497         * configure.in:
8498         * Makefile.am:
8499
8500         Build stuff for the python bindings.
8501
8502         * acinclude.m4:
8503
8504         Extra macro needed for finding the Python C header files.
8505
8506 2003-09-21  Havoc Pennington  <hp@pobox.com>
8507
8508         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8509         implementing the proxy manager, didn't get very far.
8510
8511         * dbus/dbus-bus.c (dbus_bus_add_match): new
8512         (dbus_bus_remove_match): new
8513
8514         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8515         path_name argument; adjust the other not-yet-implemented 
8516         gproxy constructors to be what I think they should be.
8517
8518 2003-09-21  Havoc Pennington  <hp@pobox.com>
8519
8520         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8521         by default for message bus connections.
8522
8523         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8524         exit_on_disconnect flag is set and we process the disconnected
8525         signal.
8526         (dbus_connection_set_exit_on_disconnect): new function
8527
8528 2003-09-21  Havoc Pennington  <hp@pobox.com>
8529
8530         Get matching rules mostly working in the bus; only actually
8531         parsing the rule text remains. However, the client side of
8532         "signal connections" hasn't been started, this patch is only the
8533         bus side.
8534         
8535         * dbus/dispatch.c: fix for the matching rules changes
8536         
8537         * bus/driver.c (bus_driver_handle_remove_match)
8538         (bus_driver_handle_add_match): send an ack reply from these
8539         method calls
8540
8541         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8542         arguments, reported by Seth Nickell
8543
8544         * bus/config-parser.c (append_rule_from_element): support
8545         eavesdrop=true|false attribute on policies so match rules 
8546         can be prevented from snooping on the system bus.
8547
8548         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8549         and "destination" in attribute names; fix some docs bugs; 
8550         add eavesdrop=true|false attribute
8551
8552         * bus/driver.c (bus_driver_handle_add_match)
8553         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8554         messages
8555
8556         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8557         rid of broadcast service concept, signals are just always broadcast
8558
8559         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8560         mostly implement matching rules stuff (currently only exposed as signal
8561         connections)
8562
8563 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8564
8565         * doc/dbus-specification.sgml: Change the header field name
8566         to be an enum and update the rest of the spec to reference
8567         the fields using the conventinal name.
8568
8569         * dbus/dbus-protocol.h: update to reflect the spec.
8570
8571         * doc/TODO: add item to remove the 4 byte alignment requirement.
8572         
8573         * dbus/dbus-message.c: Remove the code to generalise the
8574         header/body length and serial number header fields as named
8575         header fields so we can reference field names using the 
8576         protocol values.
8577         (append_int_field), (append_uint_field), (append_string_field):
8578         Append the field name as a byte rather than four chars.
8579         (delete_int_or_uint_field), (delete_string_field): reflect the
8580         fact that the field name and typecode now occupy 4 bytes instead
8581         of 8.
8582         (decode_string_field), (decode_header_data): update to reflect
8583         protocol changes and move the field specific encoding from
8584         decode_string_field() back into decode_header_data().
8585         
8586         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8587         Add utility to aid debugging.
8588         
8589         * dbus/dbus-message-builder.c:
8590         (append_string_field), (_dbus_message_data_load): Update to
8591         reflect protocol changes; Change the FIELD_NAME directive
8592         to HEADER_FIELD and allow it to take the field's conventional
8593         name rather than the actual value.
8594         
8595         * test/data/*/*.message: Update to use HEADER_FIELD instead
8596         of FIELD_NAME; Always align the header on an 8 byte boundary
8597         *before* updating the header length.
8598
8599 2003-09-15  Havoc Pennington  <hp@pobox.com>
8600
8601         * dbus/dbus-pending-call.c: add the get/set object data
8602         boilerplate as for DBusConnection, etc. Use generic object data
8603         for the notify callback.
8604
8605         * glib/dbus-gparser.c (parse_node): parse child nodes
8606
8607         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8608         
8609         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8610         contain functions shared between the convenience lib and the
8611         installed lib
8612
8613         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8614         -export-symbols-regex to the GLib library
8615
8616         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8617         fix the locking in here, and add a default handler for
8618         Introspect() that just returns sub-nodes.
8619
8620 2003-09-14  Havoc Pennington  <hp@pobox.com>
8621
8622         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8623         rather than gfoo consistent
8624
8625         * glib/dbus-gproxy.h: delete for now, move contents to
8626         dbus-glib.h, because the include files don't work right since we
8627         aren't in the dbus/ subdir.
8628         
8629         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8630         (dbus_gproxy_end_call): finish
8631         (dbus_gproxy_begin_call): finish
8632
8633         * glib/dbus-gmain.c (dbus_set_g_error): new
8634
8635         * glib/dbus-gobject.c (handle_introspect): include information
8636         about child nodes in the introspection
8637
8638         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8639         function to help in implementation of introspection
8640
8641         * dbus/dbus-object-tree.c
8642         (_dbus_object_tree_list_registered_and_unlock): new function
8643
8644 2003-09-12  Havoc Pennington  <hp@pobox.com>
8645
8646         * glib/dbus-gidl.h: add common base class for all the foo_info
8647         types
8648
8649         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8650         similar to kdcop
8651
8652         * test/Makefile.am: try test srcdir -ef . in addition to test
8653         srcdir = ., one of them should work (yeah lame)
8654         
8655         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8656         library
8657         
8658         * glib/dbus-gparser.h: make description_load routines return
8659         NodeInfo* not Parser*
8660
8661         * Makefile.am (SUBDIRS): build test dir after all library dirs
8662
8663         * configure.in: add GTK+ detection
8664
8665 2003-09-07  Havoc Pennington  <hp@pobox.com>
8666
8667         * Make Doxygen contented.
8668
8669 2003-09-07  Havoc Pennington  <hp@pobox.com>
8670
8671         * doc/dbus-specification.sgml: more updates
8672
8673 2003-09-06  Havoc Pennington  <hp@pobox.com>
8674
8675         * doc/dbus-specification.sgml: partial updates
8676
8677         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8678         zillionth time; hopefully I edited the right file this time.
8679
8680         * bus/config-parser.c (append_rule_from_element): support
8681         send_type, send_path, receive_type, receive_path
8682
8683         * bus/policy.c: add message type and path to the list of things
8684         that can be "firewalled"
8685
8686 2003-09-06  Havoc Pennington  <hp@pobox.com>
8687
8688         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8689         (dbus_connection_register_object_path): make this not handle
8690         messages to paths below the given path
8691
8692 2003-09-03  Havoc Pennington  <hp@pobox.com>
8693
8694         * test/glib/Makefile.am: add this with random glib-linked test
8695         programs
8696
8697         * glib/Makefile.am: remove the random test programs from here,
8698         leave only the unit tests
8699
8700         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8701         uscore/javacaps conversion, and fix     
8702         (get_object_property, set_object_property): change to .NET
8703         convention for mapping props to methods, set_FooBar/get_FooBar, 
8704         since one language has such a convention we may as well copy it. 
8705         Plus real methods in either getFooBar or get_foo_bar style won't 
8706         collide with this convention.
8707
8708 2003-09-01  Havoc Pennington  <hp@pobox.com>
8709
8710         * glib/dbus-gparser.c: implement
8711
8712         * glib/dbus-gobject.c: start implementing skeletons support
8713
8714         * configure.in: when disabling checks/assert, also define
8715         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8716
8717 2003-09-01  Havoc Pennington  <hp@pobox.com>
8718
8719         * glib/Makefile.am: rearrange a bunch of files and get "make
8720         check" framework set up
8721
8722 2003-08-31  Havoc Pennington  <hp@pobox.com>
8723
8724         * fix build with --disable-tests
8725
8726 2003-08-30  Havoc Pennington  <hp@pobox.com>
8727
8728         * dbus/dbus-connection.c: purge DBusMessageHandler
8729
8730         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8731         use callbacks everywhere
8732
8733 2003-08-30  Havoc Pennington  <hp@pobox.com>
8734
8735         * test/data/valid-config-files/system.d/test.conf: change to 
8736         root for the user so warnings don't get printed
8737
8738         * dbus/dbus-message.c: add dbus_message_get_path,
8739         dbus_message_set_path
8740         
8741         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8742         dispatching to a path
8743
8744         * dbus/dbus-string.c (_dbus_string_validate_path): add
8745
8746         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8747         (_dbus_marshal_object_path): implement
8748
8749         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8750         to contain the path to the target object
8751         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8752         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8753
8754 2003-08-30  Havoc Pennington  <hp@pobox.com>
8755
8756         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8757
8758 2003-08-29  Havoc Pennington  <hp@pobox.com>
8759
8760         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8761         registered
8762         (struct DBusObjectSubtree): shrink this
8763         a lot, since we may have a lot of them
8764         (_dbus_object_tree_free_all_unlocked): implement
8765         (_dbus_object_tree_dispatch_and_unlock): implement
8766
8767 2003-08-29  Havoc Pennington  <hp@pobox.com>
8768
8769         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8770
8771 2003-08-28  Havoc Pennington  <hp@pobox.com>
8772
8773         purge DBusObjectID
8774         
8775         * dbus/dbus-connection.c: port to no ObjectID, create a
8776         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8777
8778         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8779         everything except UnregisterFunction and MessageFunction
8780         
8781         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8782         add DBUS_TYPE_OBJECT_PATH
8783         
8784         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8785         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8786         path-based object IDs
8787
8788 2003-08-25  Havoc Pennington  <hp@pobox.com>
8789
8790         Just noticed that dbus_message_test is hosed, I wonder when I
8791         broke that. I thought make check was passing earlier...
8792         
8793         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8794         container tree, will replace most of dbus-object-registry
8795
8796         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8797         screwup
8798
8799 2003-08-19  Havoc Pennington  <hp@pobox.com>
8800
8801         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8802         (dbus_message_is_error): fix this function
8803
8804         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8805         match
8806
8807         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8808         reflect clarified man page
8809         (bus_client_policy_check_can_send): ditto
8810         
8811         * bus/session.conf.in: fixup
8812
8813         * bus/system.conf.in: fixup
8814
8815 2003-08-18  Havoc Pennington  <hp@redhat.com>
8816
8817         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8818
8819         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8820         dumb bug created earlier (wrong order of args to
8821         decode_header_data())
8822         
8823         * tools/dbus-send.c: port
8824
8825         * tools/dbus-print-message.c (print_message): port
8826
8827         * test/data/*messages: port all messages over
8828         
8829         * dbus/dbus-message-builder.c: support including 
8830         message type
8831         
8832         * bus/driver.c: port over
8833         
8834         * bus/dispatch.c: port over to new stuff
8835
8836         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8837         rename disconnect signal to "Disconnected"
8838
8839 2003-08-17  Havoc Pennington  <hp@pobox.com>
8840
8841         This doesn't compile yet, but syncing up so I can hack on it from
8842         work. What are branches for if not broken code? ;-)
8843         
8844         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8845         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8846         DBUS_HEADER_FIELD_ERROR_NAME
8847         
8848         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8849         for the interface+member pairs
8850         (string_hash): change to use g_str_hash algorithm
8851         (find_direct_function, find_string_function): refactor these to
8852         share most code.
8853         
8854         * dbus/dbus-message.c: port all of this over to support 
8855         interface/member fields instead of name field
8856
8857         * dbus/dbus-object-registry.c: port over
8858         
8859         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8860         from _dbus_string_validate_name
8861
8862         * bus/dbus-daemon-1.1: change file format for the 
8863         <deny>/<allow> stuff to match new message naming scheme
8864
8865         * bus/policy.c: port over
8866
8867         * bus/config-parser.c: parse new format
8868         
8869 2003-08-16  Havoc Pennington  <hp@pobox.com>
8870
8871         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8872         broken assertion
8873
8874         * glib/dbus-gproxy.c: some hacking
8875
8876 2003-08-15  Havoc Pennington  <hp@redhat.com>
8877
8878         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8879
8880         * dbus/dbus-connection.c
8881         (dbus_connection_send_with_reply_and_block): factor out internals;
8882         change to convert any error replies to DBusError instead of 
8883         returning them as a message
8884
8885 2003-08-15  Havoc Pennington  <hp@pobox.com>
8886
8887         * dbus/dbus-connection.c, 
8888         dbus/dbus-pending-call.c: Finish the pending call stuff
8889
8890 2003-08-14  Havoc Pennington  <hp@redhat.com>
8891
8892         * dbus/dbus-pending-call.c: start on new object that will replace
8893         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8894         replies
8895
8896         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8897         with remote interfaces
8898
8899         * dbus/dbus-gidl.c: do the boring boilerplate in here
8900         
8901 2003-08-12  Havoc Pennington  <hp@pobox.com>
8902
8903         * bus/dispatch.c (bus_dispatch): make this return proper 
8904         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8905
8906         * dbus/dbus-errors.c (dbus_set_error): use
8907         _dbus_string_append_printf_valist
8908
8909         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8910         (_dbus_string_append_printf): new
8911
8912         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8913         UNKNOWN_METHOD
8914
8915         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8916         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8917         message is unhandled.
8918
8919 2003-08-11  Havoc Pennington  <hp@pobox.com>
8920
8921         * bus/test.c (client_disconnect_handler): change to return
8922         HANDLED (would have been REMOVE_MESSAGE)
8923
8924         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8925         HANDLED/NOT_YET_HANDLED instead of
8926         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8927         should be used.
8928
8929 2003-08-10  Havoc Pennington  <hp@pobox.com>
8930
8931         * tools/dbus-send.c (main): add --type argument, for now
8932         supporting only method_call and signal types.
8933
8934         * tools/dbus-print-message.c: print message type
8935
8936         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8937         init connection->objects
8938
8939         * doc/dbus-specification.sgml: fix sgml
8940
8941         * bus/*.c: port over to object-instance API changes
8942
8943         * test/test-service.c: ditto
8944         
8945         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8946         name, we will have to fix up the rest of the code to also handle
8947         this
8948         (dbus_message_new): generic message-creation call
8949         (set_string_field): allow appending name field
8950
8951 2003-08-06  Havoc Pennington  <hp@pobox.com>
8952
8953         * dbus/dbus-object-registry.c: implement signal connection 
8954         and dispatch
8955
8956         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8957
8958         * dbus/dbus-internals.c (_dbus_memdup): new function
8959
8960 2003-08-02  Havoc Pennington  <hp@pobox.com>
8961
8962         * dbus/dbus-message.c (dbus_message_get_no_reply)
8963         (dbus_message_set_no_reply): add these and remove
8964         set_is_error/get_is_error
8965
8966         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8967         remove the ERROR flag, since there's now an ERROR type
8968
8969 2003-08-01  Havoc Pennington  <hp@pobox.com>
8970
8971         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8972         implement
8973
8974         * dbus/dbus-message.c (dbus_message_get_type): new function
8975
8976         * doc/dbus-specification.sgml: add "type" byte to messages
8977
8978 2003-08-01  Havoc Pennington  <hp@pobox.com>
8979
8980         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8981         a message type enum to distinguish kinds of message
8982         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8983         that need not be replied to
8984
8985 2003-08-01  Havoc Pennington  <hp@pobox.com>
8986
8987         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8988         (unpack_8_octets): fix no-64-bit-int bug
8989
8990         * dbus/dbus-object-registry.c (validate_id): validate the 
8991         connection ID bits, not just the instance ID.
8992
8993         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8994         the connection-global 33 bits of the object ID
8995
8996         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8997         object ID in the new way
8998
8999         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9000         define server/client/instance bits.
9001
9002 2003-07-30  Havoc Pennington  <hp@pobox.com>
9003
9004         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9005         build
9006
9007 2003-07-13  Havoc Pennington  <hp@pobox.com>
9008
9009         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9010         fields to DBusObjectVTable and DBusObjectInfo
9011
9012 2003-07-12  Havoc Pennington  <hp@pobox.com>
9013
9014         * dbus/dbus-object-registry.c: implement unit test,
9015         fix bugs discovered in process
9016
9017         * dbus/dbus-connection.c: remove handler_table and
9018         register_handler(), add DBusObjectRegistry usage
9019
9020         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9021         (dbus_object_id_set_null): new functions
9022
9023 2003-07-08  Havoc Pennington  <hp@pobox.com>
9024
9025         * dbus/dbus-object.c: implement some of this
9026
9027         * dbus/dbus-object-registry.c
9028         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9029         param
9030         (_dbus_object_registry_new): handle OOM
9031
9032 2003-07-08  Havoc Pennington  <hp@pobox.com>
9033
9034         * dbus/dbus-object.h: sketch out an API for registering objects
9035         with a connection, that allows us to use as little as 24 bytes
9036         per object and lets application code represent an object in 
9037         any conceivable way.
9038
9039         * dbus/dbus-object-registry.c: implement the hard bits of the
9040         DBusConnection aspect of object API. Not yet wired up.
9041         
9042 2003-07-06  Havoc Pennington  <hp@pobox.com>
9043
9044         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9045         (_dbus_marshal_object_id): new
9046         (_dbus_demarshal_object_id): new
9047         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9048         consolidate identical switch cases. Don't conditionalize handling
9049         of DBUS_TYPE_UINT64, need to handle the type always.
9050         (_dbus_marshal_validate_arg): consolidate identical cases, and
9051         handle DBUS_TYPE_OBJECT_ID
9052
9053         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9054
9055         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9056
9057 2003-09-28  Havoc Pennington  <hp@pobox.com>
9058
9059         * real 0.13 release
9060
9061 2003-09-28  Havoc Pennington  <hp@pobox.com>
9062
9063         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9064         to work with Debian db2html
9065
9066 2003-09-28  Havoc Pennington  <hp@pobox.com>
9067
9068         * configure.in: 0.13
9069
9070         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9071         stylesheet-images for benefit of Debian
9072         
9073         Change back to using filesystem-linked sockets for the system
9074         bus, so only root can create the default system bus address.
9075         
9076         * bus/system.conf.in: change to use
9077         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9078
9079         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9080         from here.
9081
9082         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9083         here, and AC_DEFINE DBUS_SYSTEM_PATH
9084
9085 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9086
9087         * doc/TODO:
9088         * doc/busconfig.dtd:
9089         Add busconfig DTD.
9090         
9091 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9092
9093         * doc/dbus-specification.sgml:
9094         Add activation reply values.
9095         
9096 2003-08-05  Havoc Pennington  <hp@redhat.com>
9097
9098         * configure.in: 0.12
9099
9100 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9101
9102         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9103         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9104         (add_watch), (remove_watch), (create_source):
9105         Refcount fds, fixes some reentrancy issues.
9106         
9107 2003-07-30  Havoc Pennington  <hp@redhat.com>
9108
9109         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9110         bus address to be abstract if we have abstract sockets
9111
9112         * NEWS: update
9113
9114 2003-07-28  Havoc Pennington  <hp@redhat.com>
9115
9116         * bus/messagebus.in: fix to avoid processname/servicename 
9117         confusion, from Michael Kearey
9118         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9119         
9120 2003-07-23  Havoc Pennington  <hp@pobox.com>
9121
9122         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9123         fix from Andy Hanton to remove broken "+1"
9124
9125 2003-07-16  Havoc Pennington  <hp@pobox.com>
9126
9127         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9128         babysitter process, as suggested by Thomas Leonard, so 
9129         an "eval `dbus-launch --exit-with-session`" will actually 
9130         return
9131
9132 2003-07-16  Havoc Pennington  <hp@pobox.com>
9133
9134         * configure.in: print out EXPANDED_* variables in the summary at
9135         the end; clean up the code that computes EXPANDED_ variables and
9136         get the ones using exec_prefix right. Should make things work
9137         when you build without --prefix
9138
9139 2003-06-29  Havoc Pennington  <hp@pobox.com>
9140
9141         * mono/Test.cs (class Test): fire up a main loop and run it
9142
9143         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9144         done once, the app has to do it
9145
9146 2003-06-26  Havoc Pennington  <hp@pobox.com>
9147
9148         * mono/Connection.cs: set up connection with the glib main loop
9149
9150 2003-07-01  Havoc Pennington  <hp@redhat.com>
9151
9152         * doc/dbus-specification.sgml: clarify the format of a type code,
9153         change suggested by Jim Blandy
9154
9155 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9156
9157         * doc/Makefile.am:
9158         * tools/Makefile.am: Don't assume srcdir == builddir.
9159
9160         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9161         the allocated block.
9162         (_dbus_memory_test): New function.
9163         * dbus/dbus-test.h: Add _dbus_memory_test ().
9164         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9165
9166         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9167         of %c%c%c%c.
9168         (dbus_message_new): Remove obsolete @todo.
9169
9170         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9171         (_dbus_marshal_set_uint64): Fix comment.
9172
9173         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9174         hardcode FIELD_REPLY_SERIAL.
9175
9176         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9177         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9178
9179         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9180         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9181
9182 2003-06-24  Havoc Pennington  <hp@pobox.com>
9183
9184         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9185
9186 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9187
9188         * configure.in:
9189         * gcj/.cvsignore:
9190         * gcj/Hello.java:
9191         * gcj/Makefile.am:
9192         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9193         * gcj/org/.cvsignore:
9194         * gcj/org/Makefile.am:
9195         * gcj/org/freedesktop/.cvsignore:
9196         * gcj/org/freedesktop/Makefile.am:
9197         * gcj/org/freedesktop/dbus/.cvsignore:
9198         * gcj/org/freedesktop/dbus/Makefile.am:
9199         * gcj/org/freedesktop/dbus/Message.java: (Message),
9200         (Message.Message):
9201         * gcj/org/freedesktop/dbus/natMessage.cc:
9202         Fix the build system.
9203
9204 2003-06-22  Havoc Pennington  <hp@pobox.com>
9205
9206         * mono/Connection.cs: add more bindings
9207
9208         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9209         more than once.
9210
9211 2003-06-22  Havoc Pennington  <hp@pobox.com>
9212
9213         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9214         Start wrapping more stuff.
9215
9216 2003-06-22  Havoc Pennington  <hp@pobox.com>
9217
9218         * mono/Message.cs: implement Message.Wrap() that ensures we only
9219         have a single C# wrapper per DBusMessage, assuming it works which
9220         it probably doesn't.
9221
9222         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9223         (dbus_message_free_data_slot): new
9224         (dbus_message_set_data): new
9225         (dbus_message_get_data): new
9226
9227 2003-06-22  Havoc Pennington  <hp@pobox.com>
9228
9229         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9230         (_dbus_data_slot_allocator_alloc): rework these to keep a
9231         reference count on each slot and automatically manage a global
9232         slot ID variable passed in by address
9233
9234         * bus/bus.c: convert to new dataslot API
9235
9236         * dbus/dbus-bus.c: convert to new dataslot API
9237
9238         * dbus/dbus-connection.c: convert to new dataslot API
9239
9240         * dbus/dbus-server.c: convert to new dataslot API
9241
9242         * glib/dbus-gmain.c: ditto
9243
9244         * bus/test.c: ditto
9245
9246         * bus/connection.c: ditto
9247
9248 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9249
9250         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9251         after the gcj checks so that the correct configuration tags
9252         will be added to libtool.
9253
9254         * dbus-glib-1.pc.in: No need to specify any includes since
9255         dbus-1.pc.in has those.
9256
9257 2003-06-22  Havoc Pennington  <hp@pobox.com>
9258
9259         * mono/*, gcj/*, configure.in, Makefile.am:
9260         Check in makefiles and subdirs for mono and gcj bindings.
9261         Neither binding actually exists, just trying to get through
9262         all the build and other boring bits.
9263
9264 2003-06-21  Philip Blundell  <philb@gnu.org>
9265
9266         * tools/dbus-monitor.1: Updated.
9267
9268         * tools/dbus-send.1: Likewise.
9269
9270 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9271
9272         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9273         for hangup and error after checking read so we won't discard
9274         pending data if both hangup and read are set.
9275
9276 2003-06-19  Philip Blundell  <philb@gnu.org>
9277
9278         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9279
9280         * tools/dbus-send.c: Accept both --system and --session.
9281
9282         * tools/dbus-monitor.c: Same here.
9283
9284 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9285
9286         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9287         from C++ (Patch by Miloslav Trmac).
9288
9289 2003-06-15  Joe Shaw  <joe@assbarn.com>
9290
9291         * configure.in: Check for socklen_t.
9292
9293         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9294
9295         * test/test-segfault.c: Add #include <sys/time.h>
9296
9297         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9298         dbus-launch needs it.
9299
9300 2003-06-09  Havoc Pennington  <hp@redhat.com>
9301
9302         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9303         SUN_LEN, it breaks abstract socket usage
9304
9305         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9306         starts of lines.
9307
9308 2003-06-04  Havoc Pennington  <hp@pobox.com>
9309
9310         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9311         using unix:abstract=/foo, and when listening in a tmpdir
9312         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9313
9314         * dbus/dbus-transport.c (_dbus_transport_open): support
9315         unix:abstract=/foo
9316
9317         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9318         support abstract sockets
9319
9320         * dbus/dbus-transport-unix.c
9321         (_dbus_transport_new_for_domain_socket): support abstract sockets
9322
9323         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9324         toggle as an argument, implement abstract namespace support
9325         (_dbus_listen_unix_socket): ditto
9326
9327         * configure.in: add --enable-abstract-sockets and implement
9328         a configure check for autodetection of the right value.
9329
9330 2003-06-01  Havoc Pennington  <hp@pobox.com>
9331
9332         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9333         in /tmp (though on Linux this will end up being useless,
9334         when we add abstract namespace support)
9335
9336         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9337         subst'ing it
9338
9339 2003-05-28  Colin Walters  <walters@verbum.org>
9340
9341         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9342
9343 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9344
9345         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9346
9347 2003-05-17  Colin Walters  <walters@gnu.org>
9348
9349         * tools/dbus-send.c: Don't exit with an error code if --help was
9350         passed.  Default to using the session bus instead of the system
9351         one.
9352
9353         * tools/dbus-launch.c: Ditto.
9354
9355         * tools/dbus-monitor.c: Ditto.
9356
9357         * tools/dbus-send.1: Update with new arguments.
9358
9359         * tools/dbus-launch.c: Emit code to export variables.  New
9360         arguments -s and -c to specify shell syntax, and a bit of code to
9361         autodetect syntax.  Also, allow specifying a program to run.
9362
9363         * tools/dbus-launch.1: Update with new arguments.
9364
9365         * tools/dbus-send.1: Ditto.
9366
9367         * tools/dbus-monitor.1: Ditto.
9368
9369 2003-05-17  Havoc Pennington  <hp@pobox.com>
9370
9371         * bus/config-parser.c (merge_included): merge in policies from
9372         child configuration file.
9373
9374         * bus/policy.c (bus_policy_merge): function to merge two policies
9375         together
9376
9377 2003-05-16  Havoc Pennington  <hp@redhat.com>
9378
9379         * dbus/dbus-connection.c: disable verbose lock spew
9380
9381         * tools/dbus-send.c: add --print-reply command line option
9382
9383         * tools/dbus-print-message.h (print_message): new util function
9384         shared by dbus-send and dbus-monitor
9385
9386         * tools/dbus-monitor.c (handler_func): exit on disconnect
9387
9388         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9389         disconnected, don't try to use the read_watch
9390
9391         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9392         so we can find this bug more easily
9393
9394 2003-05-16  Havoc Pennington  <hp@redhat.com>
9395
9396         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9397         NULL as DBusHashTable is annoyingly likely to do.
9398
9399 2003-05-16  Colin Walters  <walters@verbum.org>
9400
9401         * tools/dbus-monitor.c: Add --session argument and usage()
9402         function.
9403
9404         * tools/dbus-monitor.1: Update with new --session arg.
9405
9406         * bus/Makefile.am (install-data-hook): Create
9407         $(libdir)/dbus-1.0/services so that the session bus is happy.
9408
9409 2003-05-15  Havoc Pennington  <hp@redhat.com>
9410
9411         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9412         on non-x86. ifdef's are evil.
9413
9414 2003-05-15  Havoc Pennington  <hp@redhat.com>
9415
9416         * configure.in: 0.11
9417
9418         * NEWS: update
9419
9420         * bus/Makefile.am (initddir): apparently we are supposed to put
9421         init scripts in /etc/rc.d/init.d not /etc/init.d
9422
9423         * bus/Makefile.am: remove the "you must --enable-tests to make
9424         check" as it broke distcheck
9425
9426         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9427
9428 2003-05-13  James Willcox  <jwillcox@gnome.org>
9429
9430         * configure.in:
9431         * bus/activation.c: (bus_activation_service_created),
9432         (bus_activation_activate_service):
9433         * bus/driver.c: (bus_driver_send_service_deleted),
9434         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9435         (bus_driver_send_service_acquired),
9436         (bus_driver_send_welcome_message),
9437         (bus_driver_handle_list_services):
9438         * bus/session.conf.in:
9439         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9440         (dbus_bus_service_exists), (dbus_bus_activate_service):
9441         * dbus/dbus-bus.h:
9442
9443         Add some convenience API which lets you activate a service, and did a
9444         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9445         and dbus_message_get_args()
9446
9447 2003-05-11  Havoc Pennington  <hp@pobox.com>
9448
9449         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9450         calling _dbus_marshal_validate_arg() for every byte in a byte
9451         array, etc.
9452
9453         * dbus/dbus-message-handler.c: use atomic reference counting to
9454         reduce number of locks slightly; the global lock in here sucks
9455
9456         * dbus/dbus-connection.c
9457         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9458         update_dispatch_status that can be called with lock held; then use
9459         in a couple places to reduce locking/unlocking
9460         (dbus_connection_send): hold the lock over the whole function
9461         instead of acquiring it twice.
9462
9463         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9464
9465         * bus/connection.c (bus_connections_setup_connection): fix access
9466         to already-freed memory.
9467
9468         * dbus/dbus-connection.c: keep a little cache of linked list
9469         nodes, to avoid using the global linked list alloc lock in the
9470         normal send-message case. Instead we just use the connection lock
9471         that we already have to take.
9472
9473         * dbus/dbus-list.c (_dbus_list_find_last): new function
9474
9475         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9476         change to use a struct for the atomic type; fix docs,
9477         they return value before increment, not after increment.
9478
9479         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9480         (_dbus_string_append_8_aligned): new functions to try to
9481         microoptimize this operation.
9482         (reallocate_for_length): break this out of set_length(), to
9483         improve profile info, and also so we can consider inlining the
9484         set_length() part.
9485
9486         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9487         strings with some preallocation, cuts down on our calls to realloc
9488         a fair bit. Though if we can get the "move entire string to empty
9489         string" optimization below to kick in here, it would be better.
9490
9491         * dbus/dbus-string.c (_dbus_string_move): just call
9492         _dbus_string_move_len
9493         (_dbus_string_move_len): add a special case for moving
9494         an entire string into an empty string; we can just
9495         swap the string data instead of doing any reallocs.
9496         (_dbus_string_init_preallocated): new function
9497
9498 2003-05-11  Havoc Pennington  <hp@pobox.com>
9499
9500         Write a "test-profile" that does echo client-server with threads;
9501         profile reveals lock contention, memcpy/realloc of buffers, and
9502         UTF-8 validation as hot spots. 20% of lock contention eliminated
9503         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9504         contention is global mempool locks for GList and DBusList.
9505
9506         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9507         x86 implementation
9508
9509         * dbus/dbus-connection.c (struct DBusConnection): use
9510         dbus_atomic_t for the reference count
9511
9512         * dbus/dbus-message.c (struct DBusMessage): declare
9513         dbus_atomic_t values as volatile
9514
9515         * configure.in: code to detect ability to use atomic integer
9516         operations in assembly, from GLib patch
9517
9518         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9519         time, tired of it being wrong in threads and forked processes
9520
9521         * glib/test-profile.c: a little program to bounce messages back
9522         and forth between threads and eat CPU
9523
9524         * dbus/dbus-connection.c: add debug spew macros for debugging
9525         thread locks; include config.h at top; fix deadlock in
9526         dbus_connection_flush()
9527
9528 2003-05-08  Havoc Pennington  <hp@pobox.com>
9529
9530         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9531         data from getting written, and there wasn't a good reason to
9532         use _exit really.
9533
9534         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9535         dbus_verbose lines in test coverage
9536         (main): add list of functions sorted by # of untested blocks
9537         to the coverage report
9538
9539         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9540
9541         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9542
9543         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9544         extend test coverage
9545
9546         * test/data/auth/cancel.auth-script: test canceling an
9547         authentication
9548
9549         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9550         aren't used. in CVS history if we end up needing them.
9551
9552 2003-05-04  Havoc Pennington  <hp@pobox.com>
9553
9554         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9555         unit test
9556
9557         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9558         function, which assumed length was in # of strings, not bytes
9559
9560         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9561         missing coverage
9562
9563         * dbus/dbus-connection.c
9564         (_dbus_connection_queue_received_message): disable function for
9565         now, we are only using it in test mode
9566
9567         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9568         remove a mistaken FIXME
9569
9570 2003-05-04  Havoc Pennington  <hp@pobox.com>
9571
9572         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9573         unlock mutex on successful return, patch from Anders Gustafsson
9574
9575 2003-05-04  Havoc Pennington  <hp@pobox.com>
9576
9577         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9578         Anders Gustafsson
9579
9580 2003-05-04  Havoc Pennington  <hp@pobox.com>
9581
9582         * tools/dbus-launch.c: implement
9583
9584         * bus/main.c (main), bus/bus.c (bus_context_new):
9585         implement --print-pid and --fork
9586
9587 2003-05-03  Havoc Pennington  <hp@redhat.com>
9588
9589         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9590         the address had no value, and add to test suite. Fix and
9591         regression test from Miloslav Trmac
9592
9593 2003-05-03  Havoc Pennington  <hp@pobox.com>
9594
9595         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9596         watch is invalid when handled
9597
9598         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9599         dbus-launch utility to launch the bus from a shell script.  Didn't
9600         actually implement dbus-launch yet, it's just a placeholder still.
9601
9602 2003-05-03  Havoc Pennington  <hp@pobox.com>
9603
9604         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9605         daemon; also documents daemon config file, so replaces
9606         doc/config-file.txt. Corrected some stuff from config-file.txt in
9607         the process of moving it.
9608
9609 2003-05-03  Havoc Pennington  <hp@pobox.com>
9610
9611         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9612         add some man pages
9613
9614 2003-05-03  Colin Walters  <walters@verbum.org>
9615
9616         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9617         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9618
9619         * Makefile.am: Update to use new .pc versioning scheme.
9620
9621 2003-05-02  Havoc Pennington  <hp@redhat.com>
9622
9623         * bus/system.conf.in: allow send/receive to/from message bus
9624         service
9625
9626 2003-04-30  Havoc Pennington  <hp@redhat.com>
9627
9628         * configure.in: print a note when building with unit tests and
9629         without assertions
9630
9631 2003-04-30  Havoc Pennington  <hp@redhat.com>
9632
9633         * Makefile.am: add a check-local that complains if you didn't
9634         configure with --enable-tests
9635
9636 2003-04-29  Havoc Pennington  <hp@redhat.com>
9637
9638         * glib/dbus-gmain.c: docs cleanups
9639
9640         * dbus/dbus-types.h: add docs on int64 types
9641
9642         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9643         public API docs section
9644
9645 2003-04-29  Havoc Pennington  <hp@redhat.com>
9646
9647         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9648         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9649         parallel install API version, not with the D-BUS package version.
9650
9651         * HACKING: move some of README over here
9652
9653         * README: updates, and document API/ABI policy
9654
9655         * configure.in: reindentation
9656
9657 2003-04-29  Havoc Pennington  <hp@redhat.com>
9658
9659         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9660         to use this library" to be sure people have the right
9661         expectations.
9662
9663 2003-04-28  Havoc Pennington  <hp@redhat.com>
9664
9665         * configure.in: add --enable-docs which by default is auto yes if
9666         doxygen and db2html found, no otherwise; but can be forced on/off
9667
9668         * doc/Makefile.am: conditionalize whether to build docs on
9669         --enable-docs
9670
9671 2003-04-28  Havoc Pennington  <hp@redhat.com>
9672
9673         * configure.in: 0.10
9674
9675         * NEWS: update
9676
9677         * bus/system.conf.in: add <includedir>system.d</includedir>
9678
9679         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9680         username was provided but not uid
9681
9682         * bus/config-parser.c (struct BusConfigParser): keep track of
9683         whether the parser is toplevel or was included; change some
9684         of the error handling if it's included.
9685
9686 2003-04-27  Havoc Pennington  <hp@pobox.com>
9687
9688         Unbreak my code...
9689
9690         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9691         report correct status if we finish processing authentication
9692         inside this function.
9693
9694         * bus/activation.c (try_send_activation_failure): use
9695         bus_transaction_send_error_reply
9696
9697         * bus/connection.c (bus_connection_get_groups): return an error
9698         explaining the problem
9699
9700         * bus/bus.c (bus_context_check_security_policy): implement
9701         restriction here that inactive connections can only send the
9702         hello message. Also, allow bus driver to send anything to
9703         any recipient.
9704
9705         * bus/connection.c (bus_connection_complete): create the
9706         BusClientPolicy here instead of on-demand.
9707         (bus_connection_get_policy): don't return an error
9708
9709         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9710         sender field in message being replied to
9711
9712         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9713         causing it to return FALSE always
9714
9715         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9716         we checked sender rather than destination
9717
9718 2003-04-25  Havoc Pennington  <hp@redhat.com>
9719
9720         test suite is slightly hosed at the moment, will fix soon
9721
9722         * bus/connection.c (bus_connections_expire_incomplete): fix to
9723         properly disable the timeout when required
9724         (bus_connection_set_name): check whether we can remove incomplete
9725         connections timeout after we complete each connection.
9726
9727         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9728         probably still broken.
9729
9730         * bus/services.c (bus_registry_acquire_service): implement max
9731         number of services owned, and honor allow/deny rules on which
9732         services a connection can own.
9733
9734         * bus/connection.c (bus_connection_get_policy): report errors here
9735
9736         * bus/activation.c: implement limit on number of pending
9737         activations
9738
9739 2003-04-25  Havoc Pennington  <hp@redhat.com>
9740
9741         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9742         where we used >= 0 instead of != DBUS_UID_UNSET.
9743
9744 2003-04-25  Havoc Pennington  <hp@redhat.com>
9745
9746         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9747         were toggled without add/remove, fix from Anders Gustafsson
9748
9749 2003-04-24  Havoc Pennington  <hp@redhat.com>
9750
9751         * test/data/valid-config-files/basic.conf: add <limit> tags to
9752         this test
9753
9754         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9755         <limit> tag in configuration file.
9756
9757 2003-04-24  Havoc Pennington  <hp@redhat.com>
9758
9759         * bus/dispatch.c: somehow missed some name_is
9760
9761         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9762         (_dbus_timeout_set_interval): new
9763
9764         * bus/connection.c (bus_connections_setup_connection): record time
9765         when each connection is first set up, and expire them after the
9766         auth timeout passes.
9767
9768 2003-04-24  Havoc Pennington  <hp@redhat.com>
9769
9770         * dbus/dbus-message.c (dbus_message_name_is): rename
9771         (dbus_message_service_is): rename
9772         (dbus_message_sender_is): rename
9773         (dbus_message_get_service): rename
9774
9775 2003-04-24  Havoc Pennington  <hp@redhat.com>
9776
9777         * configure.in: add --enable-checks
9778
9779         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9780
9781         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9782         to use thread locks.
9783         (_dbus_connection_handler_destroyed_locked): move some private
9784         functions into proper docs group
9785
9786         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9787         _dbus_return_val_if_fail
9788
9789         Throughout: use dbus_return_if_fail
9790
9791 2003-04-23  James Willcox  <jwillcox@gnome.org>
9792
9793         * glib/dbus-glib.h:
9794         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9795         (dbus_connection_setup_with_g_main),
9796         (dbus_server_setup_with_g_main):
9797         * glib/test-dbus-glib.c: (main):
9798         * glib/test-thread-client.c: (main):
9799         * glib/test-thread-server.c: (new_connection_callback), (main):
9800         * tools/dbus-monitor.c: (main):
9801
9802         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9803         and dbus_server_setup_with_g_main().
9804
9805 2003-04-20  Havoc Pennington  <hp@pobox.com>
9806
9807         * doc/dbus-specification.sgml: document the restrictions on
9808         message and service names
9809
9810 2003-04-22  Havoc Pennington  <hp@redhat.com>
9811
9812         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9813         support, and do some code cleanups to share more code and
9814         speed up array marshal/demarshal.
9815
9816         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9817
9818         * configure.in: generate dbus-arch-deps.h
9819
9820         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9821         64-bit typecodes
9822
9823 2003-04-22  Havoc Pennington  <hp@redhat.com>
9824
9825         * test/data/valid-messages/opposite-endian.message: fix test
9826         to use proper type for rply field
9827
9828         * test/data/invalid-messages: add tests for below validation
9829
9830         * dbus/dbus-message.c (decode_header_data): validate field types,
9831         and validate that named fields are valid names
9832         (decode_name_field): consider messages in the
9833         org.freedesktop.Local. namespace to be invalid.
9834
9835         * dbus/dbus-string.c (_dbus_string_validate_name): new
9836
9837 2003-04-19  Havoc Pennington  <hp@pobox.com>
9838
9839         * bus/driver.c (bus_driver_handle_hello): check limits and
9840         return an error if they are exceeded.
9841
9842         * bus/connection.c: maintain separate lists of active and inactive
9843         connections, and a count of each. Maintain count of completed
9844         connections per user. Implement code to check connection limits.
9845
9846         * dbus/dbus-list.c (_dbus_list_unlink): export
9847
9848         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9849         number of bytes in the message queue for a connection
9850
9851 2003-04-18  Havoc Pennington  <hp@pobox.com>
9852
9853         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9854
9855         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9856         memleaks
9857
9858         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9859         on realloc be sure to update the pointer in the keyring
9860
9861         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9862         offset to avoid writing to unallocated memory
9863
9864         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9865         try the next mechanism, so we properly handle OOM
9866
9867         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9868         on OOM.
9869         (_dbus_keyring_new): fix OOM bug
9870         (_dbus_keyring_new_homedir): always set error; impose a maximum
9871         number of keys we'll load from the file, mostly to speed up the
9872         test suite and make its OOM checks more useful, but also for
9873         general sanity.
9874
9875         * dbus/dbus-auth.c (process_error_server): reject authentication
9876         if we get an error from the client
9877         (process_cancel): on cancel, send REJECTED, per the spec
9878         (process_error_client): send CANCEL if we get an error from the
9879         server.
9880
9881 2003-04-18  Havoc Pennington  <hp@pobox.com>
9882
9883         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9884         debug spew
9885
9886         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9887         handling problem
9888
9889         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9890         about DBUS_TEST_HOMEDIR once
9891
9892         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9893         the environment
9894
9895         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9896         config file so we test the right thing
9897
9898         Throughout: assorted docs improvements
9899
9900 2003-04-18  Havoc Pennington  <hp@pobox.com>
9901
9902         * glib/dbus-gmain.c: adapt to watch changes
9903
9904         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9905
9906         * dbus/dbus-server.h: remove dbus_server_handle_watch
9907
9908         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9909
9910         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9911         like DBusTimeout, so we don't need dbus_connection_handle_watch
9912         etc.
9913
9914 2003-04-17  Havoc Pennington  <hp@redhat.com>
9915
9916         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9917         database usage so it all goes via the DBusUserDatabase cache.
9918
9919 2003-04-17  Havoc Pennington  <hp@redhat.com>
9920
9921         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9922         there was an OOM watch we skipped, we always return TRUE so we
9923         iterate again to have a look at it again. Fixes test suite hang.
9924         Code rearrangement also lets us lose some memset and only iterate
9925         over callbacks once.
9926
9927         * bus/driver.c (bus_driver_handle_message): sense of test for
9928         reply was backward
9929
9930 2003-04-16  Havoc Pennington  <hp@pobox.com>
9931
9932         * doc/dbus-specification.sgml: make spec say serials are unsigned
9933
9934         * dbus/dbus-message.h: change message serials to unsigned
9935
9936         * dbus/dbus-connection.c: adapt to message serials being unsigned
9937
9938 2003-04-15  Havoc Pennington  <hp@pobox.com>
9939
9940         * bus/bus.c: create and keep around a shared DBusUserDatabase
9941         object.
9942
9943         * bus/connection.c (bus_connection_get_groups): don't cache
9944         groups for user in the connection object, since user database
9945         object now does that.
9946
9947 2003-04-16  Havoc Pennington  <hp@redhat.com>
9948
9949         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9950         list of size counters
9951         (_dbus_message_loader_putback_message_link): put back a popped link
9952
9953         * dbus/dbus-connection.c
9954         (dbus_connection_set_max_live_messages_size): rename
9955         max_received_size
9956         (dbus_connection_get_outgoing_size): get size of outgoing
9957         queue
9958         (_dbus_connection_set_connection_counter): remove this cruft
9959
9960 2003-04-14  Havoc Pennington  <hp@redhat.com>
9961
9962         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9963         caching, but at some point we might want to be able to use a
9964         different database.
9965
9966         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9967         SHA1 conf file to test the sha1 auth mechanism, since the regular
9968         test always uses EXTERNAL when available.
9969
9970         * configure.in,
9971         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9972         add conf file that requires use of sha1 auth
9973
9974 2003-04-13  Havoc Pennington  <hp@pobox.com>
9975
9976         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9977         from Philip Blundell to send messages and monitor them.
9978
9979 2003-04-13  Havoc Pennington  <hp@pobox.com>
9980
9981         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9982         callbacks
9983
9984         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9985         users
9986
9987         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9988         fix to only recover unused bytes if we're already authenticated
9989         (_dbus_transport_get_is_authenticated): fix to still mark us
9990         authenticated if there are unused bytes.
9991
9992         * bus/dispatch.c: implement security policy checking
9993
9994         * bus/connection.c (bus_transaction_send_from_driver): new
9995
9996         * bus/bus.c (bus_context_check_security_policy): new
9997
9998         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9999         now we just set the DBusError and it gets converted to an error
10000         reply.
10001
10002         * bus/connection.c (allow_user_function): enable code using actual
10003         data from the config file
10004
10005         * bus/policy.c (list_allows_user): handle wildcard rules for
10006         user/group connection perms
10007
10008 2003-04-13  Havoc Pennington  <hp@pobox.com>
10009
10010         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10011
10012         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10013
10014         * bus/policy.c (bus_policy_append_mandatory_rule)
10015         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10016         (bus_policy_append_group_rule): new functions
10017
10018 2003-04-12  Havoc Pennington  <hp@pobox.com>
10019
10020         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10021
10022         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10023         the pid/gid/uid, just for paranoia.
10024
10025         * test/break-loader.c (randomly_do_n_things): find a byte
10026         containing a type code, and randomly change it to a different
10027         type code.
10028
10029 2003-04-12  Havoc Pennington  <hp@pobox.com>
10030
10031         * bus/policy.h: change BusPolicy to be the thing from the config
10032         file, and rename old BusPolicy to BusClientPolicy
10033
10034         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10035         match change in how policy works
10036
10037         * dbus/dbus-internals.h: mark assert_not_reached as
10038         __attribute((noreturn))__
10039
10040 2003-04-11  Havoc Pennington  <hp@redhat.com>
10041
10042         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10043         the broadcast service. Use boolean return for ServiceExists.
10044
10045 2003-04-11  Havoc Pennington  <hp@redhat.com>
10046
10047         * configure.in: add another directory to look for qt in.
10048
10049 2003-04-11  Havoc Pennington  <hp@redhat.com>
10050
10051         * AUTHORS: add Colin Walters
10052
10053 2003-04-11  Havoc Pennington  <hp@redhat.com>
10054
10055         * NEWS: update
10056
10057         * configure.in: 0.9
10058
10059 2003-04-11  Havoc Pennington  <hp@redhat.com>
10060
10061         * bus/messagebus.in: remove pid file when stopping the
10062         message bus, since the bus won't have privileges to remove it
10063         itself.
10064
10065 2003-04-11  Havoc Pennington  <hp@redhat.com>
10066
10067         * bus/bus.c (bus_context_new): move credentials change after
10068         creating pidfile
10069
10070 2003-04-11  Havoc Pennington  <hp@pobox.com>
10071
10072         * test/decode-gcov.c: add "below average functions" to the
10073         coverage report, and change how some of the code works.
10074
10075         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10076         not in the coverage stats.
10077
10078         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10079         couple places so running the test suite doesn't result in megaspam.
10080
10081 2003-04-11  Havoc Pennington  <hp@pobox.com>
10082
10083         * bus/dispatch.c (check_existent_service_activation): accept a no
10084         memory error in a place we didn't before
10085
10086         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10087         in case the first one failed," since the test suite is less
10088         broken now.
10089
10090 2003-04-10  Havoc Pennington  <hp@pobox.com>
10091
10092         * bus/dispatch.c (check_segfault_service_activation): add test
10093         for launching an executable that just crashes.
10094
10095         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10096         don't leave a million cores. We'll see how portable this is.
10097
10098 2003-04-10  Havoc Pennington  <hp@pobox.com>
10099
10100         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10101         the possible parent failures before we fork, so that we don't
10102         fail to create a babysitter after creating the child.
10103
10104         * bus/activation.c (bus_activation_activate_service): kill child
10105         if we don't successfully complete the activation.
10106
10107 2003-04-10  Havoc Pennington  <hp@redhat.com>
10108
10109         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10110         the connection if it's disconnected
10111
10112         * bus/activation.c (bus_activation_service_created): use new
10113         transaction features to roll back removal of pending activation if
10114         we don't successfully create the service after all. Don't remove
10115         pending activation if the function fails.
10116
10117         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10118         (_dbus_list_insert_after_link): new code to facilitate
10119         services.c fixes
10120
10121         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10122         new functionality, so we can preallocate the ability to insert
10123         into a hash table.
10124
10125         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10126         allowing us to put custom hooks in a transaction to be used for
10127         cancelling said transaction
10128
10129         * doc/dbus-specification.sgml: add some discussion of secondary
10130         service owners, and disallow zero-length service names
10131
10132         * bus/services.c (bus_registry_acquire_service): new function,
10133         splits out part of bus_driver_handle_acquire_service() and fixes
10134         a bug where we didn't remove the service doing the acquiring
10135         from the secondary queue if we failed to remove the current owner
10136         from the front of the queue.
10137
10138 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10139
10140         * doc/dbus-specification.sgml:
10141         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10142
10143 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10144
10145         * bus/.cvsignore:
10146         * glib/.cvsignore:
10147         * test/.cvsignore:
10148         Added files to cvsignore
10149
10150         * dbus/dbus-message.h:
10151         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10152         Make get_named() take two out argument and return a boolean.
10153         (dbus_message_iter_get_args_valist):
10154         Update usage of get_named().
10155         (dbus_message_iter_append_byte):
10156         Fix typo
10157         (dbus_message_iter_append_named)
10158         Fix typo
10159         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10160         More tests.
10161
10162 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10163
10164         * dbus/dbus-marshal.[ch]:
10165         Add array_type_pos argument to _dbus_marshal_validate_arg.
10166         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10167
10168         * dbus/dbus-message.[ch]:
10169         Multi-dimensional arrays have full type specification in the
10170         outermost array. Iter code re-arranged to handle this.
10171         Added some more iter tests.
10172
10173         * doc/dbus-specification.sgml:
10174         Add me to authors.
10175         Remove old FIXME.
10176         Update new array encoding description.
10177         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10178
10179         * test/data/invalid-messages/array-with-mixed-types.message:
10180         * test/data/valid-messages/array-of-array-of-uint32.message:
10181         Change to the new array format.
10182
10183         * test/data/invalid-messages/too-short-dict.message:
10184         Fix bug in test.
10185
10186         * test/data/valid-messages/recursive-types.message:
10187         Fix up and extend test.
10188
10189 2003-04-10  Havoc Pennington  <hp@pobox.com>
10190
10191         * bus/dispatch.c: lots of fixes
10192
10193         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10194         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10195         that was crack, broke the test service.
10196
10197         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10198         handling to avoid piling up errors if we get a failure on the
10199         first address.
10200
10201         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10202         pid in assertion failures.
10203
10204         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10205         to some fixed size of file descriptor array. Don't return TRUE
10206         anytime a timeout exists, that led to lots of busy loop silliness
10207         in the tests.
10208
10209 2003-04-09  Havoc Pennington  <hp@redhat.com>
10210
10211         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10212         I'd checked this in earlier but hadn't.
10213
10214 2003-04-09  Havoc Pennington  <hp@redhat.com>
10215
10216         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10217         the activation test (man this is getting old!)
10218
10219 2003-04-09  Havoc Pennington  <hp@redhat.com>
10220
10221         * test/test-utils.c: use dispatch status function to fix this up
10222
10223         * bus/connection.c (connection_watch_callback): don't dispatch
10224         from here
10225         (connection_timeout_callback): don't dispatch from here
10226         (bus_connections_setup_connection): set the dispatch status function
10227         (bus_connection_disconnected): unset it
10228
10229         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10230         used to add a connection to be dispatched
10231         (_dbus_loop_iterate): do the dispatching at the end of each
10232         iteration
10233
10234         * dbus/dbus-connection.c
10235         (dbus_connection_set_dispatch_status_function): new function
10236         allowing us to fix up main loop usage
10237         (_dbus_connection_last_unref): free all the various function
10238         user data
10239         (dbus_connection_dispatch): call the DispatchStatusFunction
10240         whenever this function returns
10241         (dbus_connection_handle_watch): call DispatchStatusFunction
10242         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10243         (reply_handler_timeout): call DispatchStatusFunction
10244         (dbus_connection_flush): call DispatchStatusFunction
10245
10246 2003-04-09  Havoc Pennington  <hp@redhat.com>
10247
10248         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10249         a memory leak
10250
10251         * bus/dispatch.c (check_service_activated): fix bug in test
10252
10253         * dbus/dbus-mainloop.c (check_timeout): fix this up
10254
10255         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10256         verbose output so we can sort out output from different processes,
10257         e.g. in the activation case.
10258
10259 2003-04-08  Colin Walters  <walters@gnu.org>
10260
10261         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10262         the pid file.
10263         (bus_context_new): Set it.
10264         (bus_context_unref): Use it to delete the pid file.
10265
10266 2003-04-08  Havoc Pennington  <hp@redhat.com>
10267
10268         * test/data/invalid-messages/array-with-mixed-types.message:
10269         regression test that fails for the moment
10270
10271         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10272         tests for convenience
10273
10274         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10275         array of nil, it broke things.
10276
10277         * test/data/invalid-messages/array-of-nil.message: regression test
10278
10279         * test/data/valid-messages/array-of-array-of-uint32.message:
10280         happened to write this so added it to suite
10281
10282 2003-04-08  Havoc Pennington  <hp@redhat.com>
10283
10284         * bus/driver.c (bus_driver_handle_acquire_service): init
10285         retval/reply before checking name
10286
10287         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10288         recursion depth argument
10289
10290         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10291         in the public struct for future extension
10292
10293         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10294         typo
10295
10296         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10297         message
10298
10299         * doc/dbus-specification.sgml: fix typo
10300
10301 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10302
10303         Implemented recursive types, named types and new-style iters
10304
10305         * bus/driver.c:
10306         * glib/test-thread-client.c: (thread_func):
10307         * glib/test-thread-server.c: (handle_test_message):
10308         * test/test-service.c: (handle_echo):
10309         Update to new api
10310
10311         * dbus/Makefile.am:
10312         * dbus/dbus-dict.c:
10313         * dbus/dbus-dict.h:
10314         * dbus/dbus.h
10315         Remove DBusDict
10316
10317         * dbus/dbus-internals.c: (_dbus_type_to_string):
10318         Update for new types.
10319
10320         * dbus/dbus-marshal.[ch]:
10321         Implement recursive types and the new marshalling format.
10322         Remove hardcoded dict marshalling.
10323         Marshal named types.
10324
10325         * dbus/dbus-message-builder.c:
10326         Add BYTE_ARRAY.
10327         Remove references to old types
10328
10329         * dbus/dbus-message.[ch]:
10330         New non-refcounted iter API that supports recursive iters.
10331         Use iters for appending, including support for recursive
10332         iters.
10333         Add byte and named type support.
10334         Update everything to new marshalling formats.
10335         Add tests for new API.
10336
10337         * dbus/dbus-protocol.h:
10338         Remove old array types.
10339         Add types: BYTE, ARRAY, DICT, NAMED
10340
10341         * dbus/dbus-string.c:
10342         * dbus/dbus-sysdeps.c:
10343         Make parse_double locale safe.
10344
10345         * dbus/dbus-test-main.c:
10346         Call setlocale.
10347
10348         * dbus/dbus-test.c:
10349         Kill dict test
10350
10351         * doc/dbus-specification.sgml:
10352         Update spec
10353
10354         * test/data/incomplete-messages/missing-body.message:
10355         * test/data/invalid-messages/bad-boolean.message:
10356         * test/data/invalid-messages/bad-boolean-array.message:
10357         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10358         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10359         * test/data/invalid-messages/too-short-dict.message:
10360         * test/data/valid-messages/dict-simple.message:
10361         * test/data/valid-messages/dict.message:
10362         * test/data/valid-messages/emptiness.message:
10363         * test/data/valid-messages/lots-of-arguments.message:
10364         * test/data/valid-messages/no-padding.message:
10365         * test/data/valid-messages/recursive-types.message:
10366         Add missing NAME fields
10367         Fix up dicts & arrays
10368
10369         * test/data/invalid-messages/dict-with-nil-value.message:
10370         Removed, this is not invalid anymore.
10371
10372         * test/data/valid-messages/recursive-types.message:
10373         Add new test for deeply recursive types.
10374
10375 2003-04-07  Havoc Pennington  <hp@pobox.com>
10376
10377         * bus/driver.c (bus_driver_handle_acquire_service): return an
10378         error if you try to acquire a service that starts with ':'
10379
10380 2003-04-07  Havoc Pennington  <hp@redhat.com>
10381
10382         * doc/dbus-specification.sgml: require that base service names
10383         start with ':' and that the base service is created/deleted
10384         as first and last things a connection does on the bus
10385
10386         * bus/dispatch.c (check_existent_service_activation): lots more
10387         work on the activation test; it doesn't fully pass yet...
10388
10389         * test/test-service.c (main): fix so we don't memleak the
10390         connection to the message bus
10391         (filter_func): accept a message asking us to exit
10392
10393 2003-04-06  Havoc Pennington  <hp@pobox.com>
10394
10395         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10396         from Colin Walters
10397
10398         * configure.in: fixes to Qt detection from Colin Walters
10399
10400         * doc/Makefile.am: Only remove generated docbook dirs if they
10401         exist, from Colin Walters
10402
10403         * dbus/dbus-bus.c: change how we set well-known connections to
10404         NULL, so that it works if a single connection is stored in
10405         two well-known array slots.
10406
10407         * test/Makefile.am: remove a lot of stuff that isn't immediately
10408         useful, it's in CVS history if we want it.
10409
10410         * test/test-service.c: use dbus-mainloop instead of that
10411         watch.[hc] crack
10412
10413 2003-04-06  Havoc Pennington  <hp@pobox.com>
10414
10415         * dbus/Makefile.am: split lists of sources into stuff that goes in
10416         the library, util functions that go in the lib and are also used
10417         elsewhere, and util functions that are used in tests/daemon but
10418         don't go in the lib.
10419
10420         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10421         here so it can be used in test binaries also
10422
10423 2003-04-06  Havoc Pennington  <hp@pobox.com>
10424
10425         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10426         here in the parent process, so we can return an error if it
10427         fails. Also, move some of the code into the child so the parent
10428         is less hosed if we fail midway through.
10429
10430         * bus/bus.c (bus_context_new): move pidfile detection further up
10431         in the function, before we start overwriting sockets and such.
10432
10433         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10434
10435         * configure.in: add --with-system-pid-file and --with-system-socket
10436
10437 2003-04-06  Colin Walters  <walters@verbum.org>
10438
10439         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10440
10441         * bus/system.conf.in: Declare a pidfile.
10442
10443         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10444         create one (if appropriate).
10445
10446         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10447         (struct BusConfigParser) [pidfile]: New.
10448         (element_type_to_name, merge_included, start_busconfig_child)
10449         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10450         (bus_config_parser_unref): Free it.
10451         (bus_config_parser_get_pidfile): New function.
10452
10453         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10454
10455         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10456
10457         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10458
10459         * dbus/dbus-sysdeps.h: Prototype it.
10460
10461 2003-04-06  Havoc Pennington  <hp@pobox.com>
10462
10463         * bus/bus.c (bus_context_new): print the address in here, rather
10464         than in main(), because we need to do it before forking the daemon
10465
10466         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10467         on the service nonexistent error
10468
10469         * bus/driver.c (bus_driver_handle_acquire_service): set the
10470         sender on the AcquireService reply
10471
10472         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10473         server also listen on a UNIX socket so services can connect to it.
10474
10475 2003-04-06  Havoc Pennington  <hp@pobox.com>
10476
10477         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10478         so it detects deadlocks and also we actually init threads when
10479         debugging.
10480
10481 2003-04-06  Havoc Pennington  <hp@pobox.com>
10482
10483         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10484         save the domain socket name, and unlink it when we disconnect the
10485         server. Means that at least when we exit normally, we won't leave
10486         a bunch of junk in /tmp
10487
10488         * dbus/dbus-transport-unix.c
10489         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10490         memory management). (I was making a real change here but then
10491         didn't)
10492
10493 2003-04-06  Havoc Pennington  <hp@pobox.com>
10494
10495         * bus/bus.c (bus_context_new): fix wrong handling of
10496         server_data_slot_unref() in the error case.
10497
10498         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10499         "(condition) != 0" to _dbus_real_assert so that
10500         "_dbus_assert (pointer)" doesn't cause a warning
10501
10502         * bus/main.c (main): accept --print-address option to print out
10503         the message bus address
10504
10505         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10506
10507         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10508         "tmpdir" option to unix: address on client side
10509
10510         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10511         to unix: address
10512
10513         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10514         we can use to create sockets in the test suite.
10515
10516         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10517         cleanly. To be used for testing.
10518
10519         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10520
10521         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10522
10523         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10524         handle trying to call this when there's no servers active
10525
10526 2003-04-05  Havoc Pennington  <hp@pobox.com>
10527
10528         * NEWS: update
10529
10530         * configure.in: 0.8
10531
10532 2003-04-05  Havoc Pennington  <hp@pobox.com>
10533
10534         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10535         crash on startup. Need to get "try starting the daemon"
10536         in the test suite I guess. ;-)
10537
10538         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10539         tracked the number of open connections; it's better done in
10540         application-specific code as you want it to span all servers etc.
10541
10542 2003-04-05  Havoc Pennington  <hp@pobox.com>
10543
10544         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10545         patch from Colin Walters
10546
10547 2003-04-05  Havoc Pennington  <hp@pobox.com>
10548
10549         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10550         reality; in fact multiple mechanisms are allowed.
10551
10552         * dbus/dbus-internals.c (_dbus_real_assert)
10553         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10554         _dbus_assert_not_reached() into functions, so that they don't show
10555         up in basic block counts for test coverage, and don't use up as
10556         much disk space. Does mean slower execution speed though, so
10557         assumes --disable-asserts is the normal production case.
10558
10559 2003-04-05  Havoc Pennington  <hp@pobox.com>
10560
10561         * test/Makefile.am (dist-hook): also dist *.in files
10562
10563         * NEWS: update
10564
10565         * configure.in: 0.7
10566
10567 2003-04-05  Havoc Pennington  <hp@pobox.com>
10568
10569         * dbus/dbus-string.c: docs warning
10570
10571         * dbus/dbus-spawn.c: missing docs
10572
10573         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10574
10575 2003-04-05  Havoc Pennington  <hp@pobox.com>
10576
10577         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10578         magic from GLib
10579
10580         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10581         to -1 once we've reaped the babysitter
10582         (_dbus_babysitter_handle_watch): do as much work as we can, not
10583         just one go of it
10584
10585         * bus/activation.c: add code using DBusBabysitter so that we
10586         handle it when a service fails to start up properly.
10587         (bus_activation_service_created): don't remove the activation
10588         entries as we go, just let them get removed when we free the pending
10589         activation. Unref reply messages after sending them.
10590
10591 2003-04-05  Havoc Pennington  <hp@pobox.com>
10592
10593         * test/decode-gcov.c (main): print per-directory stats in the report
10594
10595         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10596
10597 2003-04-05  Havoc Pennington  <hp@pobox.com>
10598
10599         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10600
10601         * test/decode-gcov.c: hack up a little program to suck data
10602         out of gcov files. Yes this is sort of silly.
10603
10604         * configure.in: define something in config.h and do an
10605         AM_CONDITIONAL when gcov is enabled
10606
10607 2003-04-04  Havoc Pennington  <hp@redhat.com>
10608
10609         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10610         return a "babysitter" object that is used to monitor the status of
10611         the spawned process and reap it when required.
10612
10613         * test/test-segfault.c, test/test-exit.c,
10614         test/test-sleep-forever.c: binaries that do various lame things,
10615         used in the test suite.
10616
10617         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10618
10619 2003-04-03  Havoc Pennington  <hp@pobox.com>
10620
10621         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10622         in preparation for modifying it, dbus-sysdeps is getting
10623         a bit unmanageable.
10624
10625 2003-04-03  Havoc Pennington  <hp@redhat.com>
10626
10627         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10628         have multiple ones
10629
10630         * bus/*.[hc]: adapt to mainloop change
10631
10632 2003-04-03  Havoc Pennington  <hp@redhat.com>
10633
10634         * bus/activation.c (load_directory): fix up memleaks
10635         (bus_activation_entry_free): free the entry
10636
10637         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10638         we get one from the message bus; fix memleaks.
10639
10640         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10641
10642 2003-04-03  Havoc Pennington  <hp@pobox.com>
10643
10644         * bus/config-parser.c (bus_config_parser_unref): free
10645         list of mechanisms, bug discovered by test suite enhancements
10646         (putting system.conf and session.conf into suite)
10647
10648         * test/Makefile.am, test/test-service.c: add placeholder for a
10649         test service that we'll activate as part of test suite. Doesn't
10650         do anything yet.
10651
10652         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10653         setting NULL value, and use system malloc not dbus_malloc()
10654         when we have unavoidable memleakage.
10655
10656         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10657         didn't work, and support DBUS_BUS_ACTIVATION.
10658
10659         * bus/activation.c (child_setup): pass our well-known bus type to
10660         the child
10661
10662         * bus/config-parser.c: support <type> to specify well-known type
10663
10664         * doc/dbus-specification.sgml: document the env variables to
10665         locate well-known buses and find service activator
10666
10667 2003-04-02  Havoc Pennington  <hp@redhat.com>
10668
10669         * test/Makefile.am (all-local): add a rule to copy tests to
10670         builddir, so we can have generated tests. Use this to remove the
10671         silly hack for testing system.conf and session.conf. Will use this
10672         shortly to generate .service files pointing to test binaries.
10673
10674 2003-04-02  Havoc Pennington  <hp@redhat.com>
10675
10676         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10677         current alloc and needed new length, not max of the doubled
10678         allocation and needed new length. Also, when building tests,
10679         don't do the double-allocation stuff, just realloc every time.
10680
10681 2003-04-02  Havoc Pennington  <hp@redhat.com>
10682
10683         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10684         in error messages
10685         (_dbus_string_get_dirname): new
10686         (_dbus_sysdeps_test): new
10687         (_dbus_directory_open): include dirnames in error messages
10688
10689         * bus/config-parser.c: interpret <include> and <includedir> and
10690         <servicedir> relative to config file location if the given
10691         filename is not absolute.
10692
10693         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10694
10695 2003-04-02  Havoc Pennington  <hp@redhat.com>
10696
10697         * bus/connection.c (bus_transaction_send_error_reply): set sender
10698         service for the error, and unref the reply on success
10699
10700         * bus/activation.c: convert to use BusTransaction so OOM can be
10701         handled correctly
10702         (bus_activation_service_created): set sender of the message
10703
10704 2003-04-01  Havoc Pennington  <hp@redhat.com>
10705
10706         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10707         <includedir> (at least mostly)
10708
10709         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10710         first, then the user ID
10711
10712 2003-04-01  Havoc Pennington  <hp@pobox.com>
10713
10714         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10715         function
10716
10717         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10718
10719         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10720
10721         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10722         socket 0777, and unlink any existing socket.
10723
10724         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10725         the configuration file so specifies; set up auth mechanism
10726         restrictions
10727
10728         * bus/config-parser.c (bus_config_parser_content): add support
10729         for <fork> option and fill in code for <auth>
10730
10731         * bus/system.conf.in: add <fork/> to default configuration,
10732         and limit auth mechanisms to EXTERNAL
10733
10734         * doc/config-file.txt (Elements): add <fork>
10735
10736         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10737         (_dbus_change_identity): new function
10738
10739 2003-03-31  Havoc Pennington  <hp@redhat.com>
10740
10741         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10742         (_dbus_listen_unix_socket): fix off-by-one error in null
10743         termination spotted by Nalin
10744
10745 2003-03-31  Havoc Pennington  <hp@redhat.com>
10746
10747         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10748         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10749         having a real home directory available.
10750
10751 2003-03-31  Havoc Pennington  <hp@redhat.com>
10752
10753         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10754
10755         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10756
10757         * configure.in: add support for specifying a style of init script
10758         to install
10759
10760 2003-03-31  Havoc Pennington  <hp@redhat.com>
10761
10762         Fix some annoying DBusString API and fix all affected code.
10763
10764         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10765         max_length argument
10766         (_dbus_string_get_data): change to return string instead of using
10767         an out param
10768         (_dbus_string_get_const_data): ditto
10769         (_dbus_string_get_data_len): ditto
10770         (_dbus_string_get_const_data_len): ditto
10771
10772 2003-03-31  Havoc Pennington  <hp@redhat.com>
10773
10774         * bus/main.c (main): fix up the command line arguments to be nicer
10775
10776 2003-03-31  Havoc Pennington  <hp@redhat.com>
10777
10778         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10779         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10780         final location that lands in the config file
10781
10782         * bus/config-loader-expat.c (bus_config_load): fix type of
10783         XML_Parser variable
10784
10785         * doc/TODO: remove TODO item for dbus_bus_get()
10786
10787         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10788
10789 2003-03-31  Havoc Pennington  <hp@pobox.com>
10790
10791         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10792         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10793         argument since they are always client side
10794
10795         * dbus/dbus-server.c (dbus_server_get_address): new function
10796
10797         * bus/main.c (main): take the configuration file as an argument.
10798
10799         * test/data/valid-config-files/debug-allow-all.conf: new file to
10800         use with dispatch.c tests for example
10801
10802         * bus/test-main.c (main): require test data dir
10803
10804         * bus/bus.c (bus_context_new): change this to take a
10805         configuration file name as argument
10806
10807         * doc/config-file.txt (Elements): add <servicedir>
10808
10809         * bus/system.conf, bus/session.conf: new files
10810
10811         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10812         well-known socket if none set
10813
10814         * configure.in: create system.conf and session.conf
10815
10816 2003-03-30  Havoc Pennington  <hp@pobox.com>
10817
10818         * bus/config-parser.c: hacking
10819
10820         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10821         to shut down, since it could cause weirdness with the DBusList
10822         lock
10823
10824         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10825         link-oriented stack routines
10826         (alloc_link): free the mempool if the first alloc from it fails
10827
10828         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10829
10830         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10831         from GLib
10832         (_dbus_string_skip_white): new
10833
10834         * doc/config-file.txt (Elements): add <includedir>
10835
10836 2003-03-28  Havoc Pennington  <hp@pobox.com>
10837
10838         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10839         (_dbus_string_copy_data): new functions
10840
10841 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10842
10843         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10844         * dbus/dbus-bus.h:
10845         Add dbus_bus_get.
10846
10847         * dbus/dbus-memory.c:
10848         Fix a doc comment.
10849
10850 2003-03-28  Havoc Pennington  <hp@pobox.com>
10851
10852         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10853         I think it may have just been superstition. Not sure.
10854
10855         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10856         failures that were not being handled.
10857
10858         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10859
10860         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10861         row that will fail on out-of-memory.
10862
10863         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10864         function for testing out-of-memory handling.
10865
10866         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10867         allocation functions, they do map exactly to the expat ones.
10868
10869 2003-03-27  Havoc Pennington  <hp@redhat.com>
10870
10871         * bus/config-loader-libxml.c (bus_config_load): add another error
10872         check
10873
10874 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10875
10876         * doc/TODO:
10877         Add note about automatic service activation.
10878
10879         * doc/dbus-specification.sgml:
10880         Rename the specification and clarify a few things.
10881
10882 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10883
10884         * Doxyfile.in:
10885         * dbus/dbus-address.c:
10886         * dbus/dbus-dict.c:
10887         * dbus/dbus-marshal.c:
10888         * dbus/dbus-server-debug-pipe.c:
10889         * dbus/dbus-transport-unix.c:
10890         Fix documentation warnings.
10891
10892 2003-03-26  Havoc Pennington  <hp@pobox.com>
10893
10894         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10895         after every test so it's quick and easy to see which leaked, and
10896         so we test multiple dbus_shutdown() calls
10897
10898         * configure.in: change configure.in XML stuff to also support
10899         expat
10900
10901         * config-loader-libxml.c: some hacking
10902
10903         * config-loader-expat.c: some hacking
10904
10905         * config-parser.c: some hacking, plus tests
10906
10907 2003-03-25  Havoc Pennington  <hp@redhat.com>
10908
10909         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10910
10911         * configure.in: add --with-xml option to specify XML library,
10912         right now only libxml is supported.
10913
10914         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10915         nonworking code between home and work, still just stubs
10916
10917 2003-03-24  Havoc Pennington  <hp@redhat.com>
10918
10919         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10920         file
10921
10922         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10923         NULL argument for "message" if the error is a well-known one,
10924         fill in a generic message in this case.
10925
10926         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10927         favor of DBusError
10928
10929         * bus/test.c (bus_test_flush_bus): add
10930
10931         * bus/policy.c (bus_policy_test): test code stub
10932
10933 2003-03-24  Havoc Pennington  <hp@pobox.com>
10934
10935         * bus/connection.c (bus_connections_setup_connection): set up
10936         the "can this user connect" function, but it always returns
10937         TRUE until we have a config file parser so we can have a config
10938         file that allows connections.
10939
10940 2003-03-23  Havoc Pennington  <hp@pobox.com>
10941
10942         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10943         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10944         the mutex, so we can check for proper memory management
10945         and OOM handling.
10946
10947         * dbus/dbus-dataslot.c: remove the mutex from
10948         DBusDataSlotAllocator and lock it manually when using it,
10949         to simplify fitting it into the global slots framework.
10950
10951         * dbus/dbus-threads.c (init_static_locks): rework how we're
10952         handling global locks so they are easily shut down.
10953
10954         * bus/policy.c (bus_policy_append_rule): fix
10955
10956         * bus/test-main.c (main): check for memleaks
10957
10958         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10959         test suite check for memleaks
10960
10961         * dbus/dbus-memory.c: add support in test mode for tracking
10962         number of outstanding blocks
10963
10964 2003-03-23  Havoc Pennington  <hp@pobox.com>
10965
10966         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10967         policies code
10968
10969         * dbus/dbus-hash.h: add ULONG hash keys
10970
10971         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10972         (_dbus_get_group_id): new function
10973
10974 2003-03-20  Havoc Pennington  <hp@redhat.com>
10975
10976         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10977         new function
10978         (dbus_connection_get_unix_user): new function
10979
10980 2003-03-20  Havoc Pennington  <hp@pobox.com>
10981
10982         * bus/connection.c (bus_connection_send_oom_error): assert that
10983         message has a sender
10984         (connection_execute_transaction): ditto
10985         (bus_connection_preallocate_oom_error): fix to set the sender, and
10986         set recipient to the destination service, not the bus driver
10987
10988         * bus/policy.c: hacking
10989
10990         * dbus/dbus-message.c (dbus_message_service_is): new function
10991         (dbus_message_sender_is): new
10992
10993 2003-03-19  Havoc Pennington  <hp@redhat.com>
10994
10995         * bus/policy.c: start sketching code for policy restrictions on
10996         what connections can do.
10997
10998 2003-03-18  Havoc Pennington  <hp@redhat.com>
10999
11000         * doc/TODO: some notes on high-level todo items. Little nitpick
11001         stuff is all in @todo, so no need to add it here.
11002
11003         * doc/config-file.txt: some notes on how config file might look
11004
11005 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11006
11007         * configure.in: 0.6
11008
11009         * NEWS: Update.
11010
11011 2003-03-17  Havoc Pennington  <hp@redhat.com>
11012
11013         * dbus/dbus-internals.h: add gcc attributes so that
11014         our printf-style functions warn on bad arguments to
11015         format
11016
11017         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11018         format bug
11019
11020         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11021         printf format bug
11022
11023 2003-03-17  Havoc Pennington  <hp@redhat.com>
11024
11025         * bus/test-main.c (main): make it print something as it runs
11026         so make check doesn't look stuck
11027
11028         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11029         from CVS, now obsolete
11030
11031 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11032
11033         * bus/dispatch.c: (bus_dispatch):
11034         Refetch the service name since it may have been reallocated
11035         when dbus_message_set_sender was called.
11036
11037         * dbus/dbus-sysdeps.c: (_dbus_accept):
11038         Add address and address length variables and use them to stop
11039         valgrind from complaining.
11040
11041 2003-03-17  Havoc Pennington  <hp@pobox.com>
11042
11043         All tests pass, no memleaks, no valgrind complaints.
11044
11045         * bus/test.c: refcount handler_slot
11046
11047         * bus/connection.c (bus_connections_new): refcount
11048         connection_data_slot
11049
11050         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11051         bytes so that auth scripts pass.
11052
11053         * bus/dispatch.c: init message_handler_slot so it gets allocated
11054         properly
11055
11056         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11057
11058         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11059         dealloc server_pipe_hash when no longer used for benefit of
11060         leak checking
11061
11062         * dbus/dbus-auth.c (process_command): memleak fix
11063
11064         * bus/dispatch.c (check_hello_message): memleak fix
11065
11066 2003-03-16  Havoc Pennington  <hp@pobox.com>
11067
11068         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11069
11070 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11071
11072         * bus/activation.c (bus_activation_activate_service): Append
11073         the pending activation entry to the list of pending activations.
11074
11075 2003-03-16  Havoc Pennington  <hp@pobox.com>
11076
11077         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11078         connections
11079
11080         * dbus/dbus-address.c (create_entry): fix OOM handling when
11081         failing to alloc entry->method
11082
11083 2003-03-16  Havoc Pennington  <hp@pobox.com>
11084
11085         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11086         the watch
11087
11088         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11089         add some missing dbus_set_result
11090
11091         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11092         alloc the DBusMessageHandler
11093
11094         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11095         the transport here, since we call this from the finalizer; it
11096         resulted in a double-finalize.
11097
11098         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11099         where we tried to use transport->connection that was NULL,
11100         happened when transport was disconnected early on due to OOM
11101
11102         * bus/*.c: adapt to handle OOM for watches/timeouts
11103
11104         * dbus/dbus-transport-unix.c: port to handle OOM during
11105         watch handling
11106
11107         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11108         reference to unused bytes instead of a copy
11109
11110         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11111         out of memory
11112
11113         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11114         FALSE on OOM
11115
11116         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11117         of memory
11118
11119 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11120
11121         * doc/dbus-specification.sgml:
11122         Document reply message for ActivateService.
11123
11124 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11125
11126         * bus/activation.c: (bus_pending_activation_entry_free),
11127         (bus_pending_activation_free), (bus_activation_new),
11128         (bus_activation_unref), (bus_activation_service_created),
11129         (bus_activation_activate_service):
11130         * bus/activation.h:
11131         * bus/bus.c: (bus_context_new):
11132         * bus/desktop-file.c: (new_section):
11133         * bus/driver.c: (bus_driver_send_service_deleted),
11134         (bus_driver_handle_activate_service):
11135         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11136         * bus/services.h:
11137         * dbus/dbus-connection.c:
11138         (dbus_connection_send_with_reply_and_block):
11139         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11140         * dbus/dbus-protocol.h:
11141         Make activation work better. Now pending activations will be queued
11142         and the daemon won't try to activate services that are already registered.
11143
11144 2003-03-16  Havoc Pennington  <hp@pobox.com>
11145
11146         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11147         connection data
11148
11149         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11150         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11151
11152 2003-03-16  Havoc Pennington  <hp@pobox.com>
11153
11154         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11155         this. always run the test suite before commit...
11156
11157         * bus/*: adapt to DBusConnection API changes
11158
11159         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11160         requires renaming stuff to avoid dbus_connection_dispatch name
11161         conflict.
11162
11163         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11164         function
11165
11166         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11167         separate from _dbus_message_loader_return_buffer()
11168
11169         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11170         this, because it's now always broken to use; the number of
11171         messages in queue vs. the number still buffered by the message
11172         loader is undefined/meaningless. Should use
11173         dbus_connection_get_dispatch_state().
11174         (dbus_connection_dispatch): rename from
11175         dbus_connection_dispatch_message
11176
11177 2003-03-16  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11180         implementation
11181
11182 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11183
11184         * dbus/dbus-connection.c:
11185         (dbus_connection_send_with_reply_and_block):
11186         Decrease connection->n_incoming when removing an entry
11187         from the list.
11188         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11189         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11190         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11191         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11192         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11193         (dbus_dict_get_byte_array):
11194         Handle NULL arrays and strings. Also add support for byte arrays.
11195
11196         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11197         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11198         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11199         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11200         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11201         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11202         * dbus/dbus-marshal.h:
11203         Add support for marshalling and demarshalling empty arrays and strings.
11204
11205         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11206         (dbus_message_append_string_array),
11207         (dbus_message_iter_get_boolean),
11208         (dbus_message_iter_get_boolean_array),
11209         (dbus_message_iter_get_int32_array),
11210         (dbus_message_iter_get_uint32_array),
11211         (dbus_message_iter_get_double_array),
11212         (dbus_message_iter_get_byte_array),
11213         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11214         (check_message_handling):
11215         Add support for getting empty arrays and dicts.
11216
11217         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11218         Don't do any validation at all for now, that's better than just checking
11219         for ASCII.
11220
11221         * test/data/valid-messages/emptiness.message:
11222         New test message with lots of empty arrays.
11223
11224 2003-03-16  Havoc Pennington  <hp@pobox.com>
11225
11226         * dbus/dbus-connection.c
11227         (_dbus_connection_queue_received_message_link): new function that
11228         can't fail due to OOM
11229
11230         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11231         new function pops a message together with a list link
11232         containing it.
11233
11234         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11235         message queuing functions to avoid needing to alloc memory
11236
11237 2003-03-16  Havoc Pennington  <hp@pobox.com>
11238
11239         Oops - test code was only testing failure of around 30 of the
11240         mallocs in the test path, but it turns out there are 500+
11241         mallocs. I believe this was due to misguided linking setup such
11242         that there was one copy of dbus_malloc etc. in the daemon and one
11243         in the shared lib, and only daemon mallocs were tested. In any
11244         case, the test case now tests all 500+ mallocs, and doesn't pass
11245         yet, though there are lots of fixes in this patch.
11246
11247         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11248         this so that it doesn't need to allocate memory, since it
11249         has no way of indicating failure due to OOM (and would be
11250         annoying if it did).
11251
11252         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11253
11254         * bus/Makefile.am: rearrange to create two self-contained
11255         libraries, to avoid having libraries with overlapping symbols.
11256         that was resulting in weirdness, e.g. I'm pretty sure there
11257         were two copies of global static variables.
11258
11259         * dbus/dbus-internals.c: move the malloc debug stuff to
11260         dbus-memory.c
11261
11262         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11263         empty.
11264
11265         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11266
11267         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11268         on failure.
11269
11270         * bus/dispatch.c (bus_dispatch_add_connection): free
11271         message_handler_slot when no longer using it, so
11272         memory leak checkers are happy for the test suite.
11273
11274         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11275
11276         * bus/bus.c (new_connection_callback): disconnect in here if
11277         bus_connections_setup_connection fails.
11278
11279         * bus/connection.c (bus_connections_unref): fix to free the
11280         connections
11281         (bus_connections_setup_connection): if this fails, don't
11282         disconnect the connection, just be sure there are no side
11283         effects.
11284
11285         * dbus/dbus-string.c (undo_alignment): unbreak this
11286
11287         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11288         leaking
11289         (_dbus_auth_new): fix the order in which we free strings
11290         on OOM failure
11291
11292         * bus/connection.c (bus_connection_disconnected): fix to
11293         not send ServiceDeleted multiple times in case of memory
11294         allocation failure
11295
11296         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11297         get the base service name
11298         (dbus_bus_register_client): don't return base service name,
11299         instead store it on the DBusConnection and have an accessor
11300         function for it.
11301         (dbus_bus_register_client): rename dbus_bus_register()
11302
11303         * bus/dispatch.c (check_hello_message): verify that other
11304         connections on the bus also got the correct results, not
11305         just the one sending hello
11306
11307 2003-03-15  Havoc Pennington  <hp@pobox.com>
11308
11309         Make it pass the Hello handling test including all OOM codepaths.
11310         Now to do other messages...
11311
11312         * bus/services.c (bus_service_remove_owner): fix crash when
11313         removing owner from an empty list of owners
11314         (bus_registry_ensure): don't leave service in the list of
11315         a connection's owned services if we fail to put the service
11316         in the hash table.
11317
11318         * bus/connection.c (bus_connection_preallocate_oom_error): set
11319         error flag on the OOM error.
11320
11321         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11322         handle _dbus_transport_set_connection failure
11323
11324         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11325         to create watches up front and simply enable/disable them as
11326         needed.
11327         (unix_connection_set): this can now fail on OOM
11328
11329         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11330         of enabling/disabling a watch or timeout.
11331
11332         * bus/loop.c (bus_loop_iterate): don't touch disabled
11333         watches/timeouts
11334
11335         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11336
11337 2003-03-15  Havoc Pennington  <hp@pobox.com>
11338
11339         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11340         write useful test code, after all that futzing around ;-)
11341
11342         Test does not yet pass because we can't handle OOM in
11343         _dbus_transport_messages_pending (basically,
11344         dbus_connection_preallocate_send() does not prealloc the write
11345         watch). To fix this, I think we need to add new stuff to
11346         set_watch_functions, namely a SetEnabled function so we can alloc
11347         the watch earlier, then enable it later.
11348
11349         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11350         dbus-memory.c to the convenience lib
11351
11352         * bus/test.c: rename some static functions to keep them clearly
11353         distinct from stuff in connection.c. Handle client disconnection.
11354
11355 2003-03-14  Havoc Pennington  <hp@pobox.com>
11356
11357         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11358         transport, tests more of the real codepath. Set up clients
11359         with bus_setup_debug_client.
11360
11361         * bus/test.c (bus_setup_debug_client): function to set up debug
11362         "clients" on the main loop
11363
11364         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11365         support
11366
11367         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11368         server type
11369
11370         * dbus/dbus-server-debug.c: support a debug server based on pipes
11371
11372         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11373         (_dbus_close): new function
11374
11375         * configure.in: check for socketpair
11376
11377 2003-03-14  Havoc Pennington  <hp@redhat.com>
11378
11379         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11380         cheesy hack
11381
11382         * dbus/dbus-transport-debug.c: rework this a good bit to be
11383         less complicated. hopefully still works.
11384
11385         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11386         manually
11387
11388         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11389         after running it
11390
11391         * dbus/dbus-message.c (dbus_message_copy): rename from
11392         dbus_message_new_from_message, fix it up to copy
11393         all the message fields, add test case
11394
11395         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11396         not quite passing yet
11397
11398 2003-03-14  Havoc Pennington  <hp@pobox.com>
11399
11400         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11401         until no work remains" in test code. (the large diff here
11402         is just code movement, no actual changes)
11403
11404         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11405         1, no point waiting around for test code.
11406         (_dbus_server_debug_accept_transport): unref the timeout
11407         after adding it (right?)
11408
11409         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11410
11411 2003-03-13  Havoc Pennington  <hp@redhat.com>
11412
11413         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11414         out of memory
11415
11416         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11417         of memory
11418
11419         * dbus/dbus-connection.h: Make AddWatchFunction and
11420         AddTimeoutFunction return a bool so they can fail on out-of-memory
11421
11422         * bus/bus.c (bus_context_new): set up timeout handlers
11423
11424         * bus/connection.c (bus_connections_setup_connection): set up
11425         timeout handlers
11426
11427         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11428         can fail
11429
11430         * bus/bus.c (bus_context_new): adapt to changes
11431
11432         * bus/connection.c: adapt to changes
11433
11434         * test/watch.c: adapt to DBusWatch changes
11435
11436         * bus/dispatch.c (bus_dispatch_test): started adding this but
11437         didn't finish
11438
11439 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11440
11441         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11442
11443 2003-03-13  Havoc Pennington  <hp@pobox.com>
11444
11445         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11446         set up a test framework as for the library
11447
11448 2003-03-12  Havoc Pennington  <hp@pobox.com>
11449
11450         Throughout: purge global variables, introduce BusActivation,
11451         BusConnections, BusRegistry, etc. objects instead.
11452
11453         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11454         message bus object
11455
11456         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11457         going to redo this a bit differently I think
11458
11459 2003-03-12  Havoc Pennington  <hp@redhat.com>
11460
11461         Mega-patch that gets the message bus daemon initially handling
11462         out-of-memory. Work still needed. Also lots of random
11463         moving stuff to DBusError instead of ResultCode.
11464
11465         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11466
11467         * dbus/dbus-connection.c
11468         (dbus_connection_send_with_reply_and_block): use DBusError
11469
11470         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11471         DBusResultCode
11472
11473         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11474         code here, as the only failure possible is OOM.
11475
11476         * bus/connection.c (bus_connection_disconnect):
11477         rename bus_connection_disconnected as it's a notification only
11478
11479         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11480         "name" on get_args failure, should be done by get_args;
11481         don't disconnect client for bad args, just return an error.
11482         (bus_driver_handle_service_exists): ditto
11483
11484         * bus/services.c (bus_services_list): NULL-terminate returned array
11485
11486         * bus/driver.c (bus_driver_send_service_lost)
11487         (bus_driver_send_service_acquired): send messages from driver to a
11488         specific client to the client's unique name, not to the broadcast
11489         service.
11490
11491         * dbus/dbus-message.c (decode_header_data): reject messages that
11492         contain no name field
11493         (_dbus_message_get_client_serial): rename to
11494         dbus_message_get_serial and make public
11495         (_dbus_message_set_serial): rename from set_client_serial
11496         (_dbus_message_set_reply_serial): make public
11497         (_dbus_message_get_reply_serial): make public
11498
11499         * bus/connection.c (bus_connection_foreach): allow stopping
11500         iteration by returning FALSE from foreach function.
11501
11502         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11503         (dbus_connection_free_preallocated_send)
11504         (dbus_connection_preallocate_send): new API for sending a message
11505         without possibility of malloc failure.
11506         (dbus_connection_send_message): rename to just
11507         dbus_connection_send (and same for whole function family)
11508
11509         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11510
11511         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11512
11513         * bus/activation.c: handle/return errors
11514
11515         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11516
11517         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11518         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11519         (_dbus_result_from_errno): move to this file
11520
11521 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11522
11523         * dbus/dbus-marshal.c:
11524         (_dbus_marshal_set_string):
11525         Take a length argument so we can marshal the correct string
11526         length.
11527
11528         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11529         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11530         (_dbus_marshal_test):
11531         * dbus/dbus-marshal.h:
11532         Add support for marshalling and demarshalling dicts.
11533
11534         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11535         Add support for TYPE DICT.
11536
11537         * dbus/dbus-message.c: (set_string_field):
11538         Adjust header padding.
11539
11540         (dbus_message_append_args_valist), (dbus_message_append_dict),
11541         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11542         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11543         (check_message_handling), (check_have_valid_message):
11544         * dbus/dbus-message.h:
11545         Add functions for setting and getting dicts.
11546
11547         * dbus/dbus-protocol.h:
11548         Add DBUS_TYPE_DICT.
11549
11550         * dbus/dbus.h:
11551         Add dbus-dict.h
11552
11553         * doc/dbus-specification.sgml:
11554         Add information about how dicts are marshalled.
11555
11556         * test/data/invalid-messages/dict-with-nil-value.message:
11557         * test/data/invalid-messages/too-short-dict.message:
11558         * test/data/valid-messages/dict-simple.message:
11559         * test/data/valid-messages/dict.message:
11560         Add sample messages containing dicts.
11561
11562 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11563
11564         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11565
11566 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11567
11568         * dbus/Makefile.am:
11569         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11570         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11571         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11572         (dbus_dict_set_double), (dbus_dict_set_string),
11573         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11574         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11575         (dbus_dict_set_string_array), (_dbus_dict_test):
11576         * dbus/dbus-dict.h:
11577         Fix according to comments from Havoc.
11578
11579 2003-03-06  Michael Meeks  <michael@server.home>
11580
11581         * configure.in: if we don't have kde-config, disable have_qt.
11582
11583 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11584
11585         * dbus/Makefile.am:
11586         Add dbus-dict.[ch]
11587
11588         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11589         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11590         (dbus_dict_remove), (dbus_dict_get_value_type),
11591         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11592         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11593         (dbus_dict_put_double), (dbus_dict_put_string),
11594         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11595         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11596         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11597         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11598         (dbus_dict_get_double), (dbus_dict_get_string),
11599         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11600         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11601         (dbus_dict_get_string_array), (_dbus_dict_test):
11602         * dbus/dbus-dict.h:
11603         Add DBusDict implementation
11604
11605         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11606         * dbus/dbus-test.h:
11607         Add _dbus_dict_test
11608
11609 2003-03-04  Havoc Pennington  <hp@pobox.com>
11610
11611         * test/data/auth/*: adapt to changes
11612
11613         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11614         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11615         userid
11616
11617         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11618         more stuff from being in a context name, to make the protocol
11619         simpler to deal with
11620
11621         * dbus/dbus-errors.c (dbus_error_has_name): new function
11622         (dbus_error_is_set): new function
11623
11624         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11625         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11626
11627         * dbus/dbus-connection.c (dbus_connection_flush): also read
11628         messages during a flush operation
11629
11630         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11631
11632 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11633
11634         * configure.in: Check for gethostbyname on Solaris.
11635
11636         * dbus/dbus-transport.c: (_dbus_transport_open):
11637         Remove duplicate "tcp" entry.
11638
11639         * doc/dbus-specification.sgml:
11640         Clarify some things.
11641
11642 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11643
11644         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11645         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11646         (_dbus_keyring_test):
11647         * dbus/dbus-md5.c: (_dbus_md5_compute):
11648         * dbus/dbus-sha.c: (_dbus_sha_compute):
11649         Plug memory leaks.
11650
11651 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11652
11653         * README: Add some things.
11654
11655 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11656
11657         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11658         after case DBUS_TYPE_BOOELAN.
11659
11660 2003-03-02  Havoc Pennington  <hp@pobox.com>
11661
11662         * test/break-loader.c (randomly_set_extreme_ints): add test that
11663         sets really huge and small integers
11664
11665         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11666         that length of boolean array fits in the string, and that
11667         string has room for boolean value in single-bool case.
11668
11669         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11670         optional value to "ALIGN" command which is what to fill the
11671         alignment with.
11672
11673         * test/data/valid-messages/no-padding.message: add regression
11674         test for the message padding problem
11675
11676 2003-03-02  Havoc Pennington  <hp@pobox.com>
11677
11678         * dbus/dbus-message.c (decode_header_data): fix to always init
11679         message_padding, from Benjamin Dauvergne
11680
11681 2003-03-02  Havoc Pennington  <hp@pobox.com>
11682
11683         * configure.in: 0.5
11684
11685         * NEWS: Update.
11686
11687 2003-03-01  Joe Shaw  <joe@assbarn.com>
11688
11689         * configure.in: Check for "struct cmsgcred" and try to access its
11690         members for BSD-like unices.
11691
11692         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11693         _dbus_read_credentials_unix_socket().
11694         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11695         read() for reading the credential byte off the unix socket.  Use
11696         struct cmsgcred on systems that support it.
11697
11698 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11699
11700         * glib/Makefile.am:
11701         * configure.in:
11702         Make gthreads-2.0 dependency optional. Don't build thread test if
11703         its not found.
11704
11705 2003-02-27  Havoc Pennington  <hp@pobox.com>
11706
11707         * dbus/dbus-connection.c
11708         (dbus_connection_send_message_with_reply_and_block): fix doh!
11709         doh! doh! bug that resulted in never removing a reply from the
11710         queue, no wonder we called get_reply_serial so much ;-)
11711
11712         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11713         and client serial instead of demarshaling them every time
11714
11715 2003-02-27  Havoc Pennington  <hp@pobox.com>
11716
11717         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11718         more inlined, using dbus-string-private.h, speeds things up
11719         substantially
11720
11721         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11722         when freeing the string
11723         (_dbus_string_steal_data): fix for align offset
11724         (undo_alignment): new function
11725
11726 2003-02-26  Havoc Pennington  <hp@redhat.com>
11727
11728         All kinds of audit fixes from Owen, plus initial attempt to
11729         handle unaligned memory returned from malloc.
11730
11731         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11732         leave room for align_offset and nul byte
11733         (fixup_alignment): function to track an align_offset and
11734         ensure real->str is aligned
11735         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11736         to allow a nul byte plus align offset
11737         (_dbus_string_lock): fix overflow issue
11738         (_dbus_string_init_const_len): add assertions on sanity of len,
11739         assign allocated to be ALLOCATION_PADDING larger than len
11740         (set_length): fixup the overflow handling
11741         (_dbus_string_get_data_len): fix overflow in assertion
11742         (open_gap): detect overflow in size of gap to be opened
11743         (_dbus_string_lengthen): add overflow check
11744         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11745         (_dbus_string_append): add overflow check
11746         (_dbus_string_append_unichar): overflow
11747         (_dbus_string_delete): fix overflow in assertion
11748         (_dbus_string_copy_len): overflow in assertion
11749         (_dbus_string_replace_len): overflows in assertions
11750         (_dbus_string_find): change to implement in terms of
11751         _dbus_string_find_to
11752         (_dbus_string_find_to): assorted fixage
11753         (_dbus_string_equal_c_str): assert c_str != NULL,
11754         fix logic so the function works
11755         (_dbus_string_ends_with_c_str): fix overflow thingy
11756         (_dbus_string_base64_encode): overflow fix
11757         (_dbus_string_validate_ascii): overflow
11758         (_dbus_string_validate_nul): overflow
11759
11760 2003-02-26  Havoc Pennington  <hp@redhat.com>
11761
11762         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11763
11764 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11765
11766         * configure.in:
11767         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11768
11769         * dbus/dbus-connection.c:
11770         * dbus/dbus-connection.h:
11771         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11772         Add dbus_connection_set_wakeup_main_function and use it when queueing
11773         incoming and outgoing messages.
11774
11775
11776         * dbus/dbus-dataslot.c:
11777         Threadsafe usage of DBusDataSlotAllocator
11778
11779         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11780         dbus_new can fail.
11781
11782         * dbus/dbus-server-unix.c:
11783         Add todo comment
11784
11785         * glib/dbus-gmain.c:
11786         Implement the new wakeup functions for glib.
11787
11788         * glib/Makefile.am:
11789         * glib/test-thread-client.c:
11790         * glib/test-thread-server.c:
11791         * glib/test-thread.h:
11792         Initial cut at some thread test code. Not really done yet.
11793
11794 2003-02-26  Havoc Pennington  <hp@pobox.com>
11795
11796         * dbus/dbus-connection.c
11797         (dbus_connection_send_message_with_reply_and_block): fix crash
11798         where we ref'd the outgoing message instead of the returned reply
11799
11800         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11801         at the end of this function, so if we didn't need to read for
11802         authentication, we reinstall it for receiving messages
11803
11804         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11805         a NULL sender for peer-to-peer case
11806
11807         * dbus/dbus-transport-unix.c (check_read_watch): handle
11808         !authenticated case correctly
11809
11810         * glib/dbus-gmain.c: add support for DBusServer
11811
11812         * dbus/dbus-server.c: add data slot support
11813
11814         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11815         return values and handle errors
11816
11817         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11818         DBusConnection
11819
11820         * Doxyfile.in (INPUT): add glib subdir
11821
11822         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11823         setup_with_g_main instead of hookup_with_g_main; write docs
11824
11825 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11826
11827         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11828         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11829         * dbus/dbus-message.c: (dbus_message_append_boolean),
11830         (dbus_message_append_boolean_array),
11831         (dbus_message_get_args_valist), (_dbus_message_test):
11832         * dbus/dbus-message.h:
11833         * doc/dbus-specification.sgml:
11834         Various fixes as pointed out by Havoc.
11835
11836         * test/data/invalid-messages/bad-boolean-array.message:
11837         * test/data/invalid-messages/bad-boolean.message:
11838         Add invalid boolean value test cases.
11839
11840 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11841
11842         * dbus/dbus-internals.c: (_dbus_type_to_string):
11843         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11844         (_dbus_marshal_validate_arg):
11845         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11846         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11847         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11848         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11849         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11850         (dbus_message_iter_get_double),
11851         (dbus_message_iter_get_boolean_array), (message_iter_test):
11852         * dbus/dbus-message.h:
11853         * dbus/dbus-protocol.h:
11854         * doc/dbus-specification.sgml:
11855         * test/data/valid-messages/lots-of-arguments.message:
11856         Add support for boolean and boolean array types.
11857
11858 2003-02-23  Havoc Pennington  <hp@pobox.com>
11859
11860         * dbus/dbus-keyring.c: finish most of this implementation and
11861         simple unit test
11862
11863         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11864         these barf if the error isn't cleared to NULL
11865
11866         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11867         (_dbus_create_directory): new function
11868
11869         * dbus/dbus-errors.c (dbus_set_error): fix warning
11870
11871         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11872         (_dbus_string_hex_decode): new function
11873         (test_hex_roundtrip): test code
11874
11875         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11876
11877         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11878
11879         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11880         the save-to-temp/rename trick to atomically write the new file
11881         (_dbus_string_parse_uint): new function
11882
11883 2003-02-22  Havoc Pennington  <hp@pobox.com>
11884
11885         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11886
11887 2003-02-22  Havoc Pennington  <hp@pobox.com>
11888
11889         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11890         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11891
11892         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11893
11894         * dbus/test/data/sha-1: add US government test suite for SHA-1
11895
11896 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11897
11898         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11899         Make string arrays NULL-terminated.
11900
11901         * dbus/dbus-memory.c: (dbus_free_string_array):
11902         * dbus/dbus-memory.h:
11903         New function for freeing NULL-terminated string arrays.
11904
11905         * dbus/dbus-message-builder.c: (append_quoted_string),
11906         (_dbus_message_data_load):
11907         Add support for array types.
11908
11909         * dbus/dbus-message.c: (check_message_handling):
11910         Add more types as test cases.
11911
11912         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11913         (_dbus_string_parse_double):
11914         Add the start offset to the end offset.
11915
11916         * test/data/valid-messages/lots-of-arguments.message:
11917         New test message with lots of arguments.
11918
11919 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11920
11921         * dbus/dbus-message.c: (dbus_message_append_nil),
11922         (dbus_message_append_int32), (dbus_message_append_uint32),
11923         (dbus_message_append_double), (dbus_message_append_string),
11924         (dbus_message_append_int32_array),
11925         (dbus_message_append_uint32_array),
11926         (dbus_message_append_double_array),
11927         (dbus_message_append_byte_array),
11928         (dbus_message_append_string_array):
11929         Fix all out-of-memory handling in these functions.
11930
11931 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11932
11933         * dbus/dbus-message.c: (dbus_message_append_nil):
11934         Fix a silly.
11935
11936 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11937
11938         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11939         (dbus_message_append_nil), (dbus_message_append_int32_array),
11940         (dbus_message_append_uint32_array),
11941         (dbus_message_append_double_array),
11942         (dbus_message_append_byte_array),
11943         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11944         (dbus_message_iter_get_int32_array),
11945         (dbus_message_iter_get_uint32_array),
11946         (dbus_message_iter_get_double_array),
11947         (dbus_message_iter_get_byte_array),
11948         (dbus_message_iter_get_string_array):
11949
11950         * dbus/dbus-message.h:
11951         Add functions for appending and getting arrays.
11952
11953 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11954
11955         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11956         element size at least 8 bytes, fixes mempool tests on
11957         64-bit machines.
11958
11959 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11960
11961         * dbus/dbus-transport-unix.c (unix_do_iteration):
11962         Unlock the connection mutex during a blocking select call.
11963         Add todo about how we need a way to wake up the select.
11964
11965         * dbus/dbus-connection-internal.h:
11966         * dbus/dbus-connection.c:
11967         Add _dbus_connection_lock and _dbus_connection_unlock.
11968
11969 2003-02-19  Havoc Pennington  <hp@pobox.com>
11970
11971         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11972         Doxyfile.in, not Doxyfile
11973
11974         * dbus/dbus-keyring.c: do some hacking on this
11975
11976         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11977
11978         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11979         dbus_error_init
11980         (dbus_set_error): remove dbus_error_init, check for message ==
11981         NULL *before* we sprintf into it, and add @todo about including
11982         system headers in this file
11983
11984         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11985
11986         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11987
11988         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11989         get various bits of user information based on either username
11990         or user ID
11991         (_dbus_homedir_from_username): new function
11992
11993 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11994
11995         * configure.in:
11996         Add check for nonposix getpwnam_r
11997
11998         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11999         Align the pool element size to a sizeof (void *) boundary.
12000
12001         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12002         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12003         General Solaris fixes.
12004
12005         * test/data/valid-messages/simplest-manual.message:
12006         Explicitly state that we want little-endian packing.
12007
12008 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12009
12010         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12011
12012         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12013         Added to create a transport connecting using a tcp/ip socket.
12014
12015         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12016         to a tcp socket at given host and port.
12017         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12018         hostname and port.
12019
12020         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12021
12022         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12023         Added to create a server listening on a TCP/IP socket.
12024
12025 2003-02-19  Havoc Pennington  <hp@pobox.com>
12026
12027         Throughout: mop up all the Doxygen warnings and undocumented
12028         stuff.
12029
12030         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12031         to search any paths.
12032
12033         * dbus/dbus-threads.c: move global mutex initializers to
12034         dbus-internals.h, multiple prototypes was confusing doxygen
12035         besides being kind of ugly
12036
12037         * Doxyfile (PREDEFINED): have Doxygen define
12038         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12039         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12040         (do not abuse the feature! it's for stuff like the autogenerated
12041         macros in dbus-md5.c, not just for things you don't feel like
12042         documenting...)
12043
12044 2003-02-18  Havoc Pennington  <hp@pobox.com>
12045
12046         * dbus/dbus-string.c (_dbus_string_zero): new function
12047
12048         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12049         wrap it in some dbus-friendly API
12050
12051         * dbus/dbus-types.h: add 16-bit types
12052
12053 2003-02-18  Joe Shaw  <joe@assbarn.com>
12054
12055         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12056         credentials from our currently running process.
12057         (get_word): Fix a buglet where we were copying the entire length
12058         instead of relative to our position.
12059
12060         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12061         keys on the stack... it's 640k of data.
12062
12063         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12064         read the credentials byte off the socket, even if we don't have
12065         SO_PEERCRED.
12066         (_dbus_poll): Implement poll() using select() for systems which
12067         don't have it.
12068
12069         * glib/test-dbus-glib.c (main): Print out an error if no
12070         parameters are given.
12071
12072         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12073         can fallback to a secondary auth mechanism if the first fails.
12074
12075 2003-02-18  Havoc Pennington  <hp@pobox.com>
12076
12077         * AUTHORS: add Alex
12078
12079 2003-02-17  Havoc Pennington  <hp@pobox.com>
12080
12081         * doc/dbus-specification.sgml: lots of cosmetic
12082         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12083         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12084         s/server/bus/ (except in authentication section). Add a section
12085         "Message Bus Message Routing"
12086
12087 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12088
12089         Release 0.4
12090
12091         * NEWS: Update
12092
12093 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12094
12095         * doc/dbus-specification.sgml:
12096         Specification updates.
12097
12098 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12099
12100         * bus/activation.c: (bus_activation_init), (child_setup),
12101         (bus_activation_activate_service):
12102         * bus/activation.h:
12103         * bus/main.c: (main):
12104         Set DBUS_ADDRESS environment variable.
12105
12106         * dbus/dbus-errors.c: (dbus_set_error):
12107         Don't use va_copy since that's a C99 feature.
12108
12109         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12110         (_dbus_spawn_async):
12111         * dbus/dbus-sysdeps.h:
12112         Add child_setup_func to _dbus_spawn_async.
12113
12114         * doc/dbus-specification.sgml:
12115         Update specification.
12116
12117         * test/spawn-test.c: (setup_func), (main):
12118         Fix test.
12119
12120 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12121
12122         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12123         Added todo.
12124
12125 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12126
12127         * doc/.cvsignore:
12128         * doc/Makefile.am:
12129         * doc/dbus-test-plan.sgml:
12130         Add test plan document.
12131
12132         * test/Makefile.am:
12133         Fix distcheck.
12134
12135 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12136
12137         * dbus/dbus-message.c: (decode_header_data),
12138         (_dbus_message_loader_return_buffer):
12139         Set the header padding amount when loading a message.
12140
12141 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12142
12143         * bus/dispatch.c: (send_one_message):
12144         Only send broadcast messages to registered connections.
12145
12146         * dbus/dbus-message.c: (dbus_message_name_is):
12147         * dbus/dbus-message.h:
12148         New convenience function.
12149
12150         * dbus/dbus-transport-debug.c: (do_reading):
12151         Only dispatch one message per run.
12152
12153         * test/Makefile.am:
12154         * test/bus-test.c: (new_connection_callback), (die),
12155         (test_hello_client1_handler), (test_hello_client2_handler),
12156         (test_hello_replies), (main):
12157
12158         * test/bus-test-loop.[ch]:
12159         Add these.
12160
12161 2003-02-16  Havoc Pennington  <hp@pobox.com>
12162
12163         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12164         backward conditional
12165
12166 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12167
12168         * dbus/dbus-connection.c:
12169         Implement sent_message_with_reply. (with_reply_and block is still
12170         busted).
12171         Made dispatch_message not lose message if OOM.
12172
12173         * dbus/dbus-errors.h:
12174         Add NoReply error (for reply timeouts).
12175
12176 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12177
12178         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12179         Actually free keys and values when destroying hashtable.
12180
12181 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12182
12183         * dbus/dbus-auth.c: (client_try_next_mechanism):
12184         Plug a leak.
12185
12186         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12187         Return TRUE if there's no thread implementation around.
12188
12189         * glib/dbus-gmain.c: (free_source),
12190         (dbus_connection_hookup_with_g_main):
12191         Make sure to remove the GSource when the connection is finalized.
12192
12193 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12194
12195         * bus/dispatch.c: (bus_dispatch_message_handler):
12196         * dbus/dbus-errors.h:
12197         Return an error if someone tries to send a message to a service
12198         that doesn't exist.
12199
12200 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12201
12202         * bus/activation.c: (load_directory), (bus_activation_init),
12203         (bus_activation_activate_service):
12204         * bus/activation.h:
12205         * bus/driver.c:
12206         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12207         More work on the activation handling.
12208
12209         * dbus/dbus-errors.h:
12210         Add some error messages
12211
12212         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12213         * dbus/dbus-message.h:
12214         New function that creates an error message.
12215
12216         * dbus/dbus-protocol.h:
12217         Add ACTIVATE_SERVER message.
12218
12219         * dbus/dbus-server-unix.c: (unix_handle_watch),
12220         (_dbus_server_new_for_domain_socket):
12221         Call _dbus_fd_set_close_on_exec.
12222
12223         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12224         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12225         (_dbus_fd_set_close_on_exec):
12226         * dbus/dbus-sysdeps.h:
12227         Add _dbus_fd_set_close_on exec function. Also add function that checks
12228         that all open fds are set to close-on-exec and warns otherwise.
12229
12230         * dbus/dbus-transport-unix.c:
12231         (_dbus_transport_new_for_domain_socket):
12232         Call _dbus_fd_set_close_on_exec.
12233
12234 2003-02-16  Havoc Pennington  <hp@pobox.com>
12235
12236         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12237         allow people to avoid setting SIGPIPE to SIG_IGN
12238         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12239         we've been asked not to
12240
12241 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12242
12243         * dbus/dbus-list.c: (_dbus_list_append_link),
12244         (_dbus_list_prepend_link):
12245         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12246         (dbus_realloc):
12247         Warning fixes.
12248
12249 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12250
12251         * bus/Makefile.am:
12252         * bus/activation.c: (bus_activation_entry_free),
12253         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12254         * bus/activation.h:
12255         * bus/main.c: (main):
12256         Add simple activation support, doesn't work yet though.
12257
12258 2003-02-15   Zack Rusin  <zack@kde.org>
12259
12260         * qt/dbus-qthread.cpp:  small casting fix
12261
12262 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12263
12264         * dbus/dbus-errors.c: (dbus_set_error):
12265         * dbus/dbus-errors.h:
12266         Add a few errors and make dbus_set_error void.
12267
12268         * dbus/dbus-sysdeps.c:
12269         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12270         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12271         * dbus/dbus-sysdeps.h:
12272         Add _dbus_spawn_async.
12273
12274         * test/spawn-test.c: (main):
12275         Test for _dbus_spawn_async.
12276
12277 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12278
12279         * dbus/dbus-internals.h:
12280         Fix build without tests.
12281
12282         * dbus/dbus-list.c: (alloc_link):
12283         Fix a segfault when a malloc fails.
12284
12285         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12286         (dbus_malloc0), (dbus_realloc):
12287         Add support for malloc debugging.
12288
12289 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12290
12291         * dbus/dbus-threads.c:
12292         * dbus/dbus-threads.h:
12293         Add condvars. Remove static mutext from API.
12294         Implement static mutexes by initializing them from threads_init.
12295
12296         * glib/dbus-gthread.c:
12297         * qt/dbus-qthread.cpp:
12298         Update with the thread api changes.
12299
12300
12301         * dbus/dbus-list.c:
12302         * dbus/dbus-list.h:
12303         Turn StaticMutex into normal mutex + init function.
12304         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12305         _dbus_list_append_link, _dbus_list_prepend_link
12306
12307
12308         * dbus/dbus-sysdeps.c:
12309         * dbus/dbus-sysdeps.h:
12310         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12311         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12312
12313         * dbus/dbus-protocol.h:
12314         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12315
12316         * dbus/dbus-message.c:
12317         Make ref/unref atomic.
12318         Fix some docs.
12319
12320         * dbus/dbus-connection-internal.h:
12321         * dbus/dbus-connection.c:
12322         * dbus/dbus-connection.h:
12323         Make threadsafe.
12324         Change _peek to _borrow,_return & _steal_borrowed.
12325         Change disconnect callback to event.
12326         Make dbus_connection_dispatch_messages reentrant.
12327
12328         * dbus/dbus-transport.c:
12329         Don't ref the connection on calls to the transport
12330         implementation.
12331
12332         * dbus/dbus-message-handler.c:
12333         Make threadsafe.
12334
12335         * glib/dbus-gmain.c:
12336         Don't use peek_message anymore
12337
12338         * test/Makefile.am:
12339         * test/debug-thread.c:
12340         * test/debug-thread.h:
12341         Simple thread implementation that asserts() on deadlocks in
12342         single-threaded code.
12343
12344         * test/bus-test.c:
12345         (main) Call debug_threads_init.
12346
12347         * test/watch.c:
12348         Use disconnect message instead of disconnect callback.
12349
12350         * bus/connection.c:
12351         * bus/connection.h:
12352         Don't call dbus_connection_set_disconnect_function. Instead export
12353         bus_connection_disconnect.
12354
12355         * bus/dispatch.c:
12356         Call bus_connection_disconnect when we get a disconnected message.
12357
12358 2003-02-15  Havoc Pennington  <hp@pobox.com>
12359
12360         * dbus/dbus-message.c (dbus_message_new): fool around with the
12361         docs
12362
12363 2003-02-14  Havoc Pennington  <hp@pobox.com>
12364
12365         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12366
12367         * dbus/dbus-memory.c: fail if the debug functions indicate we
12368         should
12369
12370         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12371         (_dbus_decrement_fail_alloc_counter): debug functions to
12372         simulate memory allocation failures
12373
12374 2003-02-14  Havoc Pennington  <hp@pobox.com>
12375
12376         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12377         to DBusError
12378
12379 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12380
12381         * bus/driver.c: (bus_driver_handle_hello):
12382         * bus/driver.h:
12383         * bus/services.c: (bus_service_lookup):
12384         Reorder message sending so we get a more sane order.
12385
12386         * test/bus-test.c: (message_handler):
12387         Fix tyop.
12388
12389 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12390
12391         * bus/driver.c: (bus_driver_send_service_deleted),
12392         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12393         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12394         (bus_driver_send_welcome_message),
12395         (bus_driver_handle_list_services),
12396         (bus_driver_handle_acquire_service),
12397         (bus_driver_handle_service_exists):
12398         * dbus/dbus-bus.c: (dbus_bus_register_client),
12399         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12400         * dbus/dbus-errors.c: (dbus_result_to_string):
12401         * dbus/dbus-errors.h:
12402         * dbus/dbus-message.c: (dbus_message_append_args),
12403         (dbus_message_append_args_valist), (dbus_message_get_args),
12404         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12405         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12406         (dbus_message_iter_get_byte_array),
12407         (dbus_message_iter_get_string_array), (message_iter_test),
12408         (check_message_handling), (_dbus_message_test):
12409         * dbus/dbus-message.h:
12410         * test/bus-test.c: (main):
12411         Change fields to arguments in messages, so that they won't be
12412         confused with header fields.
12413
12414         * glib/test-dbus-glib.c: (main):
12415         Remove append_fields from hello message.
12416
12417 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12418
12419         * dbus/dbus-errors.c:
12420         * dbus/dbus-message.c:
12421         * dbus/dbus-string.c:
12422         Documentation fixes.
12423
12424 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12425
12426         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12427         (remove_timeout):
12428         Implement support for timeouts in dbus-glib.
12429
12430 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12431
12432         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12433         * dbus/dbus-message.c: (process_test_subdir):
12434         * test/break-loader.c: (find_breaks_based_on):
12435         Plug some memory leaks.
12436
12437 2003-02-13  Richard Hult  <rhult@codefactory.se>
12438
12439         * bus/main.c: Fix build.
12440
12441         * dbus/dbus-errors.h:
12442         * dbus/dbus-errors.c: Fix copyright for Anders.
12443
12444 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * bus/Makefile.am:
12447         Add utils.[ch]
12448
12449         * bus/connection.c: (bus_connection_foreach):
12450         Fix a warning.
12451
12452         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12453         (unescape_string), (new_section), (parse_section_start),
12454         (parse_key_value), (report_error), (bus_desktop_file_load),
12455         (bus_desktop_file_get_string):
12456         * bus/desktop-file.h:
12457         Use DBusError for error reporting.
12458
12459         * bus/dispatch.c: (send_one_message),
12460         (bus_dispatch_message_handler):
12461         * bus/driver.c: (bus_driver_send_service_deleted),
12462         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12463         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12464         (bus_driver_send_welcome_message),
12465         (bus_driver_handle_list_services),
12466         (bus_driver_handle_acquire_service),
12467         (bus_driver_handle_service_exists):
12468         * bus/loop.c: (bus_loop_run):
12469         * bus/main.c:
12470         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12471
12472         * bus/utils.c: (bus_wait_for_memory):
12473         * bus/utils.h:
12474         New files with general utility functions.
12475
12476         * dbus/dbus-internals.h:
12477         Remove _DBUS_HANDLE_OOM.
12478
12479 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12480
12481         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12482         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12483         * dbus/dbus-errors.h:
12484         Add DBusError structure.
12485
12486 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12487
12488         * test/data/valid-messages/standard-acquire-service.message:
12489         * test/data/valid-messages/standard-hello.message:
12490         * test/data/valid-messages/standard-list-services.message:
12491         * test/data/valid-messages/standard-service-exists.message:
12492         Add some standard messages.
12493
12494 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12495
12496         * bus/driver.c: (bus_driver_send_welcome_message),
12497         (bus_driver_handle_list_services),
12498         (bus_driver_handle_acquire_service),
12499         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12500         Update for API changes in libdbus.
12501
12502         * dbus/dbus-message.c: (dbus_message_new_reply):
12503         * dbus/dbus-message.h:
12504         Remove the name argument. The spec states that replies shouldn't
12505         have a name.
12506
12507 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12508
12509         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12510         (report_error), (bus_desktop_file_load), (lookup_section),
12511         (lookup_line), (bus_desktop_file_get_raw),
12512         (bus_desktop_file_get_string):
12513         * bus/desktop-file.h:
12514         Some fixes, and new functions for getting a key value from a section.
12515
12516 2003-02-13  Havoc Pennington  <hp@pobox.com>
12517
12518         * test/data/auth/fail-after-n-attempts.auth-script: new test
12519
12520         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12521         reject the client.
12522
12523 2003-02-13  Havoc Pennington  <hp@pobox.com>
12524
12525         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12526         dbus_credentials_match were backward
12527
12528         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12529         NO_CREDENTIALS and ROOT_CREDENTIALS
12530
12531         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12532         into here. Never process more commands after we've reached an
12533         end state; store further data as unused bytes.
12534
12535         * test/data/auth/*: add more auth tests
12536
12537         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12538         command to match exact string and EXPECT_UNUSED to match unused
12539         bytes
12540
12541         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12542
12543 2003-02-12  Havoc Pennington  <hp@pobox.com>
12544
12545         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12546         \r off of popped lines
12547
12548         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12549         scripts
12550
12551         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12552         SEND, append \r\n
12553
12554 2003-02-12  Havoc Pennington  <hp@pobox.com>
12555
12556         * dbus/Makefile.am: remove break-loader from the build, since it
12557         moved.
12558
12559         * configure.in: add --enable-gcov to turn on coverage profiling
12560         flags and disable optimization
12561
12562 2003-02-10  Havoc Pennington  <hp@pobox.com>
12563
12564         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12565         initial cut at test framework for DBusAuth from laptop.
12566         Doesn't quite work yet but it compiles and I need to get
12567         it off the 266mhz laptop. ;-)
12568
12569         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12570         fix a memleak in error case
12571
12572 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12573
12574         * bus/Makefile.am:
12575         * bus/desktop-file.c:
12576         * bus/desktop-file.h:
12577         Add a desktop file parser.
12578
12579 2003-02-11  Zack Rusin  <zack@kde.org>
12580
12581         * qt/message.[h|cpp]: sample implementation
12582         of the KDE wrapper for DBusMessage
12583
12584 2003-02-09  Zack Rusin  <zack@kde.org>
12585
12586         * test/bus-test.c: make_it_compile
12587         * doc/dbus-specification.sgml: minimal semantic fix
12588
12589 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12590
12591         Release 0.3
12592
12593         * NEWS: Update
12594
12595 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12596
12597         * dbus/Makefile.am:
12598         * dbus/dbus-break-loader.c:
12599         * test/Makefile.am:
12600         * test/break-loader.c:
12601         Move dbus-break-loader to test/ and rename it to break-loader.
12602
12603 2003-02-02  Havoc Pennington  <hp@pobox.com>
12604
12605         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12606         for code to manage cookies in your home directory
12607
12608         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12609
12610         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12611         to authenticate, then disconnect the client.
12612
12613 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12614
12615         * dbus/dbus-message.c (dbus_message_append_fields):
12616         Correct docs.
12617
12618 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * doc/dbus-specification.sgml:
12621         Update address format section.
12622
12623 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12624
12625         * test/Makefile.am:
12626         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12627         (message_handler), (new_connection_callback), (loop_quit),
12628         (loop_run), (main):
12629         Add bus test.
12630
12631 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12632
12633         * bus/driver.c: (bus_driver_handle_service_exists):
12634         Simplify the code a bit.
12635
12636         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12637         Fix a silly.
12638
12639 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12640
12641         * bus/Makefile.am:
12642         Add libdbus-daemon.la and link to it.
12643
12644 2003-02-01  James Willcox  <jwillcox@gnome.org>
12645
12646         * bus/driver.c: (bus_driver_handle_own_service):
12647         Actually include the service reply code in the message.
12648
12649 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12650
12651         * bus/driver.c: (bus_driver_handle_service_exists):
12652         Don't unref the incoming message.
12653
12654 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12655
12656         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12657
12658 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12659
12660         * dbus/dbus-server.c: (dbus_server_listen):
12661         * dbus/dbus-transport.c: (_dbus_transport_open):
12662         ifdef out the calls to the debug transport and server.
12663
12664 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12665
12666         * dbus/dbus-watch.c (dbus_watch_get_flags):
12667         Add note in the docs that ERROR or HANGUP won't be returned
12668         and are assumed always on.
12669
12670         * glib/dbus-gmain.c (add_watch):
12671         Always add IO_ERR | IO_HUP
12672
12673         * dbus/dbus-message.h:
12674         Add semicolon after dbus_message_iter_get_string_array().
12675         Makes qt code build again
12676
12677 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12678
12679         * bus/driver.c: (create_unique_client_name),
12680         (bus_driver_handle_hello):
12681         Don't take a name, just use a numeric id to identify
12682         each client.
12683
12684         * dbus/Makefile.am:
12685         * dbus/dbus-bus.c: (dbus_bus_register_client),
12686         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12687         * dbus/dbus-bus.h:
12688         Add new convenience functions for communicating with the bus.
12689
12690         * dbus/dbus-message.h:
12691
12692         * dbus/dbus-protocol.h:
12693         Fix a typo.
12694
12695 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12696
12697         * dbus/dbus-message.c (dbus_message_append_fields):
12698         Add some more doc comments.
12699
12700 2003-02-01  Havoc Pennington  <hp@pobox.com>
12701
12702         * dbus/dbus-break-loader.c (randomly_modify_length): change
12703         a 4-byte value in the message as if it were a length
12704
12705         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12706         execute bit on saved files
12707
12708 2003-02-01  Havoc Pennington  <hp@pobox.com>
12709
12710         * dbus/dbus-break-loader.c (main): new program to find messages
12711         that break the loader.
12712
12713         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12714         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12715
12716         * dbus/dbus-string.c (_dbus_string_set_byte): new
12717
12718 2003-01-31  Havoc Pennington  <hp@pobox.com>
12719
12720         * dbus/dbus-message.c: refactor the test code to be more general,
12721         in preparation for writing a "randomly permute test cases to
12722         try to break the loader" program.
12723
12724 2003-01-31  Havoc Pennington  <hp@pobox.com>
12725
12726         * doc/dbus-specification.sgml: work on the specification
12727
12728         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12729         the protocol version of the message.
12730
12731         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12732         no longer specifies that.
12733         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12734         1/2/3/4)
12735
12736         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12737         "break" for DBUS_TYPE_NIL, remove @todo
12738
12739 2003-01-31  Havoc Pennington  <hp@pobox.com>
12740
12741         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12742         just set_is_error/get_is_error as this is a commonly-used
12743         function, and write docs.
12744
12745 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12746
12747         * dbus/dbus-address.c: (dbus_address_entry_free):
12748         Free key and value lists.
12749
12750         * dbus/dbus-internals.c: (_dbus_type_to_string):
12751         Add the types we didn't have.
12752
12753         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12754         (_dbus_marshal_validate_arg):
12755         Add NIL types.
12756
12757         * dbus/dbus-message.c: (dbus_message_set_sender):
12758         Remove todo about being able to set sender to NULL.
12759
12760         (dbus_message_set_is_error_reply),
12761         (dbus_message_get_is_error_reply):
12762         * dbus/dbus-message.h:
12763         New functions.
12764
12765         * dbus/dbus-protocol.h:
12766         Add error reply flag.
12767
12768         * test/data/valid-messages/opposite-endian.message:
12769         Add NIL type to test.
12770
12771 2003-01-31  Havoc Pennington  <hp@pobox.com>
12772
12773         * doc/dbus-specification.sgml: fully specify the header.  Add
12774         flags and major protocol version, and change header/body len to
12775         unsigned.
12776
12777         * dbus/dbus-message-builder.c (append_saved_length): append length
12778         as uint32
12779
12780         * dbus/dbus-message.c (dbus_message_create_header): change header
12781         length and body length to unsigned. Add the new fields from the
12782         spec
12783         (_dbus_message_loader_return_buffer): unsigned header/body len
12784
12785 2003-01-30  Havoc Pennington  <hp@pobox.com>
12786
12787         * dbus/dbus-auth.c: rework to use only REJECTED, no
12788         MECHANISMS
12789
12790         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12791         use REJECTED, suggested by Mark McLoughlin
12792
12793 2003-01-30  Havoc Pennington  <hp@pobox.com>
12794
12795         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12796         a better way to report errors here. e.g.  "unix address lacks
12797         path" or something. also "no such file" when the path doesn't
12798         exist, etc.
12799
12800         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12801         leaking list nodes
12802         (dbus_parse_address): add @todo about documenting address format,
12803         and allowing , and ; to be escaped
12804
12805 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12806
12807         * dbus/Makefile.am:
12808         Add dbus-address.[ch]
12809
12810         * dbus/dbus-address.c: (dbus_address_entry_free),
12811         (dbus_address_entries_free), (create_entry),
12812         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12813         (dbus_parse_address), (_dbus_address_test):
12814         * dbus/dbus-address.h:
12815         New files for dealing with address parsing.
12816
12817         * dbus/dbus-connection.c:
12818         Document timeout functions.
12819
12820         * dbus/dbus-message.c:
12821         Document dbus_message_new_from_message.
12822
12823         * dbus/dbus-server-debug.c:
12824         Document.
12825
12826         * dbus/dbus-server.c: (dbus_server_listen):
12827         Parse address and use correct server implementation.
12828
12829         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12830         * dbus/dbus-string.h:
12831         New function with test.
12832
12833         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12834         * dbus/dbus-test.h:
12835         Add address tests.
12836
12837         * dbus/dbus-transport-debug.c:
12838         Document.
12839
12840         * dbus/dbus-transport.c: (_dbus_transport_open):
12841         Parse address and use correct transport implementation.
12842
12843 2003-01-30  Havoc Pennington  <hp@pobox.com>
12844
12845         * dbus/dbus-message.c: use message->byte_order instead of
12846         DBUS_COMPILER_BYTE_ORDER throughout.
12847         (dbus_message_create_header): pad header to align the
12848         start of the body of the message to 8-byte boundary
12849
12850         * dbus/dbus-marshal.h: make all the demarshalers take const
12851         DBusString arguments.
12852
12853         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12854         validate message args here, so we don't have to do slow validation
12855         later, and so we catch bad messages as they are incoming. Also add
12856         better checks on header_len and body_len. Also fill in
12857         message->byte_order
12858
12859         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12860         implemented properly)
12861         (_dbus_string_validate_nul): new function to check all-nul
12862
12863         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12864         get_arg_end_pos and remove all validation
12865         (_dbus_marshal_validate_arg): actually do validation here.
12866
12867 2003-01-29  Havoc Pennington  <hp@pobox.com>
12868
12869         * dbus/dbus-message.c (check_message_handling): fix assertion
12870         failure on set_client_serial
12871
12872 2003-01-28  Havoc Pennington  <hp@pobox.com>
12873
12874         * dbus/dbus-server-debug.c: Add doc section comments
12875
12876         * dbus/dbus-transport-debug.c: add doc section comments
12877
12878 2003-01-28  Havoc Pennington  <hp@redhat.com>
12879
12880         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12881         the reverse order from how I had it
12882         (_dbus_string_base64_encode): reverse encoding order. I was
12883         basically byteswapping everything during encoding.
12884
12885 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12886
12887         * dbus/dbus-connection-internal.h:
12888         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12889         (_dbus_connection_remove_timeout):
12890         Add functions for adding and removing timeouts.
12891
12892         * dbus/dbus-message.c: (dbus_message_new_from_message):
12893         Add new function that takes a message and creates an exact
12894         copy of it, but with the refcount set to 1.
12895         (check_message_handling):
12896         Fix build error.
12897
12898         * dbus/dbus-server-protected.h:
12899         * dbus/dbus-server.c: (_dbus_server_init_base),
12900         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12901         (dbus_server_set_timeout_functions):
12902         (_dbus_server_remove_timeout):
12903         New functions so that a server can add and remove timeouts.
12904
12905         (dbus_server_listen):
12906         Add commented out call to dbus_server_debug_new.
12907
12908         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12909         Actually set the handler, doh.
12910
12911         * dbus/dbus-transport.c: (_dbus_transport_open):
12912         Add commented out call to dbus_transport_debug_client_new.
12913
12914         * dbus/Makefile.am:
12915         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12916
12917 2003-01-28  Havoc Pennington  <hp@pobox.com>
12918
12919         * dbus/dbus-message.c (check_message_handling): function to check
12920         on the loaded message, iterates over it etc.
12921
12922 2003-01-28  Havoc Pennington  <hp@pobox.com>
12923
12924         * test/Makefile.am (dist-hook): fix make distdir
12925
12926         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12927
12928 2003-01-27  Havoc Pennington  <hp@pobox.com>
12929
12930         * dbus/dbus-mempool.c (time_for_size): replace printf with
12931         _dbus_verbose
12932
12933         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12934         empty lines; fix the SAVE_LENGTH stuff to be
12935         START_LENGTH/END_LENGTH so it actually works; couple other
12936         bugfixes
12937
12938         * test/Makefile.am (dist-hook): add dist-hook for .message files
12939
12940         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12941         can be constant or locked.
12942         (_dbus_string_free): allow freeing a const string as
12943         documented/intended
12944
12945         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12946
12947         * dbus/dbus-test-main.c (main): take an argument which is the
12948         directory containing test data
12949
12950         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12951         argument to this and load all the messages in test/data/
12952         checking that they can be loaded or not loaded as appropriate.
12953
12954 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12955
12956         * bus/dispatch.c: (bus_dispatch_message_handler):
12957         Dispatch messages sent to services.
12958
12959         * bus/driver.c: (bus_driver_send_service_deleted),
12960         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12961         (bus_driver_send_service_acquired):
12962         Add helper functions for sending service related messages.
12963
12964         (bus_driver_send_welcome_message):
12965         Send HELLO_REPLY instead of WELCOME.
12966
12967         (bus_driver_handle_list_services):
12968         Send LIST_SERVICES_REPLY instead of SERVICES.
12969
12970         (bus_driver_handle_own_service),
12971         (bus_driver_handle_service_exists):
12972         New message handlers.
12973
12974         (bus_driver_handle_message):
12975         Invoke new message handlers.
12976
12977         (bus_driver_remove_connection):
12978         Don't remove any services here since that's done automatically
12979         by bus_service_remove_owner now.
12980
12981         * bus/driver.h:
12982         New function signatures.
12983
12984         * bus/services.c: (bus_service_add_owner):
12985         Send ServiceAcquired message if we're the only primary owner.
12986
12987         (bus_service_remove_owner):
12988         Send ServiceAcquired/ServiceLost messages.
12989
12990         (bus_service_set_prohibit_replacement),
12991         (bus_service_get_prohibit_replacement):
12992         Functions for setting prohibit replacement.
12993
12994         (bus_service_has_owner):
12995         New function that checks if a connection is in the owner queue of
12996         a certain service.
12997
12998         * bus/services.h:
12999         Add new function signatures.
13000
13001         * dbus/dbus-list.c: (_dbus_list_test):
13002         Add tests for _dbus_list_remove_last and traversing the list backwards.
13003
13004         * dbus/dbus-list.h:
13005         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13006         go any further, so return NULL then.
13007
13008         * dbus/dbus-protocol.h:
13009         Add new messages, service flags and service replies.
13010
13011 2003-01-26  Havoc Pennington  <hp@pobox.com>
13012
13013         * dbus/dbus-message-builder.c: implement, completely untested.
13014
13015         * test/data/*: add data to be used in testing.
13016         ".message" files are our simple loadable text format.
13017         ".message-raw" will be binary dumps of messages.
13018
13019         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13020
13021 2003-01-26  Havoc Pennington  <hp@pobox.com>
13022
13023         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13024
13025         * dbus/dbus-errors.c (dbus_result_to_string): add
13026         file errors
13027
13028         * dbus/dbus-message-builder.c: new file, will contain code to load
13029         up messages from files. Not implemented yet.
13030
13031 2003-01-26  Havoc Pennington  <hp@pobox.com>
13032
13033         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13034         the sender by setting to NULL
13035
13036 2003-01-26  Havoc Pennington  <hp@pobox.com>
13037
13038         The unit tests pass, but otherwise untested.  If it breaks, the
13039         tests should have been better. ;-)
13040
13041         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13042         the connection.
13043
13044         * dbus/dbus-message.c: redo everything so we maintain
13045         message->header as the only copy of the various fields.
13046         This avoids the possibility of out-of-memory in some cases,
13047         for example dbus_message_lock() can't run out of memory anymore,
13048         and avoids extra copying. Figured I may as well go ahead and do
13049         this since it was busted for dbus_message_lock to not return
13050         failure on OOM, and dbus_message_write_header was totally
13051         unchecked for OOM. Also fixed some random other bugs.
13052
13053         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13054         that strings are nul-terminated. Also, end_pos can be equal
13055         to string length just not greater than, I think.
13056         (_dbus_marshal_set_int32): new function
13057         (_dbus_marshal_set_uint32): new function
13058         (_dbus_marshal_set_string): new function
13059
13060         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13061         a warning, init timeout_list to NULL
13062         (dbus_connection_send_message): don't use uninitialized variable
13063         "serial"
13064
13065         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13066
13067 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13068
13069         * bus/driver.c: (bus_driver_handle_hello),
13070         (bus_driver_send_welcome_message):
13071         Plug leaks
13072
13073 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13074
13075         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13076         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13077         (dbus_connection_unref):
13078         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13079         * dbus/dbus-message.c: (dbus_message_unref),
13080         Plug memory leaks.
13081
13082         (dbus_message_get_fields):
13083         Remove debugging printout.
13084
13085         (_dbus_message_loader_return_buffer):
13086         Don't store the header string.
13087
13088         (_dbus_message_test):
13089         Plug leaks.
13090
13091 2003-01-26  Richard Hult  <rhult@codefactory.se>
13092
13093         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13094         the file descriptor list, since it can change under us.
13095
13096 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13097
13098         * glib/dbus-gmain.c: (dbus_connection_prepare),
13099         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13100         (remove_watch), (dbus_connection_hookup_with_g_main):
13101         Rewrite the glib handling to use its own GSource instead of a
13102         GIOChannel so we can catch messages put in the queue while waiting
13103         for a reply.
13104
13105 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13106
13107         * bus/Makefile.am:
13108         * bus/connection.c: (connection_disconnect_handler),
13109         (connection_watch_callback), (bus_connection_setup):
13110         * bus/dispatch.c: (send_one_message),
13111         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13112         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13113         * bus/dispatch.h:
13114         * bus/driver.c: (bus_driver_send_service_deleted),
13115         (bus_driver_send_service_created), (bus_driver_handle_hello),
13116         (bus_driver_send_welcome_message),
13117         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13118         (bus_driver_handle_message):
13119         * bus/driver.h:
13120         Refactor code, put the message dispatching in its own file. Use
13121         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13122         is disconnected.
13123
13124 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-internals.h:
13127         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13128
13129         * dbus/dbus-message.c: (dbus_message_get_sender):
13130         * dbus/dbus-message.h:
13131         Implement dbus_message_get_sender.
13132
13133         * dbus/dbus-protocol.h:
13134         Add message and service defines.
13135
13136 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13137
13138         * dbus/dbus-connection.c: (dbus_connection_send_message):
13139         * dbus/dbus-message-internal.h:
13140         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13141         (dbus_message_write_header):
13142         Remove _dbus_messag_unlock and don't set the client serial on a
13143         message if one already exists.
13144
13145 2003-01-24  Havoc Pennington  <hp@pobox.com>
13146
13147         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13148         list_pool
13149
13150         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13151         on OOM
13152
13153 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13154
13155         * dbus/dbus-list.c: (alloc_link), (free_link):
13156         Use a memory pool for the links.
13157
13158 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13159
13160         * bus/connection.c: (bus_connection_foreach):
13161         * bus/connection.h:
13162         Add new bus_connection_foreach function.
13163
13164         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13165         Add function that broadcasts a message to all clients.
13166
13167         (bus_driver_send_service_created), (bus_driver_handle_hello),
13168         (bus_driver_send_welcome_message),
13169         (bus_driver_handle_list_services), (bus_driver_message_handler):
13170         Implement functions that take care of listing services, and notifying
13171         clients when new services are created.
13172
13173         * bus/services.c: (bus_services_list):
13174         * bus/services.h:
13175         Add new function that returns an array of strings with the currently
13176         registered services.
13177
13178         * glib/dbus-glib.h:
13179         * glib/dbus-gmain.c:
13180         Update copyright year.
13181
13182 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13183
13184         * dbus/dbus-connection.c: (dbus_connection_send_message):
13185         Unlock the message in case it was sent earlier.
13186
13187         (dbus_connection_send_message_with_reply_and_block):
13188         Remove the reply message from the list.
13189
13190         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13191         Set array_len and new_pos correctly.
13192
13193         (_dbus_marshal_test):
13194         Remove debug output.
13195
13196         * dbus/dbus-message-internal.h:
13197         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13198         New function that returns the reply serial.
13199
13200         (_dbus_message_unlock):
13201         New function that unlocks a message and resets its header.
13202
13203         (dbus_message_append_string_array),
13204         (dbus_message_get_fields_valist),
13205         (dbus_message_iter_get_field_type),
13206         (dbus_message_iter_get_string_array),
13207         (dbus_message_get_fields),
13208         (dbus_message_append_fields_valist):
13209         Handle string arrays.
13210
13211         (dbus_message_set_sender):
13212         Make this function public since the bus daemon needs it.
13213
13214         (decode_header_data):
13215         Set the reply serial to -1 initially.
13216
13217         * dbus/dbus-message.h:
13218         Add dbus_message_set_sender.
13219
13220 2003-01-24  Havoc Pennington  <hp@pobox.com>
13221
13222         * doc/dbus-specification.sgml: add some stuff
13223
13224 2003-01-22  Havoc Pennington  <hp@pobox.com>
13225
13226         * doc/dbus-specification.sgml: Start to document the protocol.
13227
13228 2003-01-22  Havoc Pennington  <hp@pobox.com>
13229
13230         * dbus/dbus-connection.c
13231         (dbus_connection_send_message_with_reply_and_block): add some @todo
13232
13233         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13234
13235 2003-01-21  Havoc Pennington  <hp@pobox.com>
13236
13237         (patch untested because can't compile)
13238
13239         * bus/driver.c (create_unique_client_name): make this function
13240         never recycle client names. Also, caller should initialize
13241         the DBusString.
13242
13243         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13244
13245 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13246
13247         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13248         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13249         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13250         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13251         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13252         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13253         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13254         * dbus/dbus-marshal.h:
13255         * dbus/dbus-protocol.h:
13256         Add support for marshalling and demarshalling integer, double
13257         and string arrays.
13258
13259 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13260
13261         * bus/Makefile.am:
13262         Add driver.[ch]
13263
13264         * bus/connection.c: (connection_disconnect_handler):
13265         Remove the connection from the bus driver's list.
13266
13267         (connection_watch_callback): Dispatch messages.
13268
13269         (free_connection_data): Free connection name.
13270
13271         (bus_connection_setup): Add connection to the bus driver's list.
13272         (bus_connection_remove_owned_service):
13273         (bus_connection_set_name), (bus_connection_get_name):
13274         Add functions for setting and getting the connection's name.
13275
13276         * bus/connection.h:
13277         Add function headers.
13278
13279         * bus/driver.c: (create_unique_client_name),
13280         (bus_driver_handle_hello_message),
13281         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13282         (bus_driver_add_connection), (bus_driver_remove_connection):
13283         * bus/driver.h:
13284         * bus/main.c:
13285         * bus/services.c: (bus_service_free):
13286         * bus/services.h:
13287         New file that handles communication and registreation with the bus
13288         itself.
13289
13290 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13291
13292         * dbus/dbus-connection.c: (dbus_connection_send_message):
13293         Add a new client_serial parameter.
13294
13295         (dbus_connection_send_message_with_reply):
13296         Remove a @todo since we've implemented the blocking function.
13297
13298         (dbus_connection_send_message_with_reply_and_block):
13299         New function that sends a message and waits for a reply and
13300         then returns the reply.
13301
13302         * dbus/dbus-connection.h:
13303         Add new functions.
13304
13305         * dbus/dbus-errors.c: (dbus_result_to_string):
13306         * dbus/dbus-errors.h:
13307         Add new DBUS_RESULT.
13308
13309         * dbus/dbus-message-internal.h:
13310         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13311         (_dbus_message_set_sender), (dbus_message_write_header),
13312         (dbus_message_new_reply), (decode_header_data),
13313         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13314         * dbus/dbus-message.h:
13315         Add new functions that set the reply serial and sender.
13316         Also marshal and demarshal them correctly and add test.
13317
13318         * dbus/dbus-protocol.h:
13319         Add new DBUS_MESSAGE_TYPE_SENDER.
13320
13321         * glib/dbus-glib.h:
13322         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13323         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13324         (dbus_connection_hookup_with_g_main):
13325         * glib/test-dbus-glib.c: (main):
13326         Rewrite to use GIOChannel and remove the GSource crack.
13327
13328         * test/echo-client.c: (main):
13329         * test/watch.c: (check_messages):
13330         Update for changed APIs
13331
13332 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13333
13334         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13335
13336         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13337         Create a DBusTimeoutList.
13338         (dbus_connection_set_timeout_functions): Add new function to
13339         set timeout callbacks
13340
13341         * dbus/dbus-connection.h: Add public DBusTimeout API.
13342
13343         * dbus/dbus-message.c: (dbus_message_get_service):
13344         * dbus/dbus-message.h:  New function.
13345
13346         * dbus/dbus-server.c: Fix small doc typo.
13347
13348         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13349
13350 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13351
13352         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13353         of the string, just as long as specified.
13354
13355 2003-01-19  Havoc Pennington  <hp@pobox.com>
13356
13357         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13358         new function
13359
13360         * dbus/dbus-server.c (dbus_server_set_max_connections)
13361         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13362         keep track of current number of connections, and add API for
13363         setting a max (but haven't implemented enforcing the max yet)
13364
13365 2003-01-18  Havoc Pennington  <hp@pobox.com>
13366
13367         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13368         reading/writing if read_watch != NULL or write_watch != NULL.
13369
13370         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13371         the message loader code to actually load message->header and
13372         message->body into the newly-created message.
13373
13374         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13375         in OOM case
13376
13377         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13378         (dbus_connection_get_max_message_size)
13379         (dbus_connection_set_max_live_messages_size)
13380         (dbus_connection_get_max_live_messages_size): implement some
13381         resource limitation functions
13382
13383         * dbus/dbus-resources.c: new file implementing some of the
13384         resource limits stuff
13385
13386         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13387         missing docs, add @todo to handle OOM etc.
13388
13389         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13390         docs
13391
13392 2003-01-18  Havoc Pennington  <hp@pobox.com>
13393
13394         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13395         connection if it hasn't been already.
13396
13397         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13398         replace with DisconnectFunction.
13399
13400 2003-01-18  Havoc Pennington  <hp@pobox.com>
13401
13402         Building --disable-verbose-mode --disable-asserts --disable-tests
13403         cuts the library from 112K to 45K or so
13404
13405         * configure.in: check for varargs macro support,
13406         add --enable-verbose-mode, --enable-asserts.
13407
13408         * dbus/dbus-internals.h (_dbus_assert): support
13409         DBUS_DISABLE_ASSERT
13410         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13411
13412 2003-01-18  Havoc Pennington  <hp@pobox.com>
13413
13414         * dbus/dbus-test.c: include config.h so that tests actually run
13415
13416         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13417         so the failure mode when that assumption fails will be plenty
13418         obvious.
13419
13420 2003-01-18  Havoc Pennington  <hp@pobox.com>
13421
13422         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13423
13424         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13425         the distribution
13426
13427         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13428         since we don't want to use those in make check
13429
13430 2003-01-15  Havoc Pennington  <hp@redhat.com>
13431
13432         Release 0.2
13433
13434         * NEWS: update
13435
13436 2003-01-15  Havoc Pennington  <hp@redhat.com>
13437
13438         * test/Makefile.am: fix so that test source code ends up in the
13439         distribution on make distcheck
13440
13441 2003-01-15  Havoc Pennington  <hp@redhat.com>
13442
13443         Release 0.1.
13444
13445         * NEWS: update
13446
13447 2003-01-15  Havoc Pennington  <hp@redhat.com>
13448
13449         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13450         fix build when --disable-tests
13451
13452         * Makefile.am (EXTRA_DIST): put HACKING in here
13453
13454         * HACKING: document procedure for making a tarball release.
13455
13456 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13457
13458         * bus/connection.c: (connection_error_handler),
13459         (bus_connection_setup):
13460         * bus/main.c: (main):
13461         Make sure that the DBusConnectionData struct is NULLed
13462         out to prevent a segfault.
13463
13464         * dbus/dbus-errors.c: (dbus_result_to_string):
13465         * dbus/dbus-errors.h:
13466         * dbus/dbus-message.c: (dbus_message_get_fields),
13467         (dbus_message_get_fields_valist), (_dbus_message_test):
13468         * dbus/dbus-message.h:
13469         Make dbus_message_get_fields return a result code so we can
13470         track invalid fields as well as oom.
13471
13472 2003-01-11  Havoc Pennington  <hp@pobox.com>
13473
13474         * configure.in: change --enable-test/--enable-ansi action-if-given
13475         to enable_foo=$enableval instead of enable_foo=yes
13476
13477 2003-01-08  Havoc Pennington  <hp@pobox.com>
13478
13479         * dbus/dbus-string.c (_dbus_string_align_length): new function
13480
13481         * dbus/dbus-test-main.c: move main() for test app here
13482         * dbus/dbus-test.c
13483         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13484         symbol to run tests, because dbus-test isn't in the main
13485         library
13486
13487         Code review nitpicks.
13488
13489         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13490         for people with narrow emacs ;-). Assert client_serial was filled
13491         in. Assert message->name != NULL.
13492         (dbus_message_append_fields): have "first_field_type" arg separate
13493         from va list, needed for C++ binding that also uses varargs IIRC
13494         and helps with type safety
13495         (dbus_message_new): add @todo about using DBusString to store
13496         service/name internally
13497         (dbus_message_new): don't leak ->service and ->name on OOM later
13498         in the function
13499         (dbus_message_unref): free the service name
13500         (dbus_message_get_fields): same change to varargs
13501         i.e. first_field_type
13502         (_dbus_message_loader_return_buffer): assert that the message data
13503         is aligned (if not it's a bug in our code). Put in verbose griping
13504         about why we set corrupted = TRUE.
13505         (decode_header_data): add FIXME that char* is evil.  Was going to
13506         add FIXME about evil locale-specific string.h strncmp, but just
13507         switched to wacky string-as-uint32 optimization. Move check for
13508         "no room for field name" above get_const_data_len() to avoid
13509         assertion failure in get_const_data_len if we have trailing 2
13510         bytes or the like. Check for service and name fields being
13511         provided twice. Don't leak service/name on error. Require field
13512         names to be aligned to 4 bytes.
13513
13514         * dbus/dbus-marshal.c: move byte swap stuff to header
13515         (_dbus_pack_int32): uscore-prefix
13516         (_dbus_unpack_int32): uscore-prefix
13517         (_dbus_unpack_uint32): export
13518         (_dbus_demarshal_string): add @todo complaining about use of
13519         memcpy()
13520         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13521         handling allowing corrupt data to go unchecked
13522
13523 2003-01-08  Havoc Pennington  <hp@redhat.com>
13524
13525         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13526         to the select() as needed for authentication. (should be using
13527         _dbus_poll() not select, but for another day)
13528
13529         * dbus/dbus.h: include dbus/dbus-protocol.h
13530
13531 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13532
13533         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13534         dbus-connection.h
13535
13536 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13537
13538         * dbus/dbus-internals.c: (_dbus_type_to_string):
13539         New function that returns a string describing a type.
13540
13541         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13542         * dbus/dbus-marshal.h:
13543         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13544         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13545         (dbus_message_iter_get_byte_array):
13546         * dbus/dbus-message.h:
13547         Add new convenience functions for appending and getting message fields.
13548         Also add demarshalling routines for byte arrays.
13549
13550 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13551
13552         * dbus/dbus-connection-internal.h:
13553         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13554         (_dbus_connection_get_next_client_serial),
13555         (dbus_connection_send_message):
13556         * dbus/dbus-internals.h:
13557         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13558         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13559         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13560         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13561         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13562         (_dbus_verbose_bytes), (_dbus_marshal_test):
13563         * dbus/dbus-marshal.h:
13564         * dbus/dbus-message-internal.h:
13565         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13566         (dbus_message_write_header), (_dbus_message_lock),
13567         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13568         (dbus_message_get_name), (dbus_message_append_int32),
13569         (dbus_message_append_uint32), (dbus_message_append_double),
13570         (dbus_message_append_string), (dbus_message_append_byte_array),
13571         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13572         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13573         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13574         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13575         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13576         (decode_header_data), (_dbus_message_loader_return_buffer),
13577         (message_iter_test), (_dbus_message_test):
13578         * dbus/dbus-message.h:
13579         * dbus/dbus-protocol.h:
13580         * dbus/dbus-test.c: (main):
13581         * dbus/dbus-test.h:
13582         * glib/test-dbus-glib.c: (message_handler), (main):
13583         * test/echo-client.c: (main):
13584         * test/watch.c: (check_messages):
13585         Make messages sendable and receivable for real.
13586
13587 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13588
13589         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13590         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13591         * dbus/dbus-message.c: (dbus_message_append_int32),
13592         (dbus_message_append_uint32), (dbus_message_append_double),
13593         (dbus_message_append_string), (dbus_message_append_byte_array):
13594         Handle OOM restoration.
13595
13596 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13597
13598         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13599         (_dbus_demarshal_string), (_dbus_marshal_test):
13600         * dbus/dbus-marshal.h:
13601         * dbus/dbus-message.c: (dbus_message_get_name),
13602         Document these functions.
13603
13604         (dbus_message_append_int32), (dbus_message_append_uint32),
13605         (dbus_message_append_double), (dbus_message_append_string),
13606         (dbus_message_append_byte_array):
13607         * dbus/dbus-message.h:
13608         Add functions for adding message fields of different types.
13609
13610         * dbus/dbus-protocol.h:
13611         Add the different types.
13612
13613 2003-01-05  Havoc Pennington  <hp@pobox.com>
13614
13615         * bus/connection.c: implement routines for handling connections,
13616         first thing is keeping a list of owned services on each connection
13617         and setting up watches etc.
13618
13619         * bus/services.c: implement a mapping from service names to lists
13620         of connections
13621
13622         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13623
13624         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13625         to use static mutexes for global data
13626
13627         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13628         collection of functions to set/get application-specific data
13629         on the DBusConnection.
13630
13631 2003-01-04  Havoc Pennington  <hp@pobox.com>
13632
13633         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13634         (_dbus_poll): new function
13635
13636         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13637         copied from GLib
13638
13639         * bus/loop.c: initial code for the daemon main loop
13640
13641 2003-01-04  Havoc Pennington  <hp@pobox.com>
13642
13643         * test/watch.c (error_handler): make it safe if the error handler
13644         is called multiple times (if we s/error handler/disconnect
13645         handler/ we should just guarantee it's called only once)
13646
13647         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13648         error handler on disconnect (it's quite possible we should
13649         just change the error handler to a "disconnect handler," I'm
13650         not sure we have any other meaningful errors)
13651
13652         * configure.in: check for getpwnam_r
13653
13654         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13655         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13656         mechanism as in SASL spec, using socket credentials
13657
13658         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13659         (_dbus_send_credentials_unix_socket): new function
13660
13661         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13662         dbus_accept()
13663         (_dbus_write): only check errno if <0 returned
13664         (_dbus_write_two): ditto
13665
13666 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13667
13668         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13669         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13670         (_dbus_marshal_test):
13671         * dbus/dbus-marshal.h:
13672         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13673         to _dbus_marshal_utf8_string. Also fix some tests.
13674
13675 2002-12-28  Harri Porten  <porten@kde.org>
13676
13677         * configure.in: added check for C++ compiler and a very cheesy
13678         check for the Qt integration
13679
13680         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13681
13682         * qt/Makefile.am: added
13683
13684         * qt/.cvsignore: added
13685
13686         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13687         latter, added #ifdef QT_THREAD_SUPPORT guard.
13688
13689         * dbus/Makefile.am: added missing headers for make dist
13690
13691 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13692
13693         * dbus/Makefile.am: fixup export-symbols-regex.
13694
13695 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * acinclude.m4: Add this file and put the
13698         PKG_CHECK_MODULE macro in it.
13699
13700 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13701
13702         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13703         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13704         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13705         (_dbus_marshal_test):
13706         Make the demarshalling routines align the pos argument.
13707         Add string marshalling tests and fix the obvious bugs
13708         discovered.
13709
13710 2002-12-26  Havoc Pennington  <hp@pobox.com>
13711
13712         * dbus/dbus-auth.c: fixes fixes fixes
13713
13714         * dbus/dbus-transport-unix.c: wire up support for
13715         encoding/decoding data on the wire
13716
13717         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13718         (_dbus_auth_decode_data): append to target string
13719         instead of nuking it.
13720
13721 2002-12-26  Havoc Pennington  <hp@pobox.com>
13722
13723         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13724         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13725         doh
13726
13727         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13728         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13729         now). Main point is because I wanted unpack_uint32 to implement
13730         _dbus_verbose_bytes
13731         (_dbus_verbose_bytes): new function
13732
13733         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13734
13735         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13736         mechanism to handle a corrupt message stream
13737         (_dbus_message_loader_new): fix preallocation to only prealloc,
13738         not prelengthen
13739
13740         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13741         (_dbus_string_test): enhance tests for copy/move and fix the
13742         functions
13743
13744         * dbus/dbus-transport-unix.c: Hold references in more places to
13745         avoid reentrancy problems
13746
13747         * dbus/dbus-transport.c: ditto
13748
13749         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13750         leak reference count in no-message case
13751
13752         * test/watch.c (do_mainloop): handle adding/removing watches
13753         during iteration over the watches. Also, ref the connection/server
13754         stored on a watch, so we don't try to mangle a destroyed one.
13755
13756         * dbus/dbus-transport-unix.c (do_authentication): perform
13757         authentication
13758
13759         * dbus/dbus-auth.c (get_state): add a state
13760         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13761         (_dbus_auth_get_unused_bytes): append the unused bytes
13762         to the passed in string, rather than prepend
13763
13764         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13765         the auth conversation DBusAuth
13766
13767         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13768         (_dbus_transport_new_for_domain_socket): when creating a
13769         transport, pass in whether it's a client-side or server-side
13770         transport so we know which DBusAuth to create
13771
13772 2002-12-03  Havoc Pennington  <hp@pobox.com>
13773
13774         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13775         _after_ finalizing the derived members
13776         (unix_connection_set): unref watch if we fail to add it
13777
13778         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13779         transport first, so that the connection owned by the
13780         transport will be valid as the transport finalizes.
13781
13782         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13783         if necessary, and remove watches from the connection.
13784
13785         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13786
13787 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13788
13789         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13790         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13791         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13792         (_dbus_marshal_test):
13793         * dbus/dbus-marshal.h:
13794         Add string marshal functions and have the demarshal functions
13795         return the new position.
13796
13797 2002-12-25  Havoc Pennington  <hp@pobox.com>
13798
13799         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13800         it is a simple protocol that just maps directly to SASL.
13801
13802         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13803         initial implementation, not actually used yet.
13804
13805         * dbus/dbus-string.c (_dbus_string_find): new function
13806         (_dbus_string_equal): new function
13807         (_dbus_string_base64_encode): new function
13808         (_dbus_string_base64_decode): new function
13809
13810 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13811
13812         * dbus/Makefile.am:
13813         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13814         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13815         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13816         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13817         * dbus/dbus-marshal.h:
13818         * dbus/dbus-protocol.h:
13819         * dbus/dbus-test.c: (main):
13820         * dbus/dbus-test.h:
13821         Add un-optimized marshalling/demarshalling routines.
13822
13823 2002-12-25  Harri Porten  <porten@kde.org>
13824
13825         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13826
13827 2002-12-24  Zack Rusin  <zack@kde.org>
13828
13829         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13830         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13831         main loop stuff
13832
13833 2002-12-24  Havoc Pennington  <hp@pobox.com>
13834
13835         * glib/dbus-gthread.c: fix include
13836
13837         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13838         I think glib API needs to change, though, as you don't
13839         want to use DBusMessageFunction, you want to use the
13840         DBusMessageHandler object. Probably
13841         dbus_connection_open_with_g_main_loop()
13842         and dbus_connection_setup_g_main_loop() or something like that
13843         (but think of better names...) that just create a connection
13844         that has watch/timeout functions etc. already set up.
13845
13846         * dbus/dbus-connection.c
13847         (dbus_connection_send_message_with_reply): new function just to
13848         show how the message handler helps us deal with replies.
13849
13850         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13851
13852         * dbus/dbus-string.c (_dbus_string_test): free a string that
13853         wasn't
13854
13855         * dbus/dbus-hash.c: use memory pools for the hash entries
13856         (rebuild_table): be more paranoid about overflow, and
13857         shrink table when we can
13858         (_dbus_hash_test): reduce number of sprintfs and write
13859         valid C89. Add tests for case where we grow and then
13860         shrink the hash table.
13861
13862         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13863
13864         * dbus/dbus-connection.c (dbus_connection_register_handler)
13865         (dbus_connection_unregister_handler): new functions
13866
13867         * dbus/dbus-message.c (dbus_message_get_name): new
13868
13869         * dbus/dbus-list.c: fix docs typo
13870
13871         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13872         an object representing a handler for messages.
13873
13874 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13875
13876         * glib/dbus-glib.h:
13877         * glib/dbus-gthread.c: (dbus_gthread_init):
13878         Don't use the gdbus prefix for public functions.
13879
13880 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13881
13882         * Makefile.am:
13883         * configure.in:
13884         Add GLib checks and fixup .pc files
13885
13886         * glib/Makefile.am:
13887         * glib/dbus-glib.h:
13888         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13889         (gdbus_connection_check), (gdbus_connection_dispatch),
13890         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13891         (dbus_connection_gsource_new):
13892         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13893         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13894         * glib/test-dbus-glib.c: (message_handler), (main):
13895         Add GLib support.
13896
13897 2002-12-15  Harri Porten  <porten@kde.org>
13898
13899         * autogen.sh: check for libtoolize before attempting to use it
13900
13901         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13902         struct.
13903
13904         * .cvsignore: ignore more stamp files
13905
13906         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13907
13908         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13909         without make install.
13910
13911 2002-12-15  Havoc Pennington  <hp@pobox.com>
13912
13913         * dbus/dbus-threads.c: add thread stubs that a higher library
13914         layer can fill in. e.g. the GLib wrapper might fill them in with
13915         GThread stuff. We still need to use this thread API to
13916         thread-safe-ize the library.
13917
13918 2002-12-12  Havoc Pennington  <hp@pobox.com>
13919
13920         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13921         below new interfaces and include fewer system headers.
13922
13923         * dbus/dbus-sysdeps.c (_dbus_read): new function
13924         (_dbus_write): new function
13925         (_dbus_write_two): new function
13926         (_dbus_connect_unix_socket): new function
13927         (_dbus_listen_unix_socket): new function
13928
13929         * dbus/dbus-message-internal.h: change interfaces to use
13930         DBusString
13931
13932 2002-12-11  Havoc Pennington  <hp@pobox.com>
13933
13934         * dbus/dbus-types.h: add dbus_unichar
13935
13936         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13937
13938         * dbus/dbus-connection.c (dbus_connection_send_message): return
13939         TRUE on success
13940
13941         * dbus/dbus-transport.c: include dbus-watch.h
13942
13943         * dbus/dbus-connection.c: include dbus-message-internal.h
13944
13945         * HACKING: add file with coding guidelines stuff.
13946
13947         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13948         handling here, for security purposes (as in vsftpd). Not actually
13949         using this class yet.
13950
13951         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13952         system/libc usage here, as in vsftpd, for ease of auditing (and
13953         should also simplify portability). Haven't actually moved all the
13954         system/libc usage into here yet.
13955
13956 2002-11-25  Havoc Pennington  <hp@pobox.com>
13957
13958         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13959         always print the first verbose message.
13960
13961 2002-11-24  Havoc Pennington  <hp@pobox.com>
13962
13963         * test/echo-client.c, test/echo-server.c: cheesy test
13964         clients.
13965
13966         * configure.in (AC_CHECK_FUNCS): check for writev
13967
13968         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13969         function
13970
13971         * dbus/dbus-list.c (_dbus_list_foreach): new function
13972
13973         * dbus/dbus-internals.c (_dbus_verbose): new function
13974
13975         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13976         representing a server that listens for connections.
13977
13978         * dbus/.cvsignore: create
13979
13980         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13981         public API for reporting errors
13982
13983         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13984         public object representing a connection that
13985         sends/receives messages. (Same object used for
13986         both client and server.)
13987
13988         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13989         Basic abstraction for different kinds of stream
13990         that we might read/write messages from.
13991
13992 2002-11-23  Havoc Pennington  <hp@pobox.com>
13993
13994         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13995         _DBUS_INT_MAX
13996
13997         * dbus/dbus-test.c (main): add list test, and include
13998         dbus-test.h as intended
13999
14000         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14001         (_dbus_hash_table_remove_int): return value indicates
14002         whether the entry existed to remove
14003
14004         * dbus/dbus-list.c: add linked list utility class,
14005         with docs and tests
14006
14007         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14008         array sometimes.
14009
14010 2002-11-23  Havoc Pennington  <hp@pobox.com>
14011
14012         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14013         DBUS_END_DECLS to nothing, that should fix this once and for all
14014
14015         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14016
14017         * dbus/dbus-message.c, dbus/dbus-hash.c:
14018         add some missing @brief
14019
14020 2002-11-23  Havoc Pennington  <hp@pobox.com>
14021
14022         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14023         to avoid confusing Doxygen
14024
14025         * dbus/dbus-hash.c: @} not }@
14026
14027         * dbus/dbus-message.c (struct DBusMessage): split out
14028         internals docs
14029
14030 2002-11-23  Havoc Pennington  <hp@pobox.com>
14031
14032         * configure.in: pile on more warning flags if using gcc
14033
14034         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14035         to document static functions
14036
14037         * configure.in: add summary to end of configure so it
14038         looks nice and attractive
14039
14040         * dbus/dbus-hash.c: finish implementation and write unit
14041         tests and docs
14042
14043         * configure.in: add --enable-tests to enable unit tests
14044
14045         * dbus/dbus-test.c: test program to run unit tests
14046         for all files in dbus/*, initially runs a test for
14047         dbus-hash.c
14048
14049         * dbus/dbus-internals.h: file to hold some internal utility stuff
14050
14051 2002-11-22  Havoc Pennington  <hp@redhat.com>
14052
14053         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14054         "ported" away from Tcl
14055
14056         * dbus/dbus-types.h: header for types such as dbus_bool_t
14057
14058 2002-11-22  Havoc Pennington  <hp@redhat.com>
14059
14060         * dbus/dbus.h: fixups for doc warnings
14061
14062         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14063         macros
14064         (QUIET): make it quiet so we can see warnings
14065
14066         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14067
14068 2002-11-22  Havoc Pennington  <hp@redhat.com>
14069
14070         * Makefile.am: include "Doxyfile" target in all-local
14071
14072         * configure.in: generate the Doxyfile
14073
14074         * Doxyfile.in: move Doxyfile here, so we can use
14075         configure to generate a Doxyfile with the right
14076         version number etc.
14077
14078 2002-11-22  Havoc Pennington  <hp@redhat.com>
14079
14080         * dbus/dbus-message.c: move inline docs into .c file
14081
14082         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14083         so all docs are under doc/
14084         (MAN_EXTENSION): generate man pages. Use extension
14085         ".3dbus" which matches ".3qt" on my system,
14086         I guess this is OK, I don't know really.
14087         (FILE_PATTERNS): look for .c files not .h, makes sense
14088         for plain C I think
14089
14090 2002-11-22  Havoc Pennington  <hp@pobox.com>
14091
14092         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14093         because any app can be a server, and any app can be a client,
14094         the bus is a special kind of server.
14095
14096 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14097
14098         * Doxyfile : adding. Still needs Makefile rules to be generated
14099         automatically (just run "doxygen" in the toplevel dir for now to
14100         generate docs)
14101
14102         * dbus/dbus-message.h : Adding sample docs (javadoc since
14103         resembles gtk-doc a little more)
14104
14105         * dbus/dbus.h : Adding sample docs
14106
14107 2002-11-21  Havoc Pennington  <hp@redhat.com>
14108
14109         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14110         so we can allow ourselves to include files directly,
14111         instead of having to use dbus.h
14112
14113         * dbus/dbus.h: fill in
14114
14115         * dbus/dbus-message.h: sketch out a sample header file.
14116         Include griping if you include it directly instead of
14117         via dbus.h
14118
14119         * dbus/dbus-macros.h: new file with macros for extern "C",
14120         TRUE/FALSE, NULL, etc.
14121
14122         * doc/file-boilerplate.c: put include guards in here
14123
14124 2002-11-21  Havoc Pennington  <hp@redhat.com>
14125
14126         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14127
14128         * COPYING: include the GPL as well, and license code
14129         under both AFL and GPL.
14130
14131 2002-11-21  Havoc Pennington  <hp@redhat.com>
14132
14133         * acconfig.h: get rid of this
14134
14135         * autogen.sh (run_configure): add --no-configure option
14136
14137         * configure.in: remove AC_ARG_PROGRAM to make
14138         autoconf complain less. add AC_PREREQ.
14139         add AC_DEFINE third arg.
14140
14141 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14142
14143         * doc/Makefile.am:
14144         Fix references so we can distcheck.
14145
14146 2002-11-21  Havoc Pennington  <hp@redhat.com>
14147
14148         * Initial module creation
14149