* dbus/dbus-transport.c: fix invalid deref when checking if
[platform/upstream/dbus.git] / ChangeLog
1 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
2
3         * dbus/dbus-transport.c: fix invalid deref when checking if
4         a vtable method exists (Patch from Christian Ehrlicher 
5         <ch dot ehrlicher at gmx dot de>)
6
7 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
8
9         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
10         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
11         to build with builddir != srcdir (Taken from a patch by Bernard Leak
12         <bernard at brenda-arkle dot demon dot co dot uk>)
13
14 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
15
16         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
17         default case
18
19 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
20
21         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
22         it works on any system providing this interface, not only FreeBSD.
23         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
24
25 2006-08-20  Havoc Pennington  <hp@redhat.com>
26
27         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
28         the docs
29
30 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
31
32         * Released 0.92 
33
34 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
35
36         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
37         to reflect the init late change
38
39         * bus/bus.c (bus_context_new): Check user before we fork so we can
40         print out an error message a user will be able to see
41
42 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
43
44         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
45
46         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
47         Add two more global locks for use on windows platforms.  These are
48         unused on non-windows platforms but are not ifdefed out to avoid
49         potential bugs (i.e. the few bytes lost does not warrent the extra
50         maintanence and complexity that having seperate sets of locks would
51         cause)
52
53 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
54
55         * bus/services.c (bus_registry_acquire_service): Return an error
56         when an application tries to register the org.freedesktop.DBus Bus Name
57
58         * bus/services.c (bus_registry_release_service): Return an error
59         when an application tries to release the org.freedesktop.DBus Bus Name
60
61 2006-08-17  Alp Toker  <alp@atoker.com>
62
63         * doc/dbus-specification.xml: Fix some minor typos.
64
65 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
66
67         * configure.in: use $with_init_scripts instead of $operating_system
68         to determine where to store the pid since the init scripts manipulate 
69         the pid file (patch from Marcelo Ricardo Leitner 
70         <marcelo dot leitner at terra dot com dot br>.  
71
72 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
73
74         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
75         static DBusList *uninitialized_condvar_list to support new late 
76         initialization threading model.  In this model threads can be initialized
77         even after the D-Bus API has been used but still needs to be initialized 
78         before the second thread has been started.  Mutexes and condvar addresses
79         are stored in the two static lists and are replaced with actuall locks
80         when threads are initalized.
81         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
82         the location into the static list
83         (_dbus_mutex_free_at_location): New method for removing a mutex location 
84         from the static list and freeing the mutex
85         (_dbus_condvar_new_at_location): New method for creating a conditional 
86         variable and placing the location into the static list
87         (_dbus_condvar_free_at_location): New method for removing a conditional
88         variable location from the static list and freeing the conditional variable 
89         (init_uninitialized_locks): Atomic method which goes through the static 
90         lists of mutex and condvar location and updates them with actuall locks
91         (init_global_locks): changed to init_locks
92         
93         * dbus/dbus-connection.c:
94         (_dbus_connection_test_get_locks): New method for tests to check connections
95         (_dbus_connection_new_for_transport): Use the new at_location mutex and
96         condvar API
97         (dbus_connection_allocate_data_slot): Pass in the global lock address
98         to _dbus_data_slot_allocator_alloc
99
100         * dbus/dbus-dataslot.c:
101         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
102         instead of the mutex itself
103
104         * dbus/dbus-message.c:
105         (dbus_message_allocate_data_slot): Pass in the global lock address
106         to _dbus_data_slot_allocator_alloc
107
108         * dbus/dbus-pending-call.c:
109         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
110         to _dbus_data_slot_allocator_alloc
111
112         * dbus/dbus-server.c:
113         (_dbus_server_init_base): Use the new at_location mutex API
114         (dbus_server_allocate_data_slot): Pass in the global lock address
115         to _dbus_data_slot_allocator_alloc
116
117         * test/name-test/test-threads-init.c: New test case for late thread
118         initialization
119
120 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
121
122         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
123         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
124         causes compile problems when asserts are turned off
125         Keeping _dbus_warn for printing out the message so even if
126         asserts are turned off the user gets the messages that something is 
127         wrong 
128
129 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
130
131         Patches by Kjartan Maraas <kmaraas at gnome dot org>
132
133         * bus/services.c (bus_service_list_queued_owners):
134         Add a pointer cast to fix compiler warning
135
136         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
137         return a NULL instead of FALSE since the return type
138         is not expecting a boolean
139
140         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
141         Remove unused variable
142
143         * dbus/dbus-marshal-recursive-util.c (node_new):
144         return a NULL instead of FALSE since the return type
145         is not expecting a boolean
146
147         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
148         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
149         because we are expecting a pointer not a boolean
150
151         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
152         add void as the parameter so some compilers
153         don't complain
154
155         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
156           _dbus_transport_new_for_tcp_socket):
157         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
158         because we are expecting a pointer not a boolean
159
160         * test/shell-test.c (test_command_line):
161         cast the second argument to _dbus_list_append to avoid compiler
162         warnings
163
164         * test/test-names.c (main): remove unused variable
165
166         * test/test-service.c (check_hello_from_self_reply):
167         Initialize echo_message and echo_reply to NULL
168         
169         * test/test-shell-service.c (handle_echo):
170         Remove unused variable and cast the third parameter passed to
171         dbus_connection_get_object_path_data to avoid compiler warrnings
172
173         * test/name-test/test-names.c (clear_message_queue):
174         Remove unused function
175
176         * test/name-test/test-pending-call-dispatch.c:
177         Fix format string in printf
178
179
180 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
181
182         * dbus/dbus-bus.c:
183         * test/name-test/test-names.c:
184         Remove test method dbus_bus_connection_get_unique_name because 
185         we already have public method dbus_bus_get_unique_name that 
186         does the exact same thing
187
188 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
189
190         * dbus/dbus-signature.c:
191         fix typos in Julio's previous patch which cause make check to fail
192
193 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
194
195         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
196         In any case it was wrong since this is a test checking to see if
197         address parsing is correct.  There was no need to get the true
198         tmp directory.  
199
200 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
201
202         * dbus/dbus-macros.h: Revert the addition of stddef.h
203         as we should not be adding it to library headers 
204
205 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
206
207         * dbus/dbus-signature.c:
208         Fix the unit tests so that they work if assertions are not enabled.
209         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
210
211 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
212
213         * tools/run-with-tmp-session-bus.sh:
214         * test/name-test/run-test.sh:
215         Remove bashisms (patch from Julio M. Merino Vidal
216         <jmmv at NetBSD dot org>)
217
218 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
219
220         * configure.in: add a version (>= 2.6.0) check for libxml2
221
222 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
223
224         * configure.in: make sure the compiler supports -Wfloat-equal
225         
226         * bus/dir-watch-dnotify.c: move functional code after 
227         variable declerations (C99 fix)  (patches from Jens Granseuer
228         <jensgr at gmx dot net>
229
230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-macros.h:
233         add #include <stddef.h> so that Sun compilers don't complain about
234         the defining NULL
235
236 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
237
238         * dbus/dbus-sysdeps.c:
239         * dbus/dbus-address.c:
240         * bus/activation.c:
241         * test/shell-test.c:
242         don't hardcode tmp directory (patch from Dave Meikle 
243         <dmk at davemeikle dot co dot uk>)
244
245 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
246
247         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
248         Change an assert to a detailed warning and abort.  
249         When allocator->lock != mutex it indicates that the user has failed
250         to initalize threads before using the D-Bus library.  This warning
251         helps the user identify the issue and fix their app.
252
253 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
254
255         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
256         with cleanups of bugs found from Coverity reports:
257
258         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
259         close the file on error to avoid a leak
260
261         * bus/expirelist.c (bus_expire_list_test):
262         Check for NULL on dbus_new0
263
264         * bus/activation.c (update_directory):
265         remove dead code
266
267         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
268         Fix some leaks
269
270         * bus/bus.c (process_config_every_time):
271         Fixed a leak
272
273         * bus/desktop-file.c (parse_key_value):
274         Fixed leak
275
276         * bus/selinux.c (bus_selinux_id_table_insert):
277         Fixed leak
278
279 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
280
281         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
282         remove dead code
283
284 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
285
286         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
287         #!/bin/bash
288
289 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
290
291         * Doxyfile.in: fix the INPUT line so we can generate docs 
292         when sourcedir != builddir (patch from Cygwin Ports maintainer
293         <yselkowitz at users dot sourceforge dot net>
294
295 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
296
297         * dbus/dbus-sysdeps.h:
298         * dbus/dbus-sysdeps.c: 
299         * dbus/dbus-string.c: 
300         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
301         GLib's function which does the same thing
302
303         * configure.in:
304         * bus/Makefile.am:
305         * bus/dir-watch-default.c:
306         * bus/dir-watch-dnotify.c:
307         * bus/dir-watch-kqueue.c:
308         Add kqueue directory watching for freebsd and split the directory
309         watching code into seperate files per method/arch
310         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
311
312 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
313
314         * configure.in:
315         * tools/Makefile.am:
316         * tools/dbus-launch.c:
317         * bus/Makefile.am:
318         allow --with-dbus-daemondir switch to be used to make the
319         daemon install to a seperate bindir like /usr/libexec
320         (patch from Brian Cameron <brian dot cameron at sun dot com)
321
322 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
323
324         * bus/Makefile.am (install-data-hook): removed the slash after 
325         $(DESTDIR) so we don't get the double slash which does not work
326         in windows (patch from Andras Porjesz 
327         <andras dot porjesz at siemens dot com>)
328
329 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
330
331         * dbus/dbus-sysdeps.h:
332         * dbus/dbus-sysdeps.c: 
333           add _dbus_printf_length (patch from Peter Kümmel 
334           <syntheticpp at gmx dot net>)
335
336 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
337
338         * dbus/dbus-internals.c: unistd.h is not used 
339         (_dbus_verbose_real): only enable verbose printing 
340         if DBUS_VERBOSE environment var is set to '1'
341         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
342
343 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
344
345         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
346         so we still compile on older gcc (patch from Frederic Peters 
347         <fpeters at 0d dot be>
348
349 2006-08-04  Havoc Pennington  <hp@redhat.com>
350
351         * configure.in: add -Wdeclaration-after-statement
352
353         * dbus/dbus-connection.c: change all the pending call stuff to
354         reflect the fact that pending call operations use the connection
355         lock
356
357         * dbus/dbus-pending-call.c: add locking here
358
359         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
360         field const consistent with how message field is done
361
362 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
363
364         * s/D-BUS/D-Bus/g
365
366 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
367
368         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
369         <in7y118 at public.uni-hamburg dot de> - fix invalid
370         read/write reported by valgrind
371
372 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
373
374         * Released 0.91
375
376 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
377
378         * dbus/dbus-connection.c:
379         (_dbus_connection_attach_pending_call_unlocked):
380         (connection_timeout_and_complete_all_pending_calls_unlocked):
381         Make sure we set timeout_added on pending calls to FALSE when
382         we remove the timeout from the connection
383
384 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
385
386         * Removed some extra bindings stuff lingering around (thanks timo)
387         * dbus-pendingcall.c (_dbus_pending_call_new): 
388         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
389         when we tried to take a lock on an already locked connection
390
391 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
392
393         * Released 0.90
394
395 2006-07-17  Havoc Pennington  <hp@redhat.com>
396
397         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
398         ints, reported by Owen Taylor
399
400 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
401
402         * doc/TODO:
403         * dbus/dbus-bus.c:
404         * dbus-errors.c:
405         * dbus/dbus-marshal-validate.c:
406           Removed TODO items which were fixed or are no longer relevent
407
408 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
409
410         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
411         Remove stray files from the stripped bindings
412
413 2006-07-16  Havoc Pennington  <hp@redhat.com>
414
415         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
416         Improve the error message on reply timeout
417
418 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
419
420         * Remove all bindings
421
422 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
423
424         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
425         and set pending_reply out arg to NULL is connection is disconnected
426         (connection_timeout_and_complete_all_pending_calls_unlocked): New
427         static method for cleaning up pending calls on disconnect
428         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
429         calls queued timeouts on disconnect 
430
431          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
432         Remove 
433
434 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
435
436         * bus/activation.[ch] (bus_activation_list_services): new function to 
437         get the list of services that can be activated
438
439         * bus/dispatch.c: test coverage for the new bus method
440         ListActivatableNames
441
442         * bus/driver.c: new bus method ListActivatableNames to get the list of
443         services that can be activated
444
445         * doc/dbus-specification.xml: ListActivatableNames method documentation
446
447 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
448         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
449         source files
450
451 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
452         * dbus/dbus-message-factory.c:
453         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
454
455 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
456         * dbus/dbus-connection-internal.h:
457         * dbus/dbus-connection.c:
458         * file dbus/dbus-pending-call.c:
459         * dbus/dbus-pending-call.h:
460         Make DBusPendingCall an opaque type even to D-Bus internals
461
462 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
463
464         * dbus/dbus-connection.h: remove connection_disconnect and replace with
465         connection_close
466
467         * dbus/dbus-connection.c: include dbus-bus.h
468         (_dbus_connection_read_write_dispatch): make static
469
470 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
471
472         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
473         function
474         (dbus_connection_dispatch): On disconnect unref any shared connections
475
476         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
477         for cleaning up shared connections on disconnect
478         (internal_bus_get): get a hard refrence to shared connections when
479         they are created
480         
481         * doc/TODO: Remove items which are no longer relevent or have been fixed
482         Split 1.0 todo items with a 0.90 freeze todo list
483  
484 2006-06-14  Ross Burton  <ross@openedhand.com>
485
486         * glib/dbus-gobject.c:
487         Free a leaking GArray (surely not!) in dbus_g_method_return.
488
489 2006-06-14  Ross Burton  <ross@openedhand.com>
490
491         * tools/Makefile.am:
492         * tools/dbus-monitor.c:
493         Don't use the GLib bindings in dbus-monitor (patch from Ralf
494         Habacker).
495         
496 2006-06-14  Ross Burton  <ross@openedhand.com>
497
498         * tools/dbus-print-message.c:
499         Also print the object path when outputting signals or method calls.
500
501 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
502
503         * qt/src/Makefile.am: install the qdbus.h header.
504         This allows people to actually use the installed code.
505
506 2006-06-12  Ross Burton  <ross@openedhand.com>
507
508         * glib/dbus-gproxy.c:
509         Don't leak a GArray when firing signals (thank Rob Taylor for review).
510
511 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
512
513         * Released 0.62
514
515 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
516
517         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
518         break pedantic builds. Closes bug 6043 (patch approved by
519         Havoc back in February).
520
521 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
522
523         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
524         that took a QDBusMessage parameter.
525         * qt/src/qdbusbus.h: Add a default flag for RequestName.
526         * qt/tools/dbus.cpp: Don't use automatic call because we might
527         be calling an async method: request a reply.
528
529 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
530
531         * test/qt/*: Update the testcases, including testing the new
532         functionality of sending null QByteArray and QString over the
533         bus. Add new headertest test and restore the old
534         qdbusxmlparser test.
535
536 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
537
538         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
539         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
540
541         * qt/examples/Makefile.am:
542         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
543         form.
544
545         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
546         QByteArray() (nulls) over the bus.
547         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
548         the one that has the signature suffix stripped.
549         * qt/src/qdbusreply.h: Make some methods const.
550
551 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
552
553         Patch from Timo Hoenig <thoenig@suse.de>.
554
555         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
556         required during build to EXTRA_DIST.
557         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
558         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
559         * configure.in: Fix "make dist", take care that the Makefile for
560         qt/dbus is being generated.
561
562 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
563
564         * bus/bus.c: Fix eavesdropping on method calls
565
566 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
567
568         * configure.in:
569         * dbus/dbus-userdb-util.c:
570         Add Solaris console owner patch from Artem Kachitchkine
571
572 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
573
574         * qt/Makfile.am:
575         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
576         reorganisation. Thanks to Timo Hoenig for pointing this out.
577
578 2006-06-06  Robert McQueen  <robot101@debian.org>
579
580         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
581           call to dbus_g_type_get_struct.
582
583 2006-06-06  Robert McQueen  <robot101@debian.org>
584
585         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
586           pointers were put into a GPtrArray-based specialised collection, and
587           then freed along with the array. GValues which you add into
588           collections or maps which have the NOCOPY flag set are assumed to not
589           belong to the caller, so rather than the existing pointer-stealing
590           semantics, they are copied instead. Given that the main consumers of
591           this abstraction are the bindings themselves, I don't think this is
592           too bad, but others should watch their choice of take vs set_static.
593
594 2006-06-06  Robert McQueen  <robot101@debian.org>
595
596         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
597           of g_slist_prepend not being used. Fixed copying of slist-based
598           specialised collections, then wrote a test case and found that it was
599           all broken. Went on to fix iterating and appending too. Good thing
600           nobody uses this code yet.
601
602 2006-06-06  Robert McQueen  <robot101@debian.org>
603
604         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
605           the iterators use gvalue_take_ptrarray_value (the GValues themselves
606           are discarded without unsetting, so it makes no difference whether
607           we take or set_static). Remove cases for G_TYPE_POINTER because
608           there really is nothing useful we can do with them in our
609           specialised types - we *need* boxed copy/free functions at the very
610           least.
611
612 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
613
614         * qt/dbus: Add directory. I had forgotten to add this
615         yesterday after the move...
616
617         * qt/examples/Makefile.am:
618         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
619
620         * qt/tools/Makefile.am:
621         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
622         Added feature to get and set properties.
623         Added validation of service, object path and interface names.
624
625         * qt/tools/dbusidl2cpp.cpp: Two new features:
626         1) Allow specifying both the header and the source file names,
627         by separating them with a colon.
628         2) Don't write an interface output if the -p switch wasn't
629         given, but the -a was.
630
631         * qt/src/*: Fix usage of Iterators and ConstIterators.
632         Fix shadowing of variables by other variables (-Wshadow).
633         Fix keyword-cleanliness in headers.
634         Fix ASCII-cast (QLatin1String, QLatin1Char).
635         Fix validation of member names.
636         Add extra checking of introspection data during XML parsing.
637         Various bug fixes.
638
639 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
640
641         * dbus/Makefile.am:
642         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
643         qt/dbus/qdbus.h now.
644
645 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
646
647         * configure.in: Make --disable-qt actually do
648           something. Patch inspired by Zack Rusin.
649
650 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
651
652         * qt/: Update to Subversion r548032.
653         This includes a big reorganisation of the files inside the
654         subdir.
655
656 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
657
658         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
659         clear:  
660         "Failed to connect to socket <host>:<port> <error>" instead of
661         "Failed to connect to socket <host>: <error>:<port>"
662
663         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
664         for a tcp transport. 
665
666 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
667
668         * qt/*: Update the QtDBus bindings up to revision 546310 in
669         Subversion.
670         This adds the dbuscpp2xml tool, that parses a C++ header and
671         outputs a D-BUS Introspection XML.
672
673 2006-05-21  Havoc Pennington  <hp@redhat.com>
674
675         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
676         is not NULL when it shouldn't be. Also a couple of possible fixes
677         for #4637 though I don't understand why the bug happens, to be
678         honest... also the object constructor has an assert name != NULL
679         and the name is only currently NULL for peer-to-peer proxies that 
680         I don't think anyone uses? So it should be asserting.
681         Anyway, for now at least see if we get an earlier assertion failure.
682
683         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
684         apparently broken code to be sure the tests fail and someone 
685         will fix them...
686
687 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
688
689         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
690         and arrays when they had a single element: has_next returns
691         false, even before you read the element. So, instead, check
692         the array length.
693
694 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
695
696         * qt/qdbusmessage.cpp:
697         * qt/qdbustypehelper_p.h:
698         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
699         the list is a const-reference
700
701 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
702
703         * Adding old doc patch that never got applied
704         
705         * dbus/bus.c (dbus_bus_add_match): Add documentation
706
707         * doc/dbus-specification.xml: Add documentation for the match rules
708           and the AddMatch and RemoveMatch methods
709
710 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
711
712         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
713         call (r535506)
714
715         * qt/dbusidl2cpp.cpp:
716         * qt/qdbusabstractadaptor.cpp:
717         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
718         sibling of the QDBusAbstractAdaptor objects instead of the
719         parent. (r535848)
720
721         * qt/dbusidl2cpp.cpp:
722         * qt/qdbusabstractinterface.cpp:
723         * qt/qdbusabstractinterface.h:
724         * qt/qdbusabstractinterface_p.h:
725         * qt/qdbusinterface.cpp: Make properties in interfaces
726         actually work. The code that was generated would not compile,
727         due to moc calls to functions that did not exist. They now
728         shall. (r536571)
729
730 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
731
732         * Makefile.am:
733         * configure.in:
734         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
735         Thanks to Brad Hards for providing the patch
736
737 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
738
739         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
740         call. (r535506)
741
742 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
743
744         * qt/examples/dbus.cpp: Enhance error messages and use
745         QDBusInterfacePtr.
746
747 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
748
749         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
750         and disable the copy operators. (r533772, r534746)
751
752         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
753
754         * qt/qdbusabstractinterface.cpp:
755         * qt/qdbusabstractinterface.h: Change the default call mode to
756         not use the event loop. Add convenience call() methods that
757         take a CallMode parameter. (r534042)
758
759         * qt/qdbusconnection.h: Change the default call mode to not
760         use the event loop. (r534042)
761
762         * qt/qdbusinterface.cpp:
763         * qt/qdbusinterface.h: Add a method to tell us if the
764         interface is valid (since we don't return a null pointer
765         anymore) (r534099)
766
767         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
768         (r534101)
769
770         * qt/qdbusinternalfilters.cpp: Decouple the introspection
771         function in two so taht we get the chance to introspect
772         without having a QDBusMessage (r534102)
773
774         * qt/qdbusbus.h:
775         * qt/qdbusconnection.cpp:
776         * qt/qdbusconnection_p.h:
777         * qt/qdbusintegrator.cpp: Keep a list of our own names to
778         avoid a round-trip to the server when attempting to introspect
779         one of our own objects. Also make sure the filter functions
780         match the empty interface as well. (r534108)
781         Don't keep the connection names. Instead, trust the unique
782         connection name (r534111)
783         Remove event loop usage (r534112)
784
785 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
786
787         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
788         Brad Hards.
789
790 2006-04-28  Robert McQueen  <robot101@debian.org>
791
792         * glib/dbus-gproxy.c: Fix properties so that they can be given in
793         any order, making it easier for people who inherit from this
794         object.
795
796 2006-04-28  Robert McQueen  <robot101@debian.org>
797
798         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
799         of memory from within pointer arrays and lists. Fixes bug #6300.
800
801 2006-04-28  Robert McQueen  <robot101@debian.org>
802
803         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
804         generating struct signatures. Fixes bug #6083.
805
806 2006-04-28  Robert McQueen  <robot101@debian.org>
807
808         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
809         to qdbusconnection_p.moc.
810
811 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
812
813         * README, INSTALL: Doc fixes
814         Patch from Brad Hards <bradh at frogmouth.net>
815
816 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
817
818         * qt/examples/dbus.cpp: Use the new merged-interface mode for
819         the dynamic meta object. No need to guess which interface to
820         call.
821
822 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
823
824         * qt/qdbusconnection_p.h:
825         * qt/qdbusmetaobject.cpp:
826         * qt/qdbusmetaobject_p.h:
827         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
828         for the dynamic meta object. No need to guess which
829         interface to call.
830         * qt/qdbusabstractinterface_p.h:
831         * qt/qdbusconnection.cpp:
832         * qt/qdbusintegrator.cpp:
833         * qt/qdbusinterface.cpp:
834         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
835         Add a QDBusRef that looks and behaves like DCOPRef.
836
837 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
838
839         * dbus/dbus-connection.c: Interfaces are optional in method
840         calls, so don't give up if the interface parameter is NULL.
841         Patch reviewed by Havoc Pennington.
842
843 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
844
845         * qt/qdbusreply.h: Add default constructor and operator=
846           (r532625)
847         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
848           in public headers (r532952)
849         * qt/qdbusabstractinterface.cpp:
850         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
851           make it the default (r532951)
852
853 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
854
855         * dbus/dbus-connection.c: Fix asserts
856         Patch from Tim Moloney <t.moloney at verizon.net>
857
858 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
859
860         * mono/Connection.cs, mono/Message.cs: Check Target type
861         Patch from Aaron Bockover (abockover at novell.com)
862
863 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
864
865         * INSTALL: fine-tune the requirements for the Qt4 binding.
866
867 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
868
869         * tools/dbus-print-message.c: Added support for printing of all 
870           remaining data types. Fixed logic for indentation of compound
871           data types.
872         
873 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
874
875         * INSTALL: fill out content of file providing DBus specific
876           build installations, followed by generic Auto* INSTALL file
877           content
878         
879 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
880
881         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
882           Patch by Stefan Eilers. (r529537)
883
884 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
885
886         * qt/qdbusinternalfilters.cpp: Don't show the parent's
887           contents (r528208)
888
889 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
890
891         * qt/Makefile.am: fix the dependency for
892           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
893           not in qdbusconnection.cpp.
894           Thanks to Jakub Stachowski <stachowski@hypair.net> for
895           spotting this.
896
897 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
898
899         * qt/examples/listnames.cpp:
900         * qt/examples/Makefile.am: Three ways to list the names on the
901           bus.
902
903 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
904
905         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
906           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
907
908 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
909
910         Merge from Subversion:
911         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
912           something that exists (r526315)
913         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
914           slots/signals (r526316)
915         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
916           also return an unknown-method error if the parameters don't
917           match for org.freedesktop.DBus.Properties. (r526842)
918         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
919         * qt/qdbusintegrator.cpp: Restore the proper order of
920           delivery: don't make method returns be delivered on priority
921           (r528150)
922
923 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
924
925         * configure.in qt/Makefile.am: add qt/examples
926         * qt/examples: Add QtDBus example programs:
927           - hello: Hello, World
928           - ping: Simple method-calling program
929           - pong: Simple object-exporting program (not using adaptors)
930           - complexping: Interactive method-calling program 
931                 (also gets and sets properties).
932           - complexpong: Sample program exporting methods, signals and
933                 properties, using adaptors.
934           - dbus: Simple implementation of a generic method-calling
935                 program, similar to 'dbus-send', but with semantics
936                 similar to 'dcop'.
937           - chat: Simplistic chat program, implemented using signals
938                 and the system bus. Looks like IRC.
939
940 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
941
942         * configure.in: Detect QtGui (necessary for one of the
943           example programs). Note: this increases the minimum required
944           version of Qt to 4.1.3.
945
946 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
947
948         * test/qt/*: Sync with KDE Subversion revision 523647.
949         Update the testcases to the new API. Remove testcases for
950         classes that are no longer public or have been removed.
951
952 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
953
954         * qt/*: 
955         * dbus/qdbus.h: Sync with KDE Subversion revision
956         523647. Hopefully, this will be the last of the
957         source-incompatible changes. Documentation has been improved;
958         support for QList<basic-types> has been added; QDBusObject is
959         gone; QDBus(Abstract)Interface is now a QObject with
960         auto-generated meta-object; QDBusIntrospection is marked
961         private, since QMetaObject can be used now; lots of bugfixes.
962
963 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
964
965         Patch from Milosz Derezynski <internalerror at gmail.com>
966         
967         * configure.in:
968         Output the service directory in the configure summary
969
970         * dbus-1.pc.in:
971         Add session_bus_services_dir
972
973 2006-03-10  Ross Burton  <ross@openedhand.com>
974
975         * tools/dbus-print-message.c:
976         Add support for object paths and signatures.
977
978 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
979
980         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
981         config reload.
982         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
983         information caches
984         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
985         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
986         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
987         * dbus/dbus-userdb.h: Add function to flush all user/group information
988         caches.
989
990 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
991
992         * qt/dbusidl2cpp.cpp:
993         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
994         for dcopidl2cpp, found in the KDE installations (or the more
995         modern kalyptus): generate Qt4 C++ code for the input XML
996         introspection. Currently no IDL parsing.
997
998 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
999
1000         * test/qt/*: Update the self-tests.
1001
1002 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1003
1004         * qt/*: 
1005         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1006         represents the first feature-complete version of the Qt4
1007         bindings since I took ove maintainership.
1008
1009 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1010
1011         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1012         dir. This is C++, so we can't use the DBus ones.
1013
1014 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1017         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1018
1019 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1020
1021         * dbus/dbus-connection.c: 
1022         (_dbus_connection_block_pending_call):
1023         Check to see if our data has already been read off the connection
1024         by another blocking pending call before we block in poll.
1025         (check_for_reply_and_update_dispatch_unlocked):
1026         Code taken from _dbus_connection_block_pending_call - checks for
1027         an already read reply and updates the dispatch if there is one.
1028
1029         * test/name-test/test-pending-call-dispatch.c:
1030         New test for making sure we don't get stuck polling a 
1031         dbus connection which has no data on the socket when
1032         blocking out of order on two or more pending calls.
1033
1034 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1035
1036         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1037         make/automake don't detect that we're talking about the same
1038         .lo file if I specify the full path to the source files.
1039
1040 2006-02-26  Havoc Pennington  <hp@redhat.com>
1041
1042         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1043
1044         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1045         session bus variable is unset, suggest "man dbus-launch" and "man
1046         dbus-daemon" to figure out how to fix the problem
1047
1048 2006-02-25  Havoc Pennington  <hp@redhat.com>
1049
1050         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1051         should make this thing use the new glib options parser
1052
1053 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1054
1055         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1056         .lo files taking moc sources.
1057
1058 2006-02-25  Havoc Pennington  <hp@redhat.com>
1059
1060         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1061         and install it as a public header
1062
1063 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * Released 0.61
1066
1067 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1068         
1069         * proxies.py: Fix the callchain
1070
1071 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1072         
1073         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1074
1075         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1076         dbus/dbus-sysdeps.c
1077
1078         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1079         call _dbus_group_info_free_allocated which causes infinite loop,
1080         correctly call _dbus_group_info_free
1081
1082 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1083
1084         * qt/qdbusinterface_p.h:
1085         * qt/qdbusinterface.cpp: Use the standard
1086         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1087         calls instead of creating one for us.
1088
1089         * qt/qdbusconnection_p.h:
1090         * qt/qdbusintegrator.cpp: Remove debugging code.
1091
1092         * qt/qdbusintegrator.cpp:
1093         * qt/qdbusmessage.cpp:
1094         * qt/qdbusmessage_p.h:
1095         * qt/qdbusmessage.h: Change the behaviour of automatic
1096         reply-sending: now a reply is always sent, unless the caller
1097         didn't request one or if the user slot has already sent one.
1098
1099 2006-02-16  Robert McQueen  <robot101@debian.org>
1100
1101         * configure.in: Patch from Debian packages by Sjoerd Simons
1102         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1103         arguments so it's possible to build both bindings in the
1104         same tree.
1105
1106         * qt/Makefile.am: Fix truncated value so that make dist works.
1107
1108 2006-02-16  Robert McQueen  <robot101@debian.org>
1109
1110         * acinclude.m4, configure.in: Patch from Brad Hards
1111         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1112         improving quoting, re-ordering a few checks, and a few other
1113         aesthetic tidy-ups.
1114
1115 2006-02-16  Robert McQueen  <robot101@debian.org>
1116
1117         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1118         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1119         assertion that the next element to read from the iter is fixed in
1120         size. This is not the case when you are at the end of the iter,
1121         because the next element type is INVALID.
1122
1123         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1124         a bogus assert which means that you may not initialise a 0-length
1125         string unless you provide a non-NULL pointer. This prevented
1126         you from marshalling messages containing zero-length arrays in
1127         some cases.
1128
1129         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1130         from Rob to correct bogus asserts when trying to demarshal an
1131         array and get_fixed_array got you 0 elements. Append nothing to
1132         the GArray in this case.
1133
1134         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1135         an empty array via the glib bindings. Without all of the above
1136         patches, this new test fails.
1137
1138 2006-02-16  Robert McQueen  <robot101@debian.org>
1139
1140         * glib/dbus-gmain.c: Make the previous commit compile.
1141
1142         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1143         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1144         specify sender_keyword="foo", path_keyword="bar" when adding
1145         a signal listener, so that you can bind to signals generically
1146         but still do something useful in your callback.
1147
1148         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1149         chars so that they're not cast to chars and made negative. Thanks
1150         to Jakub Stachowski for reporting this and testing the fix.
1151
1152 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * dbus/dbus-glib.h:
1155         * glib/dbus-gmain.h:
1156         (dbus_g_connection_open): new method for openning
1157         a connection to an arbitrary address in the glib bindings
1158
1159         * ChangeLog: checkin last entry which doesn't seem to be commited
1160
1161 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1162
1163         * tools/dbus-launch.c: Fixed sh syntax output
1164
1165 2006-02-13  Robert McQueen  <robot101@debian.org>
1166
1167         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1168         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1169         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1170         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1171         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1172         missing piece of the glib bindings jigsaw puzzle. This modifies
1173         the existing specialised types to have N type parameters (rather
1174         than the current 1 or 2 for arrays and dictionaries respectively).
1175         You can then use this to get a glib type to represent any arbitrary
1176         D-Bus struct type using dbus_g_type_get_struct. The only
1177         implementation of these types is with GValueArrays as before,
1178         but it's now possible to store these in arrays, emit them in
1179         signals, etc.
1180
1181 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1184         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1185         <thiago.macieira at trolltech.com>
1186
1187 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1188
1189         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1190         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1191
1192 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1193
1194         * bus/connection.c (bus_connections_expect_reply): Make
1195         pending reply limit not common to all connections (Bug #5416)
1196         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1197
1198 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1199
1200         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1201
1202 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1205         patch from Doug Goldstein <cardoe at gentoo.org>
1206
1207 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1208
1209         * mono/Arguments.cs: Fix a magic number in the mono bindings
1210         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1211
1212 2006-01-27  Robert McQueen  <robot101@debian.org>
1213
1214         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1215         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1216         when generating the client-side methods, instead of overloading
1217         CSymbol which broke everything horribly. My apologies.
1218
1219 2006-01-27  Robert McQueen  <robot101@debian.org>
1220
1221         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1222         by me and Rob Taylor to add a simple_free function to D-Bus map
1223         and collection types, which allows those types which can be freed
1224         with a GDestroyNotify (such as GHashTables and GArrays, but not
1225         GPtrArrays) to be stored as the values in hashtables.
1226
1227         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1228         Patch by Rob Taylor to add nested dicts to the glib tests to check
1229         the above code works, and appears not to leak when called repeatedly.
1230
1231 2006-01-27  Robert McQueen  <robot101@debian.org>
1232
1233         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1234         to free a D-Bus allocated string with dbus_free () instead of
1235         g_free ().
1236
1237 2006-01-27  Iain Holmes  <iain@openedhand.com>
1238
1239         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1240         method from being called multiple times.
1241
1242 2006-01-19  Robert McQueen  <robot101@debian.org>
1243
1244         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1245         <rob.taylor@collabora.co.uk> to add support for generating bindings
1246         to arrays that are represented as GPtrArrays rather than GArrays (ie
1247         size-variable things, such as strings, objects, structs, etc).
1248
1249 2006-01-05  Robert McQueen  <robot101@debian.org>
1250
1251         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1252         <ricardo.kekki@movial.fi> to make it possible to inherit from
1253         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1254         a private part, and moving the setting of the DBusGProxyManager into a
1255         connection property, allowing proper GObject construction.
1256
1257 2006-01-05  Robert McQueen  <robot101@debian.org>
1258
1259         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1260         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1261         annotations when generating glib client bindings.
1262
1263 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1266
1267         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1268
1269 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1270
1271         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1272
1273 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1274
1275         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1276
1277 2005-12-19  Ross Burton  <ross@openedhand.com>
1278
1279         * doc/dbus-tutorial.xml:
1280         Document the Glib client-side bindings, and list all possible annotations.
1281
1282 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/bus.c (dbus_bus_release_name): Add documentation
1285
1286 2005-12-06  Robert McQueen  <robot101@debian.org>
1287
1288         * python/service.py: s/sucessful/successful/ so we're allocating to
1289         and reading from the same variable. Oops.
1290
1291 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1292
1293         * Released 0.60
1294
1295 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1296
1297         * test/qt/Makefile.am: build from srcdir
1298
1299         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1300         Note - this code is wrong and needs to be fixed by the Qt binding
1301         developers.  The flags should be treated as bitfields and not enums.
1302
1303         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1304
1305 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1306
1307         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1308           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1309           in production code
1310
1311 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1314         method for getting messages off the bus in the absence of a
1315         mainloop.  This method is much like 
1316         dbus_connection_read_write_dispatch except it does not dispatch
1317         the messages to a registered filter function.  Instead it
1318         allows a developer to process messages by directly popping
1319         them off the bus.
1320
1321 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1324         the parser to continue instead of returning error
1325         (bus_desktop_file_load): Do not free parser data when
1326         parse_section_start or parse_key_value fails because it was 
1327         already freed by parser_free (patch from Carlos Garcia Campos  
1328         <carlosgc at gnome.org>)
1329
1330 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1331
1332         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1333         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1334         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1335         test/test-segfault.c, test/test-utils.c,
1336         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1337         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1338         Various cleanup of dead code and compiler warnings (patch from
1339         Kjartan Maraas <kmaraas at gnome.org>) 
1340
1341 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1344         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1345
1346 2005-11-27  Robert McQueen  <robot101@debian.org>
1347
1348         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1349         part of the preceding one. Oops. Merge patch by Johan Hedberg
1350         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1351         on big-endian platforms.
1352
1353         * test/python/test-client.py: Add some 16-bit integers to the test
1354         values.
1355
1356 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1357
1358         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1359         method return message for property getters
1360
1361 2005-11-27  Robert McQueen  <robot101@debian.org>
1362
1363         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1364         with type v of an instance of dbus.Variant(foo, type='x') caused
1365         it to be boxed twice before sending over the bus.
1366
1367         * python/dbus_bindings.pyx, python/service.py,
1368         test/python/test-client.py: Update the constants for the new
1369         request_name flags, and update comments/test cases now that queueing
1370         is the default action.
1371
1372 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1373
1374         * configure.in:
1375         - Change version to 0.60 for impending release
1376         - upped the sonames because of ABI and API breakage
1377
1378 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1379
1380         * configure.in: Add test/name-test/Makefile to the generated
1381         Makefile list
1382
1383         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1384         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1385         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1386         not to queue an ower if it can't be the primary owner
1387
1388         * bus/bus.h: Add new internal BusOwner struct
1389
1390         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1391         to bus_registry_ensure and don't set the prohibit_replacement flag
1392         since they are now set per BusOwner and not per name.
1393         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1394         that returns the list of connections in a name's connection queue
1395         
1396         * bus/services.c (struct BusService): remove prohibit_replacement field
1397         (struct BusOwner): new struct for keeping track of queued connections
1398         and their associated flags for the queue
1399         (struct BusRegistry): add a BusOwner memory pool
1400         (bus_registry_new): initialize the BusOwner memory pool
1401         (bus_registry_unref): free the BusOwner memory pool
1402         (_bus_service_find_owner_link): new internal method for
1403         searching the queue for a specific connection
1404         (bus_owner_set_flags): new method for adding setting the flags on a
1405         bus owner
1406         (bus_owner_new): new method that creates a BusOwner object from the
1407         pool and sets its flags
1408         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1409         (bus_registry_ensure): Add the flags parameter
1410         (bus_registry_acquire_service): Switch from using raw connections to
1411         using the BusOwner struct
1412         Add new state machine for dealing with the new set of flags
1413         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1414         cancel_ownership, free_ownership_cancel_data, 
1415         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1416         restore_ownership, free_ownership_restore_data, 
1417         add_restore_ownership_to_transaction): Switch to using BusOwner 
1418         instead of raw connections
1419         (bus_service_add_owner): Add flags parameter
1420         Switch to using BusOwner instead of raw connections
1421         Add state machine for dealing with the new set of flags
1422         (bus_service_swap_owner): Swaps the first and second owners in the
1423         queue.  Used to make sure proper signals are sent when a service looses 
1424         or gains primary ownership.  We never insert an owner at the top of the
1425         queue.  Instead we insert it in the second position and then swap.
1426         (bus_service_remove_owner): Remove the owner from the queue sending
1427         out the NameLost and NameOwnerChanged signals if the we were the 
1428         primary owner
1429         (bus_service_get_primary_owners_connection): New method that extracts
1430         the connection from the primary owner
1431         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1432         connection
1433         (bus_service_get_allow_replacement): Changed from the old 
1434         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1435         primary owner and returns if it can be replaced or not
1436         (bus_service_set_prohibit_replacement): removed
1437         (bus_service_has_owner): returns TRUE if and owner with
1438         the specified connection exists in the queue
1439         
1440         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1441         method that only compiles if tests are enabled.  Allows us to get the 
1442         unique name of a connection so we can check it against the queue when
1443         doing regression tests
1444
1445         * bus/activation.c (bus_activation_send_pending_auto_activate),
1446         bus/dispatch.c (bus_dispatch),  
1447         bus/driver.c (bus_driver_handle_get_service_owner, 
1448         bus_driver_handle_get_connection_unix_user, 
1449         bus_driver_handle_get_connection_unix_process_id,
1450         bus_driver_handle_get_connection_selinux_security_context),
1451         bus/signals.c (connection_is_primary_owner): 
1452         use bus_service_get_primary_owners_connection instead of
1453         bus_service_get_primary_owner
1454
1455         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1456         _dbus_listen_unix_socket): Calculate the length of the socket
1457         path and use that instead of using a fixed length which was
1458         causing socket names to contain many trailing Nul bytes.
1459
1460         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1461         (dbus_g_method_get_sender): New method for extracting the sender 
1462         from a DBusGMethodInvocation
1463         (dbus_g_method_return_get_reply): changed name to 
1464         dbus_g_method_get_reply
1465         (dbus_g_method_return_send_reply): changed name to
1466         dbus_g_method_send reply
1467
1468         * doc/dbus-specification.xml: New docs that describe how the new
1469         queueing system works and talks about the changes to the how
1470         we specify socket names
1471
1472         * glib/examples/example-service.c, 
1473         glib/examples/example-signal-emitter.c,
1474         glib/examples/statemachine/statemachine-server.c:
1475         Changed the RequestName flags to the new system
1476
1477         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1478         regression test suite for testing various states of the new
1479         queueing system
1480         
1481 2005-11-15  Robert McQueen  <robot101@debian.org>
1482
1483         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1484         Taylor to add two methods, dbus_g_method_return_get_reply and
1485         dbus_g_method_return_send_reply, to allow you to get the reply
1486         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1487         and send it. The GLib bindings can't marshal a return value of
1488         something like a(s) if the array is empty - ultimately they should be
1489         made to heed the signature of the out arguments as the Python bindings
1490         now can, but this is a workable interim solution which might have
1491         other applications.
1492
1493 2005-11-15  Robert McQueen  <robot101@debian.org>
1494
1495         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1496         method to org.freedesktop.DBus to release a bus name or give up
1497         waiting in the queue for it.
1498
1499         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1500         dbus_bus_release_name method to send the ReleaseName method calls.
1501         Add constants for the return values to dbus/dbus-shared.h.
1502
1503         * doc/dbus-specification.xml: Document the new ReleaseName method
1504         in the specification.
1505
1506         * python/dbus_bindings.pyx: Add a low-level python binding for the
1507         release name method.
1508
1509         * python/exceptions.py, python/service.py: Make freeing BusName
1510         objects release the name. Add a NameExistsException, and fix a
1511         bug with creating UnknownMethodException.
1512
1513         * test/python/test-client.py: Add tests for freeing BusName
1514         objects causing names to be released.
1515
1516 2005-11-14  Robert McQueen  <robot101@debian.org>
1517
1518         * python/service.py: Include the traceback in the error reply when we
1519         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1520
1521 2005-11-14  David Zeuthen  <davidz@redhat.com>
1522
1523         Patch from Timo Hoenig <thoenig@suse.de>.
1524
1525         * bus/bus.c: I've recently investigated why the automatic reload
1526         of configuration files does not work as expected.
1527
1528         Currently, reloading configuration files does only work when
1529         running dbus-daemon with --nodaemon.  If we are running as daemon
1530         we're hitting a dnotify bug once we fork the process.
1531
1532         We're initializing the dnotify fds before calling fork().  Once
1533         the child process forked it does still have the fds (and they
1534         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1535         getting SIGIO as changes are made to the configuration files.
1536
1537         The attached patch moves the initialization of the dnotify fds to
1538         process_config_postinit().  This is safe for all current code
1539         paths and solves the dnotify disfunction.  If we're running
1540         dbus-daemon as daemon the fds for dnotify are now being
1541         initialized after fork() for the child process.
1542
1543         * configure.in: The current configure.in check for dnotify probes
1544         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1545         match for 'xlinux', too. Additionally I have adapted the configure
1546         option's style to match with the others.
1547
1548 2005-11-14  Robert McQueen  <robot101@debian.org>
1549
1550         * python/decorators.py, python/service.py: Add a new argument to the
1551         dbus.service.method decorator called sender_keyword, which if set,
1552         specifies the name of an argument which will be provided the bus
1553         name of the method caller.
1554
1555         * test/python/test-client.py, test/python/test-service.py: Add a
1556         method and test to check the sender_keyword functionality.
1557
1558 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1559
1560         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1561         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1562         Simons <sjoerd at luon.net>)
1563
1564         * AUTHORS: Add Robert McQueen for his work on the Python
1565         Bindings and other parts of D-Bus
1566
1567 2005-11-07  Robert McQueen  <robot101@debian.org>
1568
1569         * python/decorators.py: Change emit_signal function to use the
1570         signature annotation of the signal when marhsalling the arguments from
1571         the service. Fix a bug where the code checking signature length
1572         against argument length referenced the wrong variable.
1573
1574         * python/introspect_parser.py: Avoid adding the type signature of
1575         signal arguments to any methods which occur after them in the
1576         introspection data (!) by making the parser a little more careful
1577         about its current state.
1578
1579         * python/service.py: Remove debug prints from last commit (again :D).
1580
1581         * test/python/test-client.py, test/python/test-service.py: Add test
1582         signals with signature decorators to test the strict marshalling code
1583         gives errors at the right time. Could do with checking the signals
1584         actually get emitted too, given that the test does nothing with
1585         signals at the moment...
1586
1587 2005-11-07  Robert McQueen  <robot101@debian.org>
1588
1589         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1590         instances to stop madness of creating new instances representing
1591         the same bus connection all the time, rendering any tracking of
1592         match rules and bus names quite meaningless. Caught a bug where
1593         the private argument to SessionBus() and friends was being passed
1594         in as use_default_mainloop by mistake. Still some problems with
1595         multiple dbus_binding.Connection instances representing the same
1596         low-level connection (eg when you use both SessionBus() and
1597         StarterBus() in same process), but it's a lot better now than it
1598         was.
1599
1600         * python/dbus_bindings.pyx: Add constants with the return values
1601         for bus_request_name().
1602
1603         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1604         and retrieve the same instances for the same name, so deletion can be
1605         done with refcounting. Also now throws some kind of error if you
1606         don't actually get the name you requested, unlike previously...
1607
1608         * test/python/test-client.py: Add tests for instance caching of buses
1609         and bus name objects.
1610
1611 2005-11-04  Robert McQueen  <robot101@debian.org>
1612
1613         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1614         marshalling of boolean values. Add some booleans to the values in
1615         the test client.
1616
1617         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1618         argument to the dbus.service.method decorator, which allows you to
1619         name arguments to take two callback functions for replying with
1620         return values or an exception.
1621
1622         * test/python/test-client.py, test/python/test-service.py: Add test
1623         case using asynchronous method reply functions, both return values and
1624         errors, and from within both the function itself and from a mainloop
1625         callback.
1626
1627         * python/decorators.py, python/service.py: Perform checking that the
1628         number of method/signal arguments matches the number of types in the
1629         signature at class loading time, not when you first introspect the
1630         class.
1631
1632         * python/service.py: Remove debug print left by the last commit.
1633
1634 2005-11-03  Robert McQueen  <robot101@debian.org>
1635
1636         * python/service.py: Heavy refactoring of method invocation, with
1637         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1638         in favour of a new _message_cb that uses seperate functions for
1639         looking up the method to call, marshalling the return values, and
1640         sending exceptions as errors, and is easier to follow as a
1641         consequence.  Fixes some corner cases about returning things that
1642         don't match your declared out_signature, allows exceptions to define
1643         _dbus_error_name and have it be sent over the bus as the error name,
1644         and paves the way for cool stuff like heeding the message no reply
1645         flag, asynchronous method implementations, informing the method of the
1646         sender, and including backtraces in the error messages.
1647
1648         * test/python/test-client.py: Catch and print exceptions thrown in the
1649         async callback tests, rather than passing them to the low-level
1650         bindings to be ignored in a noisy and frustrating manner.
1651
1652 2005-11-03  Robert McQueen  <robot101@debian.org>
1653
1654         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1655         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1656         tweak others to be consistent.
1657
1658         * test/python/test-client.py: Tweak output of testInheritance.
1659
1660 2005-10-29  Robert McQueen  <robot101@debian.org>
1661
1662         * python/service.py: Major changes to allow multiple inheritance
1663         from classes that define D-Bus interfaces:
1664         
1665          1. Create a new Interface class which is the parent class of
1666             Object, and make the ObjectType metaclass into InterfaceType.
1667         
1668          2. Patch written with Rob Taylor to replace use of method_vtable
1669             with code that walks the class's __MRO__ (method resolution order)
1670             to behave like Python does when invoking methods and allow
1671             overriding as you'd expect. Code is quite tricky because
1672             we have to find two methods, the one to invoke which has the
1673             right name and isn't decorated with the /wrong/ interface,
1674             and the one to pick up the signatures from which is decorated
1675             with the right interface.
1676         
1677             The same caveats apply as to normal multiple inheritance -
1678             this has undefined behaviour if you try and inherit from two
1679             classes that define a method with the same name but are
1680             decorated with different interfaces. You should decorate
1681             your overriding method with the interface you want.
1682         
1683          3. Replace grungy introspection XML generation code in the metaclass
1684             with dictionaries that cope correctly with multiple inheritance
1685             and the overriding of methods. This also uses the signature
1686             decorations to provide correct introspection data, including
1687             the debut appearance of the types of your return values. :D
1688
1689         * test/python/test-client.py, test/python/test-service.py: Add a test
1690         case to try invoking an method that overrides one inherited from a
1691         D-Bus interface class.
1692
1693 2005-10-29  Robert McQueen  <robot101@debian.org>
1694
1695         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1696         Add checking for the end of struct character when marshalling a
1697         struct in MessageIter.append_strict.
1698
1699         * python/examples/example-service.py,
1700         python/examples/gconf-proxy-service.py,
1701         python/examples/gconf-proxy-service2.py: Update to use gobject
1702         mainloop directly rather than appearing to depend on gtk.
1703
1704         * python/test/test-client.py, python/test/test-server.py: Remove
1705         obsolete and broken test scripts for old bindings. We have up to date
1706         and working tests in test/python/.
1707
1708 2005-10-29  Robert McQueen  <robot101@debian.org>
1709
1710         * python/decorators.py: Add optional arguments to the method and
1711         signal decorators to allow you to specify the signature of arguments
1712         and return values. Preserve the doc strings of signal functions in the
1713         decorated version, for pydoc and friends.
1714
1715         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1716         parse_signature_block function with an iterable dbus.Signature()
1717         type. Fix a bug in MessageIter.append_strict where you could append
1718         anything by claiming it was a string.
1719
1720         * python/service.py: Use the out_signature decoration on methods to
1721         marshal return values, meaning you no longer require dbus.Array()
1722         or dbus.Dictionary() to indicate the type when returning empty
1723         arrays or dictionaries. Fix a bug where exceptions which are defined
1724         in __main__ are not turned into error replies.
1725
1726         * test/python/test-client.py, test/python/test-service.py: Add test
1727         for correct marshalling of return values according to out_signature.
1728         Fix a bug in the async call test where the error_handler is missing a
1729         self argument.
1730
1731 2005-10-29  Robert McQueen  <robot101@debian.org>
1732
1733         * glib/Makefile.am, glib/examples/Makefile.am,
1734         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1735         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1736
1737         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1738
1739         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1740         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1741         the command line.
1742
1743 2005-10-27  Ross Burton  <ross@openedhand.com>
1744
1745         * dbus/dbus-marshal-header.c:
1746         Remove dead code.
1747
1748         * glib/dbus-gobject.c:
1749         Stop compiler warning.
1750
1751 2005-10-25  Ross Burton  <ross@openedhand.com>
1752
1753         * dbus/dbus-auth.c:
1754         * dbus/dbus-server-unix.c:
1755         * dbus/dbus-transport-unix.c:
1756         * glib/dbus-gmain.c:
1757         * glib/dbus-gobject.c:
1758         Add some const keywords.
1759
1760 2005-10-25  Ross Burton  <ross@openedhand.com>
1761
1762         * doc/dbus-specification.xml:
1763         Document the NoReply annotation.
1764
1765         * glib/dbus-binding-tool-glib.h:
1766         * glib/dbus-binding-tool-glib.c:
1767         Respect the NoReply annotation.
1768
1769 2005-10-24  Robert McQueen <robot101@debian.org>
1770
1771         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1772         derive from unicode instead of str, and encode/decode UTF-8 when
1773         marshalling/unmarshalling bus messages
1774
1775         * python/introspect_parser.py: encode introspection data as UTF-8
1776         before passing the buffer into libxml2
1777
1778         * test/python/test-client.py: add unicode test strings
1779
1780         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1781         ignore generated python test files
1782
1783 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1784
1785         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1786         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1787         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1788
1789         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1790         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1791         when constructing struct signatures
1792
1793         * python/_dbus.py (Bus): handle private connections using the
1794         private keyword in the constructor. defaults to private=False
1795         (Bus::close): new method to close a connection to the bus
1796
1797         * python/dbus_bindings.pyx (Connection::close): renamed method
1798         was previously called disconnect
1799         (bus_get): now supports getting a private connection
1800
1801         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1802         keyword is set to True.  if it is, execute the method without waiting
1803         for a reply
1804         (ProxyObject::_introspect_execute_queue): new method for executing
1805         all the pending methods that were waiting for the introspect to
1806         finish.  this is called when introspect either succeeds or fails
1807         (ProxyObject::_introspect_error_handler): call queued methods
1808
1809 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1810
1811         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1812         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1813
1814         * python/service.py (Object::_message_cb): handle exceptions correctly
1815         by sending them over the wire to the calling app.  This makes sure
1816         the client returns immediately instead of waiting the 15 seconds to
1817         timeout.
1818
1819         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1820         Add a test to benchmark how long it takes to introspect a service and 
1821         call a method which returns a large element (pretty fast)
1822
1823         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1824         method which pushes a lot of data
1825
1826 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1827
1828         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1829         reclaim memory outside of the loop and use del istead of just setting
1830         the key to None
1831
1832 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1833
1834         * python/service.py (ObjectType::_reflect_on_signal): Always close
1835         signal tag even when there are no arguments
1836
1837 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1838
1839         * configure.in: Set mono, mono-docs and Qt3 to default
1840         to no instead of auto when building.  These bindings do not
1841         have full time maintainers and will not be supported for the
1842         1.0 release.
1843
1844 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1845
1846         patches from Michael Krivoruchko <misha at sun.com>: 
1847         
1848         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1849         _dbus_connection_message_sent, 
1850         _dbus_connection_send_preallocated_unlocked_no_update, 
1851         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1852         is NULL when calling _dbus_verbose
1853
1854         * configure.in: check for functions getpeerucred and getpeereid
1855
1856         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1857         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1858         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1859         Patch was only tested on Solaris 10 x86 so it might be issues
1860         with other platforms (i.e. BSDs and MacOSX)
1861         
1862
1863 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1864
1865         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1866         instead of marshal basic so we can handle recursive types in a variant
1867
1868         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1869         in variants
1870
1871         * test/glib/test-service-glib.c, test-service-glib.xml
1872         (my_object_echo_variant [EchoVariant], 
1873         my_object_process_variant_of_array_of_ints123
1874         [ProcessVariantOfArrayOfInts123]): 
1875         Add two test methods
1876
1877         * python/introspect_parser.py: New module for parsing introspect
1878         data.
1879
1880         * python/dbus_bindings.pyx:
1881         (various places): when throwing errors fix to use errormsg instead 
1882         of message local variable because Pyrex can get confused with other 
1883         message variables (initial patch by Robert McQueen 
1884         <robert.mcqueen at collabora.co.uk>)
1885         (MessageIter::parse_signature_block): new method for getting the next
1886         block in a signiture.
1887         (MessageIter::append_strict): new method for appending values strictly
1888         using the passed in signature instead of guessing at the type
1889         (MessageItter:: append_dict, append_struct, append_array): use 
1890         signatures to marshal children if the signature is available
1891         
1892         * python/exceptions.py (IntrospectionParserException): new exception
1893
1894         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1895         introspected signatures if available, else we fall back to the
1896         old way of doing things.
1897         (ProxyObject::_introspect_reply_handler ): parse introspection data
1898         
1899         * python/service.py (ObjectType::_reflect_on_method): Properly
1900         terminate <method> if there are no args in the reflection data
1901
1902         * test/python/test-client.py: add tests for talking with the GLib
1903         test server.  This gives us better coverage for introspection since
1904         python to python will always generate arguments as variants.  It also
1905         allows us to test the robustness of the GLib bindings and interlanguage
1906         communications.
1907
1908         
1909 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1910
1911         * bus/driver.c (bus_driver_handle_introspect): Add signals
1912         to the introspect data. (patch from Daniel P. Berrange 
1913         <dan at berrange.com>)
1914
1915         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1916         
1917         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1918         _dbus_connection_run_builtin_filters): Changed these to
1919         be unlock_no_update functions and call 
1920         _dbus_connection_send_unlocked_no_update instead of
1921         dbus_connection_send to avoid locking errors.
1922         
1923         * doc/TODO: Removed the make Ping test TODO
1924         
1925 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1926
1927         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1928         We now copy the message from a DBusError and then free 
1929         the error object befor throwing the error
1930
1931         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1932         DBusBindingOutputMode enum which was causing a warning.
1933         #include <time.h> so using time_t is explicitly defined
1934
1935 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1936
1937         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1938         - dbus/dbus-bus.c
1939         (internal_bus_get): new method that take over the heavy lifting
1940         of dbus_bus_get and adds the ability to get a private connection
1941         to the bus
1942         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1943         interface as in previous versions
1944         (dbus_bus_get_private): new method that is a wrapper to 
1945         internal_bus_get to get a private connection to the bus
1946
1947         - dbus/dbus-bus.h
1948         (dbus_bus_get_private): add as a public libdbus interface
1949
1950         - dbus-1.pc.in: output system_bus_default_address and 
1951         sysconfdir variables so apps can use them when compiling
1952
1953 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1954         * dbus/qt: New Qt bindings
1955
1956 2005-09-12  Waldo Bastian  <bastian@kde.org>
1957
1958         * dbus/dbus-marshal-validate.c,
1959         doc/dbus-specification.xml, test/Makefile.am,
1960         test/test-names.c: allow hyphens in bus names.
1961
1962 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1963
1964         * test/data/auth/fallback.auth-script: we don't
1965         retry the EXTERNAL method when we know its going
1966         to fail anymore.
1967
1968 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1969
1970         * dbus/dbus-connection-internal.h: rename
1971         (add|remove|toggle)_(watch|timeout) to unlocked()
1972         
1973         * dbus/dbus-connection.c: ditto.
1974         
1975         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
1976         Update some callers for the renaming.
1977
1978 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
1979
1980         * dbus/dbus-auth.c: (record_mechanisms): don't
1981         retry the first auth mechanism because we know
1982         we're just going to get rejected again.
1983         
1984         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
1985         Fix thinko ... and what a nasty little bugger to
1986         track down you were ...
1987
1988         * dbus/dbus-connection.c:
1989         (_dbus_connection_add_watch),
1990         (_dbus_connection_remove_watch): add note about
1991         these needing the connection to be locked.
1992         (_dbus_connection_get_dispatch_status_unlocked):
1993         set status to DATA_REMAINS when we queue the
1994         disconnected message.
1995         
1996         * bus/dispatch.c:
1997         (bus_dispatch): fix warning.
1998         (check_existent_service_no_auto_start):
1999         Expect ChildSignaled error too.
2000         (check_existent_hello_from_self): fix another
2001         couple of warnings.
2002         
2003 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2004
2005         Patches from James Willcox <snorp@snorp.net>
2006
2007         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2008
2009         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2010         support array "out" parameters.
2011
2012         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2013         for 16-bit int support.
2014
2015 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2016
2017         * Released 0.50
2018
2019         * Patch from Steve Grubb:
2020         - bus/activation.c (bus_activation_service_reload_test): clean up
2021         some indentation
2022         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2023         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2024         buffer overflows in the test suite.  This is non critical because
2025         it can not be exploited and this code is only run when doing a 
2026         make check.
2027
2028         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2029         - configure.in: Don't check and link against kdecore, only qt headers
2030         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2031         - gcj/org/freedesktop/dbus/Makefile.am:
2032         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2033         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2034         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2035         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2036         - tools/Makefile.am: Add platform extentions to binaries 
2037         (i.e. .exe on windows)
2038
2039         * configure.in: 
2040         - Make it so if no suitable version of python is found we only 
2041         disable building python instead of exiting the configure script
2042         - Require version 2.4 of glib for glib bindings
2043         - Up version to 0.50
2044
2045         * python/__init__.py: Sync version with libdbus to (0,50,0)
2046         
2047 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2048
2049         * dbus/dbus-object-tree.c (find_subtree_recurse):
2050         a couple of optimizations (bug #710):
2051         - do a binary search in the tree
2052         - insert a new child at the right place directly, no need for
2053           qsort anymore
2054         - do the "double alloc" thing when allocating children
2055
2056 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2059
2060         * python/dbus_bindings.pyx: Memory management foo
2061         (global): remove hacky _user_data_references global list
2062         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2063         tuples. Unref user_data
2064         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2065         (Connection::__del__): Remove and replace with __dealloc__ method
2066         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2067         to keep tuple from being deallocated instead of the global var hack
2068         (Connection::register_object_path): Stuff user_data into a tuple.
2069         Use Py_INCREF to keep tuple from being deallocated instead of the 
2070         global var hack
2071         (Connection::register_fallback): Stuff user_data into a tuple.
2072         Use Py_INCREF to keep tuple from being deallocated instead of the 
2073         global var hack
2074         (GIL_safe_pending_call_notification): Don't unref the message
2075         because it gets unreffed when going out of scope.  Py_XDECREF
2076         the user_data
2077         (PendingCall::__del__): Remove and replace with __dealloc__ method
2078         (PendingCall::set_notify): ref the pending call because we will
2079         need it to stick around for when the notify callback gets called
2080         (Message::__del__): Remove and replace with __dealloc__ method
2081
2082         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2083         gthreads_init to match up with the dbus call
2084
2085         * python/glib.py (init_threads): Changed to threads_init to match
2086         up with gobject.threads_init().  init_threads is kept for backwards
2087         compat but will most likely be deprecated in the future
2088
2089         * test/python/test-client.py: 
2090         - revamp to use Python's unittest functionality
2091         - add async call tests
2092         - setup threads in glib and dbus so we make sure locks are working
2093         
2094 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2095
2096         * python/dbus_bindings.pyx 
2097         (_pending_call_notification, cunregister_function_handler, 
2098         cmessage_function_handler): All callback functions have been rearranged 
2099         to workaround a bug in Pyrex when working with the GIL which is Python's 
2100         global lock when dealing with threads.  They have been split into
2101         a wrapper function (which assumes the name of the old function) and
2102         a _GIL_safe_<function name> function which contains the functionality
2103         of the old function.  This ensures that Pyrex does not write code
2104         the lock is released.
2105         
2106
2107 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2110         GIL global lock when calling back into Python
2111
2112 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2113
2114         * Release 0.36.2
2115
2116         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2117
2118         * bus/policy.c (bus_policy_allow_user): change default "user is
2119         allowed" to be "user has same uid as the bus itself"; any
2120         allow/deny rules will override.
2121
2122         * bus/session.conf.in: don't allow all users, since now by default
2123         the user that ran the bus can connect.
2124
2125 2005-08-26  Colin Walters  <walters@verbum.org>
2126
2127         * tools/dbus-print-message.c (print_message): Flush stdout
2128         after printing a message, so that redirecting to a file, then
2129         hitting Ctrl-C works.
2130
2131 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2132
2133         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2134         (EmptyMessage): new class that subclasses Message.  This is a workaround
2135         to a Pyrex bug that fails to call __del__ when the Message object goes out
2136         of scope.  For some reason subclassing Message fixes this bug
2137         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2138         - s/Message(_create=0)/EmptyMessage everywhere else
2139         
2140         * test/python/test-{server|client}.py: add the python/.libs directory
2141         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2142         get picked up from the system
2143
2144 2005-08-25  Colin Walters  <walters@verbum.org>
2145
2146         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2147         to Ryan Lortie for the suggestion.
2148
2149 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2150
2151         * test/python: Add python regression test
2152
2153         * configure.in: Add test/python/Makefile
2154
2155         * test/Makefile.am: Add the python directory to SUBDIRS
2156
2157 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2158
2159         * Release 0.36.1
2160
2161         * python/_dbus.py: 
2162         (Interface::connect_to_signal): propigate keywords for match on args
2163         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2164
2165         * python/proxies.py (ProxyObject::connect_to_signal):
2166         propigate keywords for match on args
2167
2168         * Makefile.am: point everything to pyexecdir since python borks
2169         on multilib
2170
2171 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2172
2173         * Release 0.36
2174
2175 2005-08-23  Colin Walters  <walters@verbum.org>
2176
2177         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2178
2179 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2180
2181         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2182         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2183         of defining DBusConnection ourselves.
2184
2185 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2186
2187         * python/dbus.pth: New path file to fix up problems when installing
2188         c libraries to lib64 and python files to lib.
2189
2190         * python/Makefile.am: install dbus.pth in the correct spot
2191
2192 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2193         * ChangeLog: clean up my last entry a bit
2194
2195         * doc/introspect.xsl: New stylesheet for converting introspection data
2196         into browser renderable xhtml. Contributed by Lennart Poettering.
2197
2198         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2199         Poettering.
2200
2201         * doc/dbus-tutorial.xml: 
2202         - Add Colin Walter to the Authors section for authoring the GLib
2203         section
2204         - Add descriptions of the new signature and type functionality
2205         in the Python complex type mapping section
2206         - Add a sidenote on the new args matching functionality in 
2207         the Python bindings
2208         - Fixed up some of the examples to use the gobject.MainLoop
2209         instead of gtk.main
2210         
2211         * python/_dbus.py:
2212         (Bus::_create_args_dict): New. Converts a hash of arg matches
2213         to a more useable format
2214         (Bus::add_signal_receiver): add a **keywords parameter for catching
2215         arg match parameters
2216         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2217         arg match parameters
2218         
2219         * python/matchrules.py:
2220         (MatchTree::exec_matches): Check for arg matches
2221         (SignalMatchRule::add_args_match): New method
2222         (SignalMatchRule::execute): Added args_list parameter as an optimization
2223         so we don't have to marshal the args more than once
2224         (SignalMatchRule::match_args_from_list): New method that checks to see
2225         if the rule's arg matches match an argument list.  Only arguments
2226         set in the rule are checked.
2227         (SignalMatchRule::match_args_from_rule): New method that checks to see
2228         if the rule's arg matches match another rule's.  All args have to match
2229         in order for this method to return true.  If either rule has more args
2230         then it is not a match.
2231         (SignalMatchRule::is_match): Add args match
2232         (SignalMatchRule::repr): Add args to the final output if they exist
2233
2234 2005-08-17  Ross Burton  <ross@burtonini.com>
2235
2236         * glib/dbus-gproxy.c:
2237         (dbus_g_proxy_call_no_reply): unref the message once sent.
2238         (dbus_g_proxy_call): protect against NULL proxy.
2239
2240 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2241
2242         * python/__init__.py: Version updated (0, 43, 0)
2243         
2244         * python/dbus_bindings.pyx: 
2245         - Fixed type objects to have self passed into __init__
2246         - Added the Variant type
2247         - Add the ability to specify types or signatures for Array, Variant 
2248         and Dictionary
2249         (Connection::send_with_reply_handlers): return a PendingCall object
2250         (_pending_call_notification): handle the case when an error is returned 
2251         without an error message in the body
2252         (MessageIter::get_boolean): return True or False instead of an integer
2253         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2254         and add checks for objects with embeded signatures or types (Array, 
2255         Variant and Dictionary)
2256         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2257         (MessageIter::append_dict): handle embeded types or signatures
2258         (MessageIter::append_array): handle embeded types or signatures
2259         (MessageIter::append_variant): new method
2260         
2261         * python/proxies.py:
2262         (DeferedMethod): New. Dummy executable object used when queuing calls 
2263         blocking on introspection data
2264         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2265         or shorter timeouts for method calls
2266         (ProxyObject): Add first pass at an introspection state machine
2267         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2268         introspection. 
2269         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2270         the usual mechanisms for sending messages.  This is to avoid a deadlock
2271         where the Intospect call would be queued waiting for the Introspect 
2272         call to finish ;-)
2273         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2274         when introspection returns with no error
2275         (ProxyObject::_introspect_error_handler): New.  This method is called 
2276         when introspection encounters an error
2277         (ProxyObject::__getattr__): Code to handle different introspection 
2278         states.  Queue async calls or block blocking calls if we are 
2279         introspecting.  Pass through as normal if we are not or are done with 
2280         introspecting.
2281         
2282         * python/service.py: Import signal and method from decorators.py
2283
2284         * python/types.py: Add Variant type
2285
2286 2005-08-16  Colin Walters  <walters@verbum.org>
2287
2288         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2289         DBusError message is NULL.
2290
2291 2005-08-09  Havoc Pennington  <hp@redhat.com>
2292
2293         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2294         malloc'd copy of the name parameter
2295
2296 2005-08-09  Havoc Pennington  <hp@redhat.com>
2297
2298         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2299         warning if the reply serial is set to 0
2300
2301 2005-08-04  Colin Walters  <walters@verbum.org>
2302
2303         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2304         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2305         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2306         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2307         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2308         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2309         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2310         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2311         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2312         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2313         
2314         Prefix name with _ to ensure they're not exported.  All callers
2315         updated.
2316
2317         * glib/dbus-gvalue.c (typecode_to_gtype)
2318         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2319         (signature_iter_to_g_type_dict)
2320         (signature_iter_to_g_type_array)
2321         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2322         (dbus_gtypes_from_arg_signature):
2323         Move to dbus-gsignature.c.
2324
2325         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2326         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2327         (dbus_binding_tool_output_glib_client): Ditto.
2328
2329         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2330         and dbus-gsignature.h
2331
2332         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2333         unused variable.
2334
2335 2005-08-03  Colin Walters  <walters@verbum.org>
2336
2337         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2338         catch any incompatible changes accidentally made.
2339
2340 2005-08-03  Havoc Pennington  <hp@redhat.com>
2341
2342         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2343         typo, from Julien Puydt
2344
2345         * bus/connection.c (bus_connection_disconnected): we were always
2346         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2347
2348 2005-08-01  Colin Walters  <walters@verbum.org>
2349
2350         Patch from Joe Markus Clarke:   
2351         
2352         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2353         use-after-free.
2354
2355 2005-08-01  Colin Walters  <walters@verbum.org>
2356         
2357         Patch from Joe Markus Clarke:   
2358         
2359         * tools/dbus-send.c (main): 
2360         
2361         Don't use C99 style initializers (bug #3933).
2362         
2363 2005-08-01  Colin Walters  <walters@verbum.org>
2364
2365         Patch from Joe Markus Clarke:   
2366
2367         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2368         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2369         * glib/dbus-gobject.c (write_interface):
2370
2371         Don't use C99 style initializers (bug #3933).
2372
2373 2005-07-31  Havoc Pennington  <hp@redhat.com>
2374
2375         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2376         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2377
2378 2005-07-30  Havoc Pennington  <hp@redhat.com>
2379
2380         * fix a bunch of Doxygen warnings and mistakes
2381
2382 2005-07-30  Havoc Pennington  <hp@redhat.com>
2383
2384         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2385         DBUS_BUILD_TESTS since it's now used in production code
2386
2387 2005-07-29  Havoc Pennington  <hp@redhat.com>
2388
2389         * test/glib/test-profile.c (write_junk): initialize the junk
2390         buffer so valgrind doesn't have a breakdown
2391
2392 2005-07-29  Havoc Pennington  <hp@redhat.com>
2393
2394         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2395         (match_rule_matches): remove unused arg
2396         (test_matching): add tests for match_rule_matches()
2397
2398         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2399         do arg0='foo' arg5='bar' in the match rules
2400         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2401
2402         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2403
2404 2005-07-29  Ross Burton  <ross@openedhand.com>
2405
2406         * dbus/dbus-connection.c:
2407         Don't create a DBusCondVar which is never used.
2408
2409 2005-07-27  Ross Burton  <ross@openedhand.com>
2410
2411         * dbus/dbus-message.c:
2412         Reduce the size of the maximum cached message to 10K.
2413
2414 2005-07-25  Ross Burton  <ross@openedhand.com>
2415
2416         * glib/dbus-gproxy.c:
2417         Remove matches when all proxies are unregistered.
2418
2419 2005-07-24  Colin Walters  <walters@verbum.org>
2420
2421         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2422         typedata; recursive arrays won't have it.
2423
2424         * test/glib/test-dbus-glib.c:
2425         * test/glib/test-service-glib.c:
2426         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2427         
2428 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2429
2430         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2431         proxies.py, service.py: Cleanup of code after running it through the
2432         pyflakes code checker mostly dealing with undefined names.  
2433         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2434
2435 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2436
2437         * NEWS: Update to 0.35.2
2438
2439 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2440
2441         * python/_dbus.py: Remove import of the dbus.services
2442         module as it no longer exists (patch from Dimitur Kirov)
2443
2444         * python/service.py (Object::__init__): Fixed typo
2445         s/name/bus_name (patch from Dimitur Kirov)
2446
2447         * python/examples/example-signal-emitter.py: import dbus.glib
2448         to get the main loop and use glib mainloop instead of gtk so
2449         X doesn't have to be running.
2450
2451         * python/examples/example-signal-recipient.py: import dbus.glib
2452         to get the main loop and use glib mainloop instead of gtk so
2453         X doesn't have to be running. Import the decorators module
2454         directly.
2455
2456         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2457         didn't pick up on but are needed to build
2458
2459         * configure.in: upped version to 0.35.2
2460
2461         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2462         added Colin Walters' SELinux API rename patch from head 
2463         s/unix sercurity context/selinux security context/
2464
2465 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2466
2467         * python/Makefile.am: dbus_binding.pxd.in should be included 
2468         in EXTRA_DIST not dbus_binding.pxd
2469         fix up $(srcdir) hopefully for the last time
2470
2471         * NEWS: Update to 0.35.1
2472
2473 2005-07-16  Colin Walters  <walters@verbum.org>
2474
2475         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2476         from bus_driver_handle_get_connection_unix_security_context.  Update for
2477         error usage.
2478         (message_handlers): Update for renames.
2479
2480         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2481         _dbus_string_init failure correctly.
2482         (bus_selinux_append_context): Convert SID to context.  Append it
2483         as a byte array.
2484         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2485         hasn't been called.
2486
2487         * bus/selinux.h: Update prototype.
2488
2489         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2490         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2491
2492 2005-07-15  Colin Walters  <walters@verbum.org>
2493
2494         * doc/TODO: Add note about convenience wrappers.
2495
2496 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2497
2498         * NEWS: Update to 0.35
2499
2500 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2501
2502         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2503         so distcheck doesn't fail
2504
2505         * glib/examples/Makefile.am: Add example-service.xml and 
2506         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2507
2508         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2509         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2510
2511         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2512         compiler looks in the right places during distcheck
2513
2514 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2515
2516         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2517         to fail
2518
2519 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * python/examples/example-service.py,
2522         python/examples/example-signal-emitter.py: Fixed up examples
2523         for API changes
2524
2525 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2526
2527         * python/__init__.py: Upped to version (0,42,0) because of
2528         the API change
2529
2530 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * ChangeLog: fix date in last entry
2533
2534         * configure.in, bus/system.conf.in: add the ability to configure 
2535         the system bus user at compiletime with the --with-dbus-user flag
2536         (patch from Kristof Vansant)
2537
2538 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2539
2540         * bus/dispatch.c, test/test-service.c: Add testcase
2541         for sending messages to oneself (TODO item).
2542
2543         * python/service.py (class Object): Swap ordering of bus_name 
2544         and object_path parameters to better support inheritance.
2545
2546         * doc/dbus-tutorial.xml: change Python docs to reflect change
2547         in parameter ordering and fix the inheritance section.
2548
2549         * doc/TODO: remove sending message to oneself TODO item
2550
2551 2005-07-15  Ross Burton  <ross@openedhand.com>
2552
2553         * glib/dbus-gproxy.c:
2554         Fix a leak when calling methods via the proxy.
2555
2556 2005-07-15  Colin Walters  <walters@verbum.org>
2557
2558         * bus/selinux.c (bus_selinux_append_context): Wrap in
2559         HAVE_SELINUX.
2560
2561 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2562
2563         * python/_dbus.py (Bus::remove_signal_receiver):
2564         don't add a callback to the match if none has been passed in
2565         
2566         * python/matchrules.py (SignalMatchTree::remove): if the rule
2567         being matched does not have a callback treat it as a wildcard
2568         fix matching logic
2569
2570         * doc/dbus-tutorial.xml: Add Python tutorial
2571
2572 2005-07-14  Colin Walters  <walters@verbum.org>
2573
2574         * bus/driver.c
2575         (bus_driver_handle_get_connection_unix_security_context): New function.
2576         (message_handlers): Add.
2577
2578         * bus/selinux.c (bus_selinux_append_context): New function; appends
2579         security context to message.
2580
2581         * bus/selinux.h: Prototype.
2582
2583         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2584
2585 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2586
2587         * bus/activation.c: clean up all tabs to be 8 spaces 
2588         (bus_activation_activate_service): make sure we clean up
2589         if activation fails
2590
2591         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2592         (check_shell_fail_service_auto_start): New function
2593         tests to make sure we get fail properly when trying to auto start a service
2594         with a faulty command line
2595         (check_shell_service_success_auto_start): New function tests to make sure
2596         auto started services get the arguments on the command line
2597
2598         * test/test-shell-service.c: Added service for testing auto-starting with 
2599         command line arguments
2600
2601         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2602         test/data/valid-service-files/debug-shell-echo-success.service.in:
2603         Added service files for testing auto-starting with command line arguments
2604
2605         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2606
2607 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2608
2609         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2610         
2611         * dbus/Makefile.am: added new files to build.
2612
2613         * bus/activation.c (bus_activation_activate_service): support
2614         activation commands with parameters.
2615
2616         * test/shell-test.c: added test program for the shell parsing
2617         code.
2618
2619 2005-07-13  David Zeuthen  <davidz@redhat.com>
2620
2621         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2622         64 bit signed and unsigned parameters
2623
2624 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2625
2626         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2627
2628         * python/service.py (class Name): renamed BusName to make it clearer
2629         what the object is for (a name on the bus)
2630
2631         * python/examples/example-service.py,
2632         python/examples/example-signal-emitter.py: change the Name object to
2633         BusName
2634
2635 2005-07-12  Colin Walters  <walters@verbum.org>
2636
2637         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2638
2639         * tools/dbus-launch.c: Include sys/select.h.
2640
2641 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2642         * python/dbus_bindings.pyx.in: removed
2643
2644         * python/dbus_bindings.pyx: Added.
2645         - Fixed some memleaks (patch from 
2646         Sean Meiners <sean.meiners@linspireinc.com>)
2647         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2648         own pxd file (Pyrex definition)
2649         - Broke out glib dependancies into its own pyx module
2650         
2651         * python/dbus_bindings.pdx: Added.
2652         - Defines C class Connection for exporting to other modules
2653
2654         * python/dbus_glib_bindings.pyx: Added.
2655         - New module to handle lowlevel dbus-glib mainloop integration
2656
2657         * python/glib.py: Added.
2658         - Registers the glib mainloop when you import this module
2659
2660         * python/services.py: Removed (renamed to service.py)
2661         
2662         * python/service.py: Added.
2663         - (class Server): renamed Name
2664
2665         * python/__init__.py: Bump ro version (0,41,0)
2666         -don't import the decorators or service module
2667         by default.  These now reside in the dbus.service namespace
2668
2669         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2670         setup function on creation 
2671
2672         * python/examples/example-service.py,
2673         python/examples/example-signal-emitter.py: update examples
2674
2675         * python/examples/gconf-proxy-service.py,
2676         python/examples/gconf-proxy-service2.py: TODO fix these up
2677
2678         * doc/TODO: Addition
2679         - Added a Python Bindings 1.0 section
2680         - added "Add match on args or match on details to match rules"
2681
2682
2683 2005-07-12  Colin Walters  <walters@verbum.org>
2684
2685         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2686         (statemachine-glue.h): 
2687         * glib/examples/Makefile.am (example-service-glue.h) 
2688         (example-signal-emitter-glue.h): 
2689         * glib/Makefile.am (dbus-glib-error-switch.h): 
2690         Add libtool --mode=execute so we use the built library instead
2691         of any installed one.
2692
2693 2005-07-11  Colin Walters  <walters@verbum.org>
2694
2695         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2696         (dbus_g_value_types_init): Remove assertion.
2697         (dbus_g_value_get_g_type, dbus_g_value_open)
2698         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2699         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2700         functions related to DBusGValue.  Now we marshal/demarshal
2701         structures as GValueArray.
2702         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2703         structures.
2704         (signature_iter_to_g_type_array): Don't call
2705         signature_iter_to_g_type_struct.
2706         (signature_iter_to_g_type_struct): Delete.
2707         (dbus_gvalue_to_signature): Delete.
2708         (dbus_gvalue_to_signature): New function with same name as other
2709         one; we can convert structures to signatures.
2710         (demarshal_valuearray): New function.
2711         (get_type_demarshaller): Use it.
2712         (demarshal_recurse): Delete.
2713         (marshal_proxy): New function.
2714         (marshal_map): Warn if we can't determine signature from type.
2715         (marshal_collection_ptrarray): Ditto.
2716         (marshal_collection_array): Ditto.
2717         (get_type_marshaller): Use marshal_valuearray.
2718         (marshal_recurse): Delete.
2719         (_dbus_gvalue_test): Add some tests.
2720
2721         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2722         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2723         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2724         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2725         (dbus_g_value_free): Remove prototypes.
2726
2727         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2728         G_TYPE_VALUE_ARRAY.
2729
2730         * glib/examples/example-service.c:
2731         * glib/examples/example-client.c: Implement GetTuple.
2732
2733         * test/glib/test-dbus-glib.c:
2734         * test/glib/test-service-glib.c:
2735         * test/glib/test-service-glib.xml: Add structure tests.
2736
2737 2005-07-10  Colin Walters  <walters@verbum.org>
2738
2739         * doc/TODO: Knock off some GLib items with this patch.
2740
2741         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2742         (_dbus_gvalue_signals_error): New functions.
2743
2744         * glib/dbus-gvalue-utils.h: Prototype them.
2745
2746         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2747         and change to not output const/retval flags for input args.  All
2748         callers updated.
2749         (invoke_object_method): Refactor to handle return values.  Add
2750         some more comments in various places.  Remove debug g_print.
2751
2752         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2753
2754         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2755         Handle G_TYPE_NONE.
2756         (compute_gsignature): New function; refactored from code from
2757         compute_marshaller and compute_marshaller_name.  Enhance to
2758         handle return values and async ops more cleanly.  Update for
2759         async ops returning NONE instead of BOOLEAN.
2760         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2761         and output appropriate string.
2762         (generate_glue): Handle return value annotation.  Also don't dump
2763         constness flag for input arguments.
2764
2765         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2766         files shared between installed library and utilities.
2767         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2768         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2769         binding tool can access gtype utility functions.
2770
2771         * test/glib/test-service-glib.c: 
2772         * test/glib/test-service-glib.xml: 
2773         * test/glib/test-dbus-glib.c: Add some tests for return values.
2774
2775 2005-07-09  Colin Walters  <walters@verbum.org>
2776
2777         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2778         argument if available, not method.
2779
2780         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2781         (invoke_object_method): First, remove some redundant
2782         GValues (object_value, error_value) in favor of working on
2783         array directly.  Second, rework constness to be less buggy.
2784         Now we iterate directly over the argument metadata instead
2785         of parallel iterating over output signature and metadata.
2786
2787         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2788
2789         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2790         annotation on input args.
2791         
2792 2005-07-09  Colin Walters  <walters@verbum.org>
2793
2794         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2795         Define.
2796
2797         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2798         annotation.
2799
2800         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2801         (method_dir_signature_from_object_info): Handle arg_iterate change.
2802         (write_interface): Ditto.
2803         (lookup_object_info): Don't barf if format_version is > 0.
2804         (invoke_object_method): Handle arg constness.
2805
2806         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2807         (arg_info_new): Create.
2808         (arg_info_unref): Destroy.
2809         (arg_info_get_annotations, arg_info_get_annotation) 
2810         (arg_info_add_annotation): New functions.
2811
2812         * glib/dbus-gidl.h: Prototype them.
2813
2814         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2815         args, disallow them in properties.
2816         (parse_annotation): Handle arg annotations.
2817
2818         * test/glib/test-service-glib.xml: 
2819         * test/glib/test-service-glib.c: Update to make some methods
2820         const.
2821
2822 2005-07-08  Colin Walters  <walters@verbum.org>
2823
2824         * test/glib/test-service-glib.xml: 
2825         * test/glib/test-service-glib.c:
2826         * test/glib/test-dbus-glib.c: Test a{sv}.
2827
2828         * glib/examples/statemachine/statemachine.c:
2829         * glib/examples/statemachine/statemachine-server.c:
2830         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2831         add progress bar, etc.
2832
2833         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2834         needed anymore due to generic array/map marshalling.
2835         (dbus_g_value_types_init): Don't register basic arrays or the
2836         string/string hash.
2837         (dbus_gtype_from_signature_iter): Don't try to recurse into
2838         variants.
2839         (dbus_gtype_to_signature): Check collection/map before type
2840         metadata.
2841         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2842         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2843         generic map creation/append functions instead of hash table
2844         specifically.
2845         (get_type_demarshaller): Handle maps.
2846         (demarshal_collection): Dispatch on collection type to either
2847         demarshal_collection_ptrarray or demarshal_collection_array.
2848         (get_type_marshaller): Handle maps.
2849         (marshal_collection): Dispatch collection type to either
2850         marshal_collection_ptrarray or marshal_collection_array.
2851         (_dbus_gvalue_test): New test.
2852
2853         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2854         (hash_free_from_gtype): Use it to free GValues.
2855         (hashtable_append): New function.
2856         (ptrarray_append): Fix prototype.
2857         (slist_append): Ditto.
2858         (_dbus_gvalue_utils_test): Extend tests.
2859
2860         * glib/dbus-gtype-specialized.c
2861         (dbus_g_type_specialized_init_append): Renamed from
2862         dbus_g_type_specialized_collection_init_append.  Remove const from
2863         value, since we steal it.
2864         (dbus_g_type_specialized_map_append): New function.
2865
2866         * glib/dbus-gtype-specialized.h: Update prototypes.
2867         Add DBusGTypeSpecializedMapAppendFunc.
2868
2869         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2870         _dbus_gvalue_test.
2871         
2872         * glib/dbus-gtest.h: Prototype it.
2873
2874 2005-07-08  Ross Burton  <ross@openedhand.com>
2875
2876         * dbus/dbus-glib.h:
2877         Add DBysGAsyncData for the async bindings.
2878
2879         * glib/dbus-binding-tool-glib.c:
2880         Re-enable the async bindings.
2881
2882         * test/glib/test-dbus-glib.c:
2883         Add a test for the generated async bindings.
2884
2885 2005-07-08  Colin Walters  <walters@verbum.org>
2886
2887         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2888         connection concept.
2889         
2890 2005-07-08  Colin Walters  <walters@verbum.org>
2891         
2892         * tools/Makefile.am: Kill of print-introspect in favor of using
2893         dbus-send --print-reply=literal.
2894
2895         * test/glib/test-service-glib.xml: 
2896         * test/glib/test-service-glib.c (my_object_get_objs): New test
2897         for "ao".
2898
2899         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2900         (main): Test GetObjs.
2901
2902         * glib/examples/statemachine/Makefile.am:
2903         * glib/examples/statemachine/sm-marshal.list:
2904         * glib/examples/statemachine/statemachine-client.c:
2905         * glib/examples/statemachine/statemachine-server.c:
2906         * glib/examples/statemachine/statemachine-server.xml:
2907         * glib/examples/statemachine/statemachine.c:
2908         * glib/examples/statemachine/statemachine.h:
2909         * glib/examples/statemachine/statemachine.xml:
2910
2911         New example.
2912
2913         * glib/examples/example-service.c (main): Move invocation
2914         of dbus_g_object_type_install_info earlier, to emphasize it
2915         should only be done once.
2916
2917         * glib/examples/example-signal-emitter.c (main): Ditto.
2918
2919         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2920
2921         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2922         (dbus_gvalue_marshal): Update prototypes.
2923
2924         * glib/dbus-gvalue.c: Update all marshalling functions to take
2925         const GValue instead of GValue.
2926         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2927         types.
2928         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2929         change.
2930         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2931         Return a newly-allocated string.
2932         (demarshal_proxy, demarshal_object_path, demarshal_object)
2933         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2934         we get the wrong types from message.
2935         (get_type_demarshaller): New function, extracted from
2936         dbus_gvalue_demarshal.
2937         (demarshal_collection): New function, demarshals generic
2938         collection.
2939         (dbus_gvalue_demarshal): Just invoke result of
2940         get_type_demarshaller.  Throw error if we don't have one.
2941         (marshal_garray_basic): Abort on OOM.
2942         (get_type_marshaller): New function, extracted from
2943         dbus_gvalue_marshal.
2944         (collection_marshal_iterator, marshal_collection): New functions;
2945         implements generic marshalling for an iteratable specialized
2946         collection.
2947         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2948
2949         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2950         G_TYPE_STRING.
2951         (ptrarray_value_from_gvalue): Ditto.
2952         (ptrarray_append, ptrarray_free): New functions.
2953         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2954         (slist_append, slist_end_append, slist_free): New functions.
2955         (dbus_g_type_specialized_builtins_init): Add append fuctions
2956         for GPtrArray and GSList.  Register GSList.
2957         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2958
2959         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2960         New.
2961         (dbus_g_type_specialized_collection_init_append)
2962         (dbus_g_type_specialized_collection_append)
2963         (dbus_g_type_specialized_collection_end_append): Prototype.
2964         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2965         end_append_func.
2966
2967         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2968         (dbus_g_type_specialized_collection_append) 
2969         (dbus_g_type_specialized_collection_end_append): New functions.
2970         (dbus_g_type_map_value_iterate): Take const GValue.
2971         (dbus_g_type_collection_value_iterate): Ditto.
2972
2973         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2974         _dbus_gvalue_utils_test.
2975         
2976         * glib/dbus-gtest.h: Prototype it.
2977
2978         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
2979         using uninitialized owner_list.
2980         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
2981         public API.
2982         (dbus_g_proxy_end_call_internal): Update to use error set
2983         from dbus_gvalue_demarshal instead of setting it here.
2984         (dbus_g_proxy_begin_call): Move return_if_fail here.
2985
2986         * glib/dbus-gobject.c (write_interface): Update for
2987         dbus_gtype_to_signature returning new string.
2988
2989         * configure.in: Add glib/examples/statemachine.
2990
2991 2005-07-08  Joe Shaw  <joeshaw@novell.com>
2992
2993         * configure.in: Add a configure option, --with-console-auth-dir
2994         
2995         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
2996         new setting.  Patch from Kay Sievers.
2997
2998 2005-07-06  Colin Walters  <walters@verbum.org>
2999
3000         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3001         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3002         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3003         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3004         Delete in favor of dbus_g_proxy_begin_call and
3005         dbus_g_proxy_cancel_call.
3006         (DBusGProxyCall, DBusGProxyCallNotify): New.
3007         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3008         data, and destroy function.  This replaces
3009         dbus_g_pending_call_set_notify.
3010         (dbus_g_proxy_cancel_call): Prototype.
3011         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3012
3013         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3014         pending_calls map.
3015         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3016         internal proxy for calls to the bus. Remove
3017         pending_nameowner_calls, now the internal proxy keeps track.
3018         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3019         pending_nameowner_calls.
3020         (got_name_owner_cb): Update prototype, and use
3021         dbus_g_proxy_end_call.
3022         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3023         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3024         favor of using internal proxy.
3025         (dbus_g_proxy_manager_unregister): Update to use
3026         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3027         (dbus_g_proxy_init): Initialize pending calls map.
3028         (dbus_g_proxy_constructor): New.
3029         (dbus_g_proxy_class_init): Add get/set property functions,
3030         constructor, and add NAME, PATH, and INTERFACE properties.
3031         (cancel_pending_call): New function.
3032         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3033         cancel them.
3034         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3035         (GPendingNotifyClosure): New structure.
3036         (d_pending_call_notify, d_pending_call_free): Moved here from
3037         dbus-glib.c.
3038         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3039         ordering.
3040         (manager_begin_bus_call): New internal function for talking to
3041         internal bus proxy.
3042         (dbus_g_proxy_new): Construct object using GObjet properties.
3043         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3044         Create closure of same, and insert call into map of pending calls.
3045         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3046         call.  Look up pending call in current set.  Remove it when we've
3047         completed.
3048         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3049         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3050         and destroy function directly.
3051         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3052         (dbus_g_proxy_call): Invoke with NULL callback.
3053         (dbus_g_proxy_cancel_call): New function, replaces
3054         dbus_g_pending_call_cancel.
3055
3056         * glib/dbus-gparser.c (validate_signature): Fix call to
3057         dbus_set_g_error.
3058
3059         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3060         New quark for attaching metadata to GType.
3061         (info_hash): Delete.
3062         (lookup_object_info): Look up using quark.
3063         (dbus_g_object_type_install_info): Check that a type is classed,
3064         not that it's an object.  Also just install type data using quark
3065         instead of using global hash.
3066
3067         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3068         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3069         (GPendingNotifyClosure): Delete.
3070         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3071         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3072
3073         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3074         client method generation until we can fix it...
3075         
3076         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3077         (load_from_service_thread_func): Ditto.
3078
3079         * tools/dbus-names-model.c (struct NamesModel): Hold
3080         DBusGProxyCall.
3081         (have_names_notify): Update prototype, use
3082         dbus_g_proxy_cancel_call.
3083         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3084
3085         * tools/dbus-monitor.c (filter_func): Update for print_message
3086         API change.
3087
3088         * test/glib/test-dbus-glib.c: Add more tests for async
3089         invocations.  Update many begin_call/end_call pairs to just use
3090         dbus_g_proxy_call.
3091
3092         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3093         allows us to dump print-introspect.c.
3094
3095         * tools/dbus-print-message.h (print_message): Add literal argument
3096         to print_message which is intended to allow printing arguments without
3097         metadata like "string=".
3098
3099         * tools/dbus-print-message.c (print_iter): Add literal argument.
3100         (print_message): Allow printing string messages literally.
3101
3102 2005-07-05  Colin Walters  <walters@verbum.org>
3103
3104         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3105         Remove value refcount leak, original patch from Jorn Baayen
3106         <jorn@openedhand.com>.  Also remove useless extra value in favor
3107         of prepending to value array directly.
3108
3109 2005-07-02  Colin Walters  <walters@verbum.org>
3110
3111         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3112
3113 2005-07-01  Colin Walters  <walters@verbum.org>
3114
3115         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3116         
3117         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3118         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3119         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3120         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3121
3122 2005-06-30  Colin Walters  <walters@verbum.org>
3123
3124         * test/glib/test-dbus-glib.c:
3125         * test/glib/test-service-glib.c:
3126         * test/glib/test-service-glib.xml: Update tests for new error
3127         setting bits, also add async tests (patch from Ross Burton).
3128
3129         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3130         DBUS_GLIB_THREADS_LIBS.
3131
3132         * glib/dbus-gproxy.c (get_name_owner)
3133         (dbus_g_pending_call_end_valist): Ditto.
3134
3135         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3136         domain (GQuark) to DBusGErrorInfo.  
3137         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3138         quark in error_metadata.  Take message interface as default
3139         error message interface.
3140         (gerror_to_dbus_error_message): Pass message interface.
3141         (dbus_set_g_error): Resurrected.
3142         (dbus_g_error_info_free): New function.
3143         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3144         of _peek to actually create the object class if it hasn't been
3145         created yet.
3146         (dbus_g_error_domain_register): New function.
3147
3148         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3149
3150         * glib/dbus-gparser.c (validate_signature): Ditto.
3151
3152         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3153         (dbus_g_error_domain_register): Prototype.
3154
3155         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3156         Update tests.
3157
3158 2005-06-29  Colin Walters  <walters@verbum.org>
3159
3160         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3161         DBUS_TYPE_G_OBJECT_PATH.
3162
3163         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3164         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3165         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3166         (dbus_g_object_path_get_g_type): New function.
3167         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3168         to DBUS_TYPE_G_OBJECT_PATH by default.
3169         (demarshal_proxy): Remove unused name variable.
3170         (demarshal_object_path, marshal_object_path): New functions.
3171         (demarshal_proxy_array, marshal_proxy_array): Delete.
3172         
3173         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3174         DBUS_TYPE_G_OBJECT_PATH to char *.
3175         (dbus_g_type_get_lookup_function): Map builtin
3176         DBUS_TYPE_G_OBJECT_PATH.
3177
3178         * test/glib/test-dbus-glib.c
3179         * test/glib/test-service-glib.c (my_object_objpath): 
3180         Adapt tests to new object path marshalling.
3181
3182 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3183
3184         * configure.in: force check for Python >= 2.4
3185
3186 2005-06-29  Colin Walters  <walters@verbum.org>
3187         
3188         Patch from Ross Burton <ross@openedhand.com>
3189         
3190         * glib/dbus-gobject.c (invoke_object_method): Unset object
3191         value in all cases, not only in async case.
3192
3193 2005-06-29  Colin Walters  <walters@verbum.org>
3194
3195         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3196         name_call for keeping track of any outgoing GetNameOwner call.
3197         Also add for_owner and associated.
3198         (struct _DBusGProxyManager): Add owner_names, which is hash table
3199         that maps a base name to a list of names it owns (that we're
3200         interested in).  Add pending_nameowner_calls which is a list of
3201         all outstanding GetNameOwner; avoids us having to iterate over
3202         every proxy.  Add unassociated_proxies which keeps track of name
3203         proxies with no associated name owner.
3204         (dbus_g_proxy_manager_unref): Destroy owner_names.
3205         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3206         name refcounts.
3207         (find_name_in_info, name_owner_foreach)
3208         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3209         (dbus_g_proxy_manager_monitor_name_owner)
3210         (dbus_g_proxy_manager_unmonitor_name_owner)
3211         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3212         New functions; they manipulate the owner_names mapping.
3213         (got_name_owner_cb): New function.
3214         (get_name_owner): New function, extracted from
3215         dbus_g_proxy_new_for_name_owner.
3216         (dbus_g_proxy_manager_register): For now we need to keep track of
3217         all NameOwnerChanged.  Also if the proxy is for a name, if we
3218         don't already know the name owner, queue a new GetNameOwner
3219         request and add it to our list of unassociated proxies.  Otherwise
3220         inc the refcount.
3221         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3222         cancel any pending GetNameOwner call, etc.
3223         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3224         the owner_names mapping to look up the current names for the
3225         signal source, and dispatch to any proxies for that name.
3226         (dbus_g_proxy_new): Initialize new members.
3227         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3228         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3229         (dbus_g_pending_call_end_valist): New function, extracted from
3230         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3231         but want to use the GLib infrastructure.  Also note how many
3232         arguments in reply were over.
3233         (dbus_g_pending_call_end): New function, just call
3234         dbus_g_pending_call_end_valist.
3235         (dbus_g_proxy_end_call_internal): Just call
3236         dbus_g_pending_call_end_valist.
3237
3238         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3239         of builtin marshaller for STRING_STRING_STRING.
3240
3241         * test/glib/test-dbus-glib.c: 
3242         * test/glib/test-service-glib.c:
3243         * test/glib/test-service-glib.xml:
3244         Extend tests to cover name proxies, destruction of owner proxies,
3245         etc.
3246         
3247         * glib/examples/example-signal-recipient.c
3248         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3249         
3250         * tools/dbus-send.c (main): Print D-BUS error name in addition
3251         to message.
3252
3253 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3254
3255         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3256         cmessage_function_handler): Patch from 
3257         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3258         by using the Py_GILState_Ensure/Release to synchronize with the
3259         python runtime.
3260         
3261 2005-06-28  Ray Strode  <rstrode@redhat.com>
3262
3263         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3264         babysitter helper process on last unref, bug #2813.
3265
3266 2005-06-27  Colin Walters  <walters@verbum.org>
3267
3268         * test/glib/test-dbus-glib.c: 
3269         * test/glib/test-service-glib.c:
3270         * test/glib/test-service-glib.xml:
3271         Test hash table signal emitting.
3272
3273         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3274         types to their fundamental basis types, since this is what
3275         marshallers operate on.  Also add an entry for VOID__BOXED.
3276         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3277
3278 2005-06-26  Havoc Pennington  <hp@redhat.com>
3279
3280         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3281         from Don Park
3282
3283 2005-06-26  Colin Walters  <walters@verbum.org>
3284
3285         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3286         (dbus_g_error_set): New public function from its ashes; used by
3287         both service-side method implementation and GLib bindings
3288         internals.
3289         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3290         (_dbus_glib_test): Add some tests.
3291
3292         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3293
3294         * test/glib/test-service-glib.c (my_object_throw_error): Use
3295         dbus_g_error_set.
3296
3297         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3298         errors thrown by dbus_g_error_set.
3299
3300         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3301
3302         * glib/dbus-gparser.c (validate_signature): Ditto.
3303
3304         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3305         (dbus_g_proxy_end_call_internal): Ditto.
3306
3307         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3308         converts DBUS_ERROR_x to DBUS_GERROR_x.
3309         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3310
3311         * doc/TODO: Remove error TODO.
3312
3313         * doc/dbus-tutorial.xml: Update with documentation about error
3314         handling.
3315
3316         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3317         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3318         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3319
3320 2005-06-22  Colin Walters  <walters@verbum.org>
3321         
3322         Patch from Ross Burton <ross@openedhand.com>
3323
3324         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3325
3326 2005-06-20  Colin Walters  <walters@verbum.org>
3327
3328         * configure.in: Add glib/examples.
3329
3330         * glib/Makefile.am: Add examples/
3331
3332         * glib/examples/.cvsignore
3333         * glib/examples/Makefile.am
3334         * glib/examples/example-client.c
3335         * glib/examples/example-service.c
3336         * glib/examples/example-service.xml
3337         * glib/examples/example-signal-emitter.c
3338         * glib/examples/example-signal-emitter.xml
3339         * glib/examples/example-signal-recipient.c:
3340         New files; GLib binding examples, ported from
3341         python/examples.
3342
3343 2005-06-20  Colin Walters  <walters@verbum.org>
3344
3345         * dbus/dbus-glib.h: 
3346         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3347         dbus_g_proxy_call.
3348
3349         * glib/dbus-binding-tool-glib.c: 
3350         * doc/dbus-tutorial.xml: 
3351         * test/glib/test-dbus-glib.c: Update for rename.
3352         
3353 2005-06-20  Colin Walters  <walters@verbum.org>
3354
3355         Patch suggested by Ross Burton <ross@openedhand.com>
3356
3357         * glib/dbus-gobject.c (export_signals): Free signal name.
3358         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3359         memory leak.  Add a bit of documentation.
3360         (dbus_g_method_return_error): Free context, and note we do
3361         so.
3362
3363 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3364
3365         * dbus/dbus-glib.h:
3366         * glib/dbus-gobject.c:
3367         * glib/dbus-gproxy.c:
3368         * glib/dbus-gvalue.c: Predeclare structs as 
3369         typedef struct _Something Something instead of 
3370         typedef struct Something Something, so we can 
3371         redeclare the prototypes. Other GNOME libraries 
3372         do this already.
3373
3374 2005-06-17  Colin Walters  <walters@verbum.org>
3375
3376         * tools/dbus-names-model.c (have_names_notify): Fix call
3377         to dbus_g_proxy_end_call.
3378         
3379 2005-06-17  Colin Walters  <walters@verbum.org>
3380
3381         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3382         spew warnings if we get malformed remote signals.
3383
3384         * glib/dbus-gobject.c (propsig_iterate): New function.
3385         (lookup_object_info): New function, extracted from
3386         lookup_object_and_method.
3387         (introspect_properties, introspect_signals): Delete; these
3388         are merged into write_interface.
3389         (write_interface): Write out signals and properties here;
3390         dump the org.gtk.object stuff and use the interface given
3391         in the introspection data blob.  Also fix up property XML.
3392         (lookup_values): New function.
3393         (introspect_interfaces): Gather a mapping from interface to a
3394         list of its methods, signals, and properties, then write out
3395         each interface.
3396         (lookup_object_and_method): Use lookup_object_info.
3397         (struct DBusGSignalClosure): Add interface.
3398         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3399         we can just use the constant data.
3400         (dbus_g_signal_closure_finalize): Don't free signal name.
3401         (signal_emitter_marshaller): Use interface from signal closure.
3402         (export_signals): Only export signals mentioned in introspection
3403         blob.
3404         (dbus_g_connection_register_g_object): Warn if we have no
3405         introspection data for an object.
3406         (funcsig_equal): Remove unused variable.
3407         (dbus_g_object_register_marshaller): Take varargs instead of
3408         list.
3409         (dbus_g_object_register_marshaller_array): New function,
3410         extracted from old dbus_g_object_register_marshaller.
3411
3412         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3413         signals and property data.
3414         (write_quoted_string): New function, extracted from generate_glue.
3415         (generate_glue): Write signals and properties to introspection
3416         blob.
3417
3418         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3419         exported_signals and exported_properties.
3420         (dbus_g_object_register_marshaller): Update prototype.
3421         (dbus_g_object_register_marshaller_array): Prototype.
3422         
3423         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3424
3425         * test/glib/test-service-glib.c: Add new test signals and method
3426         to emit them.
3427
3428         * test/glib/test-service-glib.xml: Add some test signals.
3429
3430         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3431         and my-object-marshal.h
3432         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3433         my-object-marshal.c.
3434         (my-object-marshal.c, my-object-marshal.h): Implement.
3435
3436         * test/glib/.cvsignore: Update.
3437
3438         * doc/TODO: Remove two GLib TODO items fixed by this
3439         patch.
3440
3441 2005-06-16  Colin Walters  <walters@verbum.org>
3442
3443         * doc/TODO: Update for GLib bindings.
3444         
3445 2005-06-16  Colin Walters  <walters@verbum.org>
3446
3447         * glib/dbus-binding-tool-glib.c:
3448         * glib/dbus-gobject.c:
3449         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3450         from Ross Burton, for his GLib bindings work.
3451
3452 2005-06-16  Colin Walters  <walters@verbum.org>
3453
3454         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3455         to iterate instead of walking to G_TYPE_INVALID.
3456
3457         Patch based on a patch from Ryan Gammon.
3458
3459 2005-06-16  Colin Walters  <walters@verbum.org>
3460
3461         * bus/bus.c (bus_context_new): Set parser to NULL
3462         after we unref it (Patch from Chris Boscolo, #2174).
3463         
3464 2005-06-16  Colin Walters  <walters@verbum.org>
3465
3466         * python/dbus_bindings.pyx.in: Import size_t,
3467         __int64_t, __uint64_t, and __signed.
3468
3469         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3470         Define cmsg struct, output it.
3471         (_dbus_read_credentials_unix_socket):
3472         Use cmsg struct.
3473         
3474         Patch from Joe Markus Clarke for FreeBSD support.
3475         
3476 2005-06-16  Colin Walters  <walters@verbum.org>
3477
3478         * tools/dbus-send.c (append_array): Use strtok.
3479         (append_dict): New function.
3480         (type_from_name): New function, extracted from main.
3481         (main): Handle sending dicts.
3482
3483         * tools/dbus-print-message.c (print_iter): Print dict
3484         entries.
3485         
3486 2005-06-16  Colin Walters  <walters@verbum.org>
3487
3488         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3489         values as the empty string (#2948).
3490         
3491 2005-06-16  Colin Walters  <walters@verbum.org>
3492
3493         * dbus/Makefile.am:
3494         * mono/doc/Makefile.am:
3495         * test/glib/Makefile.am:
3496
3497         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3498
3499 2005-06-16  Colin Walters  <walters@verbum.org>
3500
3501         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3502         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3503
3504         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3505         Increment pointer after swapping fixed array.  Add assertion
3506         for array length.
3507                 
3508 2005-06-15  Colin Walters  <walters@verbum.org>
3509
3510         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3511         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3512         
3513 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3514
3515         * NEWS: Update to 0.34
3516
3517 2005-06-15  David Zeuthen  <davidz@redhat.com>
3518
3519         * configure.in (LT_CURRENT): Revert back to 1 as the library
3520         hasn't changed and we've certainly not committed to protocol
3521         stability yet.  All this does is to break ABI. See commit note
3522         from hp@redhat.com 2005-05-05 for details.
3523         
3524 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3525
3526         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3527         (_dbus_connection_run_builtin_filters): New method
3528         (dbus_connection_dispatch): Run the builtin filters which in turn
3529         runs the peer filter which handles Ping messages.
3530
3531         * doc/TODO: 
3532          - Ping isn't handled: This patch fixes it
3533          
3534          - Add a test case for the Ping message: added TODO item
3535
3536 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * dbus/dbus-message.c:
3539         (dbus_message_has_path): New method
3540         (dbus_message_has_interface): New method
3541         (dbus_message_has_member): New method
3542
3543         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3544         New method
3545
3546         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3547         the keyring directory is private to the user
3548
3549         * doc/TODO:
3550          - The convenience functions in dbus-bus.h should perhaps have
3551          the signatures that they would have if they were autogenerated
3552          stubs. e.g. the acquire service function. We should also evaluate
3553          which of these functions to include, in light of the fact that
3554          GLib/Qt native stubs will probably also exist.: Punted
3555
3556          - add dbus_message_has_path(), maybe has_member/interface:
3557          fixed in this patch
3558
3559          - in dbus-keyring.c, enforce that the keyring dir is not
3560          world readable/writable: Fixed in this patch
3561
3562 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3563
3564         * dbus/dbus-marshal-validate.h: Added a new validation
3565         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3566         out of memory errors when validating signitures
3567
3568         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3569         in places where we previously used DBUS_VALID and a FALSE return 
3570         value to indicate OOM
3571         
3572         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3573         Use a stack to track the number of elements inside containers.  The 
3574         stack values are then used to validate that dict entries have only two
3575         elements within them.
3576         (validate_body_helper): check the reason for failure when validating
3577         varients
3578         
3579         * dbus/dbus-message.c (load_message): use 
3580         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3581         DBUS_VALID and a FALSE return value to indicate OOM
3582
3583         * doc/TODO: remove "- validate dict entry number of fields" as this
3584         patch fixes it
3585
3586 2005-06-14  David Zeuthen  <davidz@redhat.com>
3587
3588         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3589         watches (if applicable) and add new watches
3590
3591         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3592         (main): Setup SIGIO signal handler if using D_NOTIFY
3593
3594         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3595
3596         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3597         (merge_included): Also merge conf_dirs list
3598         (bus_config_parser_unref): Clear conf_dirs list
3599         (include_dir): Add directory to conf_dirs list
3600         (bus_config_parser_get_conf_dirs): New function
3601
3602         * bus/dir-watch.[ch]: New files
3603
3604         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3605
3606         * configure.in: Add checks for D_NOTIFY on Linux
3607
3608 2005-06-14  Colin Walters  <walters@verbum.org>
3609
3610         * glib/dbus-binding-tool-glib.c:
3611         * glib/dbus-gobject.c:
3612         * glib/dbus-gvalue.c: Fix indentation and brace style.
3613         
3614 2005-06-14  Ross Burton <ross@openedhand.com>.
3615
3616         * glib/dbus-glib.h: Make DBusGMethodInvocation
3617         a private structure.  Rearrange prototypes a bit.
3618         
3619         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3620         documentation for first_arg_type.
3621         
3622         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3623         here, add documentation.  Move dbus_g_method_return
3624         and dbus_g_method_return_error into public API
3625         section.
3626
3627 2005-06-14  Colin Walters  <walters@verbum.org>
3628
3629         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3630         Add missing return statements, noticed by Ross Burton.
3631         
3632 2005-06-13  Ross Burton <ross@openedhand.com>.
3633
3634         * glib/dbus-gobject.c: Handle errors on message
3635         demarshalling by sending error message back.
3636         * glib/dbus-gvalue.c: Initialize return variables.
3637
3638 2005-06-13  Colin Walters  <walters@verbum.org>
3639
3640         * glib/Makefile.am: Fix thinko in last patch.
3641
3642 2005-06-13  Colin Walters  <walters@verbum.org>
3643
3644         * glib/Makefile.am: Move dbus-gtype-specialized.c
3645         and dbus-gtype-specialized.h into a _HEADERS variable,
3646         install them.
3647
3648 2005-06-12  Colin Walters  <walters@verbum.org>
3649
3650         Async signals and various bugfixes and testing by
3651         Ross Burton <ross@openedhand.com>.
3652
3653         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3654         (dbus_gvalue_genmarshal_name_from_type)
3655         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3656         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3657         (dbus_g_value_types_init, dbus_gtype_from_signature)
3658         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3659         (dbus_gtypes_from_arg_signature): New function prototypes.
3660         (dbus_gvalue_demarshal): Take context and error arguments.
3661         (dbus_gvalue_demarshal_variant): New function.
3662         (dbus_gvalue_demarshal_message): New function.
3663         (dbus_gvalue_store): Delete.
3664
3665         * glib/dbus-gvalue.c:
3666
3667         File has been almost entirely rewritten; now we special-case
3668         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3669         hash tables correctly, etc.  Full support for recursive values
3670         is not yet complete.
3671
3672         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3673         argument of signal to G_TYPE_POINTER since we now pass a
3674         structure.
3675         (lookup_g_marshaller): Delete in favor of
3676         _dbus_gobject_lookup_marshaller.
3677         (marshal_dbus_message_to_g_marshaller): Use
3678         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3679         to handle remote signal callbacks.
3680         (dbus_g_proxy_new_from_proxy): New function; creates a new
3681         DBusGProxy by copying an existing one.
3682         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3683         (dbus_g_proxy_get_path): New functions.
3684         (dbus_g_proxy_marshal_args_to_message): New function;
3685         factored out of existing code.
3686         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3687         from a varargs array.
3688         (dbus_g_proxy_begin_call_internal): New function.
3689         (dbus_g_proxy_end_call_internal): New function.
3690         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3691         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3692         after collecting args into value array.
3693         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3694         invoke dbus_g_proxy_end_call_internal.
3695         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3696         end_call_internal.
3697         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3698         types.
3699         (array_free_all): New function.
3700         (dbus_g_proxy_add_signal): Take GTypes.
3701
3702         * glib/dbus-gobject.h:
3703         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3704         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3705         Prototype.
3706
3707         * glib/dbus-gobject.c: Add a global marshal_table hash which
3708         stores mappings from type signatures to marshallers.  Change lots
3709         of invocations of dbus_gtype_to_dbus_type to
3710         dbus_gtype_to_signature.
3711         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3712         (introspect_signals): Fix test for query.return_type.
3713         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3714         (invoke_object_method): Many changes.  Handle asynchronous
3715         invocations.  Convert arguments with
3716         dbus_gvalue_demarshal_message.  Handle errors.  Use
3717         DBusSignatureIter instead of strlen on args. Handle all arguments
3718         generically.  Special-case variants.
3719         (dbus_g_method_return, dbus_g_method_return_error): New function.
3720         (DBusGSignalClosure): New structure, closes over signal
3721         information.
3722         (dbus_g_signal_closure_new): New function.
3723         (dbus_g_signal_closure_finalize): New function.
3724         (signal_emitter_marshaller): New function; is special marshaller
3725         which emits signals on bus.
3726         (export_signals): New function; introspects object signals and
3727         connects to them.
3728         (dbus_g_object_type_install_info): Take GType instead of
3729         GObjectClass.
3730         (dbus_g_connection_register_g_object): Invoke export_signals.
3731         (dbus_g_connection_lookup_g_object): New function.
3732         (DBusGFuncSignature) New structure; used for mapping type
3733         signatures to marshallers.
3734         (funcsig_hash): New function; hashes DBusGFuncSignature.
3735         (funcsig_equal): New function; compares DBusGFuncSignature.
3736         (_dbus_gobject_lookup_marshaller): New function.
3737         (dbus_g_object_register_marshaller): New function; used to
3738         register a marshaller at runtime for a particular signature.
3739
3740         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3741
3742         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3743         which notes a server method implementation should be
3744         asynchronous.
3745
3746         * glib/dbus-binding-tool-glib.c
3747         (dbus_binding_tool_output_glib_server): Call
3748         dbus_g_value_types_init.
3749         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3750         variants specially.
3751         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3752         of a lookup function.
3753         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3754         (write_untyped_out_args): New method; write output arguments.
3755         (write_formal_declarations_for_direction): Function for
3756         writing prototypes.
3757         (write_formal_parameters_for_direction): Function for
3758         writing implementations.
3759         (write_typed_args_for_direction): Function for writing
3760         arguments prefixed with GTypes.
3761         (write_async_method_client): Write out async version
3762         of method.
3763
3764         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3765         (dbus_g_type_get_marshal_name): Move mapping from GType
3766         to marshal name into here.
3767         (dbus_g_type_get_c_name): Move into here.
3768         (compute_marshaller): Convert signature to type with
3769         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3770         (compute_marshaller_name): Ditto.
3771         (compute_marshaller): Handle async signal annotations.
3772         (gather_marshallers): Return if we don't have a known
3773         prefix.
3774         (generate_glue): Collect introspection blob here, and
3775         write all of the blob at the end.  This allows an object
3776         with multiple interfaces to work.
3777         Mark async methods in introspection blob.
3778
3779         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3780         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3781         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3782
3783         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3784         avoids people accidentally using DBUS_TYPE_* which should
3785         not be necessary anymore.
3786         Do include dbus-gtype-specialized.h, which are utilities
3787         for GLib container types.
3788         Add various #defines for types such as
3789         DBUS_TYPE_G_BOOLEAN_ARRAY.
3790         (DBusGValueIterator, DBusGValue): Define, not fully used
3791         yet.
3792         (dbus_g_value_get_g_type): Type for recursive value.
3793         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3794         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3795         (dbus_g_value_free): Prototypes.
3796         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3797         (dbus_g_proxy_set_interface): Prototype.
3798         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3799         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3800         types.
3801         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3802         Accessors.
3803         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3804         doing async invocations.
3805         (dbus_g_method_return, dbus_g_method_return_error):
3806         Prototypes.
3807         * doc/dbus-tutorial.xml: Update GLib section.
3808         
3809         * tools/dbus-viewer.c (load_child_nodes): Update
3810         for new invocation type of dbus_g_proxy_end_call.
3811         (load_from_service_thread_func): Ditto.
3812
3813         * tools/print-introspect.c (main): Ditto.
3814
3815         * tools/dbus-names-model.c (have_names_notify)
3816         (names_model_reload, names_model_set_connection)
3817         Use GTypes.
3818
3819         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3820         needed since Python bindings use GLib bindings.
3821
3822         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3823         Add --prefix argument.
3824
3825         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3826         unneeded --ignore-unsupported arg.
3827         
3828         * test/glib/test-service-glib.c: 
3829         * test/glib/test-service-glib.xml:
3830         * test/glib/test-dbus-glib.c: Add many more tests.
3831
3832 2005-06-06  David Zeuthen  <davidz@redhat.com>
3833
3834         * doc/TODO: Add item about need to remove deprecated functions.
3835
3836         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3837
3838         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3839         to repair the ABI which was broken with the last commit.
3840
3841 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3842
3843         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3844         (dbus_connection_disconnect): renamed to dbus_connection_close 
3845         for API symmetry with dbus_connection_open
3846         (_dbus_connection_open_internal): 
3847         s/dbus_connection_disconnect/dbus_connection_close
3848
3849         * dbus/dbus-bus.c (dbus_bus_get):
3850         s/dbus_connection_disconnect/dbus_connection_close
3851
3852         * bus/connection.c (bus_connections_unref, 
3853         bus_connections_setup_connection, bus_connections_expire_incomplete):
3854         s/dbus_connection_disconnect/dbus_connection_close
3855
3856         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3857         kill_client_connection_unchecked, check_hello_connection):
3858         s/dbus_connection_disconnect/dbus_connection_close
3859
3860         * bus/bus.c (new_connection_callback):
3861         s/dbus_connection_disconnect/dbus_connection_close
3862
3863         * tools/dbus-send.c (main):
3864         s/dbus_connection_disconnect/dbus_connection_close
3865
3866         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3867         s/dbus_connection_disconnect/dbus_connection_close
3868         
3869         * test/test-service.c (path_message_func, filter_func):
3870         s/dbus_connection_disconnect/dbus_connection_close
3871         
3872         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3873         
3874 2005-05-25  Colin Walters  <walters@verbum.org>
3875
3876         * dbus/dbus-protocol.h: Move various bus service #defines such
3877           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3878           dbus/dbus-shared.h.
3879         * dbus/dbus-shared.h: Various defines moved here.
3880         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3881
3882 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3883
3884         * python/__init__.py: Python bindings deserve a minor version
3885         update.  Upped to (0, 40, 2)
3886
3887 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3888
3889         * python/decorators.py: add explicitly_pass_message decorator
3890         for passing in the dbus message as keyword for edge case signal
3891         handling
3892
3893         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3894         to conform with what dbus expects for match rules
3895         (SignalMatchRule.execute): add the dbus message as a keyword
3896         if the signal handler has requested it
3897
3898         * python/examples/example/signal-recipient.py: added some more
3899         examples on how to hook up to signals
3900
3901 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3902
3903         * python/decorators.py: import dbus_bindings
3904
3905         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3906         SignalMatchNode): new classes that implement wildcard signal
3907         callback matching using a tree lookup. Heavily modified from a
3908         patch sent by Celso Pinto (fd.o bug #3241)
3909
3910         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3911         use new match classes to handle signals.
3912
3913 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3914         
3915         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3916
3917 2005-05-18  Havoc Pennington  <hp@redhat.com>
3918
3919         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3920         gettext. Not really worth requiring yet perhaps, but any
3921         production quality 1.0 would require it so we should go ahead and
3922         get things set up. We do have a couple token calls to
3923         bindtextdomain in the code already.
3924
3925 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3926
3927         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3928         when using recursive g_main_loops
3929
3930         * python/_dbus.py (class Bus): add the ProxyObjectClass
3931         alias for ProxyObject to make it easier for the Twisted 
3932         networking framework to integrate dbus.
3933
3934         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3935         alias for ProxyMethod to make it easier for the Twisted 
3936         networking framework to integrate dbus. 
3937
3938 2005-05-11  Ross Burton  <ross@openedhand.com>
3939
3940         * glib/dbus-glib-tool.c: Add --prefix argument.
3941         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3942         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3943         Add prefix argument.
3944         (generate_glue): Pass prefix argument down.
3945         (dbus_binding_tool_output_glib_server): Pass prefix to
3946         glib-genmarshal.
3947         
3948 2005-05-11  Colin Walters  <walters@verbum.org>
3949
3950         * tools/dbus-send.c (append_array): New function.
3951         (append_arg): Broken out from main.
3952         (main): Add cheesy hack to send arrays and variants.
3953         (usage): Update.
3954         * tools/dbus-print-message.c (print_iter): Broken out
3955         from main.
3956
3957 2005-05-11  Colin Walters  <walters@verbum.org>
3958
3959         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3960         New function, returns signature string for signature iter.
3961         * dbus/dbus-signature.h: Prototype it.
3962         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3963         New function, returns signature string for message iter.
3964         (dbus_message_iter_get_array_len): New function, returns
3965         length of array.
3966         (dbus_message_iter_get_fixed_array): Fix assertion; this
3967         function should be used when the iter is pointing to the
3968         contents of an array
3969         * dbus/dbus-message.h: Prototypes.
3970         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
3971         New function; returns length of an array.
3972         * dbus/dbus-marshal-recursive.h: Prototype it.
3973         
3974 2005-05-11  Colin Walters  <walters@verbum.org>
3975
3976         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
3977         compilation error.
3978         
3979 2005-05-08  Havoc Pennington  <hp@redhat.com>
3980
3981         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
3982         daemon's pid, not the parent's pid, to the file descriptor.
3983         Reported by Taj Morton.
3984
3985 2005-05-05  Havoc Pennington  <hp@redhat.com>
3986
3987         * configure.in (LT_*): add notes on how the libtool versioning
3988         works to save thinking. Increment soname to indicate protocol
3989         breakage (though really the library interface hasn't changed I
3990         guess)
3991
3992         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3993         verify the GUID received from server matches what we were
3994         expecting, if we had an expectation
3995
3996         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
3997         (_dbus_auth_get_guid_from_server): new function
3998         (send_begin): parse the OK args
3999
4000         * doc/dbus-specification.xml: add GUID to the auth protocol
4001
4002 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4003
4004         * Fix my name in previous changelog ;)
4005
4006         * python/proxies.py (ProxyObject.__getattr__): add further patch
4007         from Anthony Baxter to throw an AttributeError when python 
4008         __special__ functions are called instead of marshling them over 
4009         the bus (Bug#1685 comment 3).
4010
4011 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4012
4013         * python/Makefile.am: changed to use pyexecdir for the binding
4014         shared libraries (Bug#2494)
4015
4016         * python/exceptions.py: bring exceptions over from the bindings
4017         so they can be used in applications (Bug#2036)
4018         Make all exceptions derive from DBusException
4019
4020         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4021         of classes so that print obj doesn't throw an exception (Bug #1685)
4022
4023 2005-05-03  Ross Burton  <ross@openedhand.com>
4024
4025         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4026         Return if we get an error during registration.  Set up a
4027         weak reference on object to unregister if object is destroyed.
4028         (unregister_gobject): New function.
4029         
4030 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4031
4032         * python/dbus_bindings.pyx.in: 
4033         - added new type classes for hinting to the marashaler what type 
4034         to send over the wire
4035         - added int16 and uint16 marshalers
4036         - Fixed a bug in the type constants that caused int32 to go out
4037         as uint16 over the wire
4038         * python/dbus.py: split up into different files and renamed _dbus.py
4039         * python/__init__.py, python/_util.py, python/decorators.py, 
4040         python/exceptions.py, python/proxies.py, python/services.py,
4041         python/types.py: new files split off from dbus.py
4042         * python/Makefile.am: Add new files, remove dbus.py and 
4043         install all python files to <python module dir>/dbus
4044         * python/examples/*: Added #!/usr/bin/env python to the top of
4045         every example.  Patch provided by Tatavarty Kalyan
4046
4047 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4048
4049         * NEWS: Update to 0.33
4050
4051 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4052
4053         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4054         method for doing async calls
4055         (_pending_call_notification): New C function for handling pendning call
4056         callbacks
4057         (set_notify): New method for setting pending call notification
4058         
4059         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4060         Async capabilities added to remote method calls
4061         (Sender): class removed
4062         (RemoteService): class removed
4063         (ObjectTree): class removed for now
4064         (RemoteObject): Renamed to ProxyObject
4065         (RemoteMethod): Renamed to ProxyMethod
4066         (method): Decorator added for decorating python methods as dbus methods
4067         (signal): Decorator added for decorating python methods as signal emitters
4068         (ObjectType): Metaclass added for generating introspection data and the
4069         method callback vtable
4070         (Interface): Wrapper class added to wrap objects in a dbus interface
4071         (Object): Uses ObjectType as its metaclass and exports Introspect
4072         of the org.freedesktop.DBus.Introspectable interface
4073         (ValidationException, UnknownMethodException): new exceptions
4074
4075         * python/examples/*: Modified to fit with the new bindings
4076
4077 2005-04-23  Havoc Pennington  <hp@redhat.com>
4078
4079         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4080         reported by Tony Houghton
4081
4082         * test/test-service.c (main): test
4083         dbus_connection_get_object_path_data()
4084
4085         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4086         the exact_match
4087         (_dbus_object_tree_get_user_data_unlocked): new function used by
4088         dbus_connection_get_object_path_data()
4089         (do_register): add assertion test for get_user_data_unlocked
4090         (object_tree_test_iteration): more tests
4091
4092         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4093         new function from Dan Reed to let you get the user data from 
4094         dbus_connection_register_object_path()
4095
4096 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4097
4098         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4099         in numerous places that did not account for the NULL terminator
4100         (signature_from_seed): changed the manual string copy loop to 
4101         just use strcpy instead
4102         make check should now pass
4103
4104 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4105
4106         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4107         so that it allows messages that are not signals to pass in 
4108         NULL as the interface.
4109
4110 2005-04-18  David Zeuthen  <davidz@redhat.com>
4111
4112         * glib/dbus-gmain.c (io_handler_destroy_source): 
4113         (timeout_handler_destroy_source, connection_setup_free): 
4114         Also unref the source to avoid memory leaks.
4115
4116 2005-04-13  David Zeuthen  <davidz@redhat.com>
4117
4118         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4119         more reasonable, yet still totally arbitrary, value :-). 
4120
4121 2005-04-13  David Zeuthen  <davidz@redhat.com>
4122
4123         * doc/TODO: Added an "important for 1.0" item about selinux
4124         allow/deny messages
4125
4126 2005-04-13  David Zeuthen  <davidz@redhat.com>
4127
4128         * bus/selinux.c: Add c-file-style to top of file
4129         (log_audit_callback): Don't free the data here anymore
4130         (bus_selinux_check): Don't take spid and tpid since appending
4131         that to auxdata may OOM.
4132         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4133         to the caller if we are OOM by taking an error object.
4134         (bus_selinux_allows_send): -do-
4135
4136         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4137         and bus_selinux_allows_send
4138
4139         * bus/bus.c (bus_context_check_security_policy): Pass error and
4140         pass on OOM thrown by bus_selinux_allows_send()
4141
4142         * bus/services.c (bus_registry_acquire_service): Pass error and
4143         pass on OOM thrown by bus_selinux_allows_acquire_service()
4144
4145 2005-04-13  Havoc Pennington  <hp@redhat.com>
4146
4147         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4148         message at a time to avoid monopolizing the main loop, bug 
4149         #2953 from Benjamin Otte
4150
4151 2005-04-09  Havoc Pennington  <hp@redhat.com>
4152
4153         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4154         possible overlap, fix from Daniel Reed
4155         (fixup_alignment): fix signedness warnings
4156         (_dbus_string_append_unichar): ditto
4157
4158 2005-04-09  Havoc Pennington  <hp@redhat.com>
4159
4160         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4161
4162         * glib/dbus-glib-tool.c (main): fix warning
4163
4164         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4165
4166         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4167         add a new function that can be used in simple applications that
4168         don't have a main loop and are willing to block
4169
4170 2005-04-05  David Zeuthen  <davidz@redhat.com>
4171
4172         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4173
4174         * glib/dbus-gmain.c:
4175         (io_handler_destroy_source): Remove from list of IO handlers
4176         of the ConnectionSetup object
4177         (timeout_handler_destroy_source): -do- for timeout handlers
4178         (io_handler_source_finalized): Don't remove from list since
4179         we now do that in io_handler_destroy_source(). Renamed from
4180         io_handler_source_destroyed
4181         (timeout_handler_source_destroyed): -do- for timeout handlers
4182         (connection_setup_free): It is now safe to iterate over all
4183         IO and timeout handlers as the _destroy_source removes them
4184         from the list synchronously
4185
4186 2005-03-30  Havoc Pennington  <hp@redhat.com>
4187
4188         * configure.in: change check to gtk 2.4
4189
4190         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4191         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4192         to 2.4
4193
4194 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4195
4196         * News: Update 0.32
4197
4198         * HACKING: Fixed realease instructions.  configure.in should be updated to
4199           the next release by the person who made the last release.
4200
4201 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4202
4203         * python/lvalue_cast_post_process.py - removed.  Patch has been
4204           submitted to Pyrex maintainers that fixes gcc4.0 errors
4205
4206         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4207
4208 2005-03-24  Daniel Reed  <n@ml.org>
4209
4210         * tools/Makefile.am: Make print-introspect and
4211         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4212
4213 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4214
4215         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4216
4217         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4218           had in Red Hat packages for a while but for some reason never 
4219           got merged upstream
4220           (_dbus_is_a_number): New checks if a string
4221           can be converted to a number and does the conversion if it can
4222           (_dbus_user_database_lookup): Add check to see if the given username
4223           is a udi.  This allows udi's to be used instead of usernames in the
4224           config file.
4225           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4226           is a gdi.  This allows gdi's to be used instead of groupnames in the
4227           config file.
4228
4229 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4230
4231         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4232           code so that it compiles with gcc4.0
4233
4234         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4235           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4236           results back to dbus_binding.c
4237
4238 2005-03-20  Colin Walters  <walters@verbum.org>
4239
4240         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4241
4242         * configure.in: Require GTK+ 2.6.
4243         
4244 2005-03-20  Colin Walters  <walters@verbum.org>
4245
4246         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4247
4248 2005-03-17  Tom Parker  <palfrey@tevp.net>
4249
4250         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4251         print DBUS_UID_UNSET; instead print passed username.  Also
4252         be sure to actually use gid looked up in cache.
4253         
4254         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4255         for DBUS_GID_UNSET and groupname.
4256
4257 2005-03-17  Colin Walters  <walters@verbum.org>
4258
4259         * bus/print-introspect.c: Move to tools/.
4260         * bus/run-with-tmp-session-bus.sh: Ditto.
4261         
4262         * glib/Makefile.am (dbus-glib-bindings.h): Move
4263         generation to tools/Makefile.am.
4264
4265         * test/glib/run-test.sh: Update to handle move
4266         of run-with-tmp-session-bus.sh.
4267
4268         * test/glib/test-service-glib.c: Update to handle
4269         move of dbus-glib-bindings.h.
4270
4271         * tools/print-introspect.c: Moved here
4272         from bus/, and ported to GLib bindings.
4273
4274         * tools/run-with-tmp-session-bus.sh: Moved here
4275         from bus/.
4276
4277         * tools/Makefile.am: Generate dbus-glib-bindings.h
4278         and dbus-bus-introspect.xml here.
4279
4280         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4281         Update.
4282
4283 2005-03-17  Colin Walters  <walters@verbum.org>
4284
4285         * bus/driver.c (write_args_for_direction): Use
4286         _dbus_string_get_const_data to retrieve string;
4287         _dbus_string_get_const_data_len doesn't actually return
4288         a NULL-terminated substring.
4289
4290         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4291         (main): Change to use org_freedesktop_DBus_request_name
4292         instead of using g_proxy_begin_call/end_call.
4293
4294 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4295
4296         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4297         generating the finalizer.  Fixes from Ben Maurer.
4298
4299 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4300
4301         * mono/BusDriver.cs: Update method names: ListServices
4302         becomes ListNames; GetOwner becomes GetNameOwner.
4303
4304         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4305         onto the eval stack when removing the delegate.
4306
4307 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4308
4309         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4310         LT_CURRENT.  Set it to the autoconf variable.
4311                                                                                 
4312         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4313         classes that disconnects the signal handler delegate from the
4314         service object.  Fixes a big leak of proxy objects on the
4315         client side of things.  Patch from Ben Maurer
4316         <bmaurer@ximian.com>
4317
4318 2005-03-12  Colin Walters  <walters@verbum.org>
4319
4320         * bus/driver.c (write_args_for_direction): New function,
4321         parses a type signature into arguments and outputs to
4322         XML.
4323         (bus_driver_handle_introspect): Use it instead of
4324         hardcoding XML for certain signatures.
4325         
4326         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4327         dependency on dbus-daemon.
4328
4329         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4330         argument, pass it to dbus_binding_tool_output_glib_client.
4331
4332         * glib/dbus-binding-tool-glib.c
4333         (generate_client_glue): Protect against multiple inclusion.
4334         (dbus_binding_tool_output_glib_client): Add
4335         G_BEGIN_DECLS/G_END_DECLS.
4336
4337         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4338         Change to just take iface prefix directly.
4339         (write_formal_parameters): Clarify error message.
4340         (check_supported_parameters): New function; checks to see type
4341         signatures of method parameters are supported.
4342         (generate_client_glue): Handle ignore_unsupported flag.
4343         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4344         parameter.
4345
4346         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4347         --ignore-unsupported by default until glib bindings
4348         support arrays.
4349
4350 2005-03-11  Colin Walters  <walters@verbum.org>
4351
4352         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4353         install it.
4354
4355         * bus/print-introspect.c: New file; prints introspection
4356         data for a given name and object path.
4357
4358         * bus/run-with-tmp-session-bus.sh: New file, refactored
4359         from test/glib/run-test.sh.  Creates a temporary session
4360         bus and runs another program.
4361
4362         * test/glib/run-test.sh: Refactor to invoke
4363         run-with-tmp-session-bus.sh.
4364
4365         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4366         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4367         macros instead of hardcoding.
4368
4369         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4370
4371 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4372
4373         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4374         this unref; it doesn't match up evenly in some codepaths.
4375         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4376         this evenly matches with the ref near the top of this function.
4377
4378 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4379
4380         * dbus/dbus-object-tree.c
4381         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4382         and we try to unregister a path that's not registered, still go
4383         through the process of unlocking and don't just return.
4384
4385 2005-03-09  Colin Walters  <walters@verbum.org>
4386
4387         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4388         to this are generated for client-side wrappers.  Invokes a
4389         D-BUS method and returns reply values.  
4390
4391         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4392         function; writes signature string for argument direction.
4393         (write_args_for_direction): Change to pass input values directly
4394         instead of via address, and fix indentation.
4395         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4396         make generated wrappers inlineable.
4397
4398         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4399         note about using dbus_type_is_fixed.
4400
4401         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4402         dbus/dbus-signature.c as dbus_type_is_fixed.
4403
4404         All callers updated.
4405
4406         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4407         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4408
4409         * dbus/dbus-signature.h: Prototype.
4410
4411         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4412         error printf code.
4413
4414         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4415         appropriate instead of just freeing it.
4416         (main): Free returned strings using g_free.
4417
4418         * test/glib/Makefile.am (test-service-glib-glue.h)
4419         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4420
4421         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4422         simply maps a simple D-BUS type to GType.
4423         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4424         GType.
4425         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4426         initialize the value with it.
4427         (dbus_gvalue_binding_type_from_type): Unused, delete.
4428         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4429         various types instead of unmarshalling to value data directly.
4430         Remove can_convert boolean.
4431         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4432         returning directly instead of using can_convert boolean.
4433         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4434         Stores a GValue in a pointer to a value of its corresponding C
4435         type.
4436
4437         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4438         add dbus_gvalue_store.
4439
4440 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4441
4442         Fix a bunch of lifecycle and memory management problems
4443         in the mono bindings.
4444
4445         * mono/Arguments.cs (Arguments): Implement IDisposable
4446
4447         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4448         strictly a static class.
4449
4450         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4451         delegates into this file.
4452         (Connection): Implement IDisposable.
4453         (Dispose): Disconnect the connection and set the raw connection
4454         pointer to IntPtr.Zero.
4455         (~Connection): Call Dispose().
4456         (RegisterObjectPath): Added.  Manages the registration of object
4457         paths so we can cleanly disconnect them at dispose/finalize time.
4458         (UnregisterObjectPath): Ditto.
4459         (set_RawConnection): Unregister all of the object paths when
4460         changing the underlying DBusConnection.  Add them back onto the
4461         new connection, if any.
4462
4463         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4464         more unmanaged resources anymore, so it's not necessary.  Move all
4465         the DBusObjectPathVTable stuff out of here.
4466         (Handler): Save references to our delegates so that they don't get
4467         finalized.  Call Connection.RegisterObjectPath() instead of
4468         dbus_connection_register_object_path() directly.
4469         (Message_Called): Dispose the message after we're finished with
4470         it.
4471
4472         * mono/Message.cs (Message): Implement IDisposable.
4473         (Dispose): Dispose the Arguments, and set the RawMessage to
4474         IntPtr.Zero.
4475         (SendWithReplyAndBlock): We own the ref to the reply that comes
4476         back from dbus_connection_send_with_reply_and_block() so add a
4477         comment about that and unref it after we've constructed a managed
4478         MethodReturn class around it.  Fixes a big, big leak.
4479
4480         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4481         method.
4482         (BuildSignalHandler): After we've sent the Signal message, dispose
4483         of it.
4484         (BuildMethod): Dispose of the method call and reply messages after
4485         we've sent the message and extracted the data we want from the
4486         reply.
4487
4488         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4489         anymore.
4490         (Service_FilterCalled): Dispose of the message after we're
4491         finished with it.
4492
4493 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4494
4495         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4496         After we attach our pending call to the connection, unref
4497         it.  Fixes a leak.
4498  
4499         * mono/Connection.cs (set_RawConnection): Disconnect our
4500         filter and match callbacks from the old connection and
4501         reconnect them to the new connection, if any.
4502
4503         * mono/DBusType/Array.cs: "Code" is a static member, so
4504         don't use "this" to refer to it.  Fix for stricter checking
4505         in Mono 1.1.4.
4506  
4507         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4508         object path that we pass into unmanaged code.
4509  
4510         * mono/DBusType/String.cs (Append): Don't leak the string
4511         that we pass into unmanged code.
4512
4513 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4514         * NEWS: Update for 0.31
4515
4516         * configure.in: Release 0.31
4517         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4518
4519         * qt/Makefile.am: fixed build
4520
4521         * dbus/Makefile.am: soname bump for libdbus
4522
4523         * glib/Makefile.am: soname bump for libdbus-glib
4524
4525 2005-03-05  Havoc Pennington  <hp@redhat.com>
4526
4527         * dbus/dbus-sysdeps.c:
4528         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4529         value
4530         (_dbus_generate_random_bytes_buffer): fix return value
4531
4532         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4533         checks actually work, from Tom Parker <fdo@tevp.net>
4534
4535 2005-03-01  Colin Walters  <walters@verbum.org>
4536
4537         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4538         functions copied from dbus-glib-tool.c.
4539         (main): Convert lots of error code to use them.
4540         Also add some testing for introspection bits.
4541
4542 2005-03-01  Colin Walters  <walters@verbum.org>
4543         
4544         * doc/TODO: Remove introspection signature TODO.
4545
4546 2005-02-27  Colin Walters  <walters@verbum.org>
4547
4548         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4549         Change return value to const char * instead of int so we can do
4550         full signatures.
4551         (struct PropertyInfo, struct ArgInfo): Store char *.
4552         (property_info_new, arg_info_new): Update parameters, strdup.
4553         (property_info_unref, arg_info_unref): Free.
4554
4555         * glib/dbus-gidl.h: Update prototypes.
4556
4557         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4558         (validate_signature): New function, just validates signature and
4559         sets GError.
4560         (parse_property, parse_arg): Invoke validate_signature.  Store
4561         signature instead of just type code.
4562
4563         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4564         function to return a primary type for a signature, dropping
4565         information about types in container types.
4566         (dbus_gvalue_genmarshal_name_from_type)
4567         (dbus_gvalue_binding_type_from_type)
4568         (dbus_gvalue_ctype_from_type): Update to take full signature
4569          instead of type code.
4570         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4571
4572         * glib/dbus-gvalue.h: Update prototypes for above.
4573
4574         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4575         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4576         (introspect_properties, introspect_signals, write_interface):
4577         Update to handle signatures, and remove usage of
4578         _dbus_gutils_type_to_string.
4579         (handle_introspect): Print out type codes instead of e.g. "string"
4580         in hardcoded introspection XML; also use x_AS_STRING constants
4581         instead of hardcoding in string.
4582
4583         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4584         to string.  Remove usage of _dbus_gutils_type_to_string.
4585
4586         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4587
4588         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4589         deletion.
4590         
4591         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4592         (compute_marshaller_name, generate_glue): Handle signature change
4593         to string.
4594         (write_formal_parameters, write_args_for_direction): Ditto, and
4595         remove FIXME.
4596
4597         * tools/dbus-tree-view.c (type_to_string): Delete.
4598         (info_set_func_text): Update to print full signatures.
4599
4600         * test/glib/test-service-glib.xml: Change types to new
4601         introspection format.
4602
4603 2005-02-26  Havoc Pennington  <hp@redhat.com>
4604
4605         * doc/TODO: remove the "guid" item
4606
4607         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4608         (with_bus_thread_func): use open_private
4609
4610         * dbus/dbus-connection.c (dbus_connection_open_private): new
4611         function that works like the old dbus_connection_open()
4612         (dbus_connection_open): now returns an existing connection if
4613         possible
4614
4615         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4616         through the GUID to the transport
4617
4618         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4619         GUID in hex-encoded form.
4620
4621         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4622         pass GUID argument in to the transport
4623
4624         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4625         guid argument
4626
4627         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4628
4629         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4630
4631 2005-02-25  Havoc Pennington  <hp@redhat.com>
4632
4633         * doc/dbus-specification.xml: document the GUID thing
4634
4635         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4636         globally unique ID for the server, and put a "guid=hexencoded"
4637         field in the address
4638
4639         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4640
4641         * dbus/dbus-message.c: ditto
4642
4643         * dbus/dbus-dataslot.c: ditto
4644
4645         * dbus/dbus-list.c: ditto
4646
4647         * dbus/dbus-internals.h: wait, just include
4648         dbus-threads-internal.h here
4649         
4650         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4651         use in main library
4652
4653         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4654
4655 2005-02-24  Colin Walters  <walters@verbum.org>
4656
4657         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4658
4659 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4660
4661         * glib/Makefile.am: added dbus-gobject.h to sources list
4662         so distcheck doesn't fail
4663         
4664 2005-02-24  Havoc Pennington  <hp@redhat.com>
4665
4666         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4667         you must disconnect before unref, since locking and other things
4668         are screwed up otherwise. Fix assorted other locking stuff.
4669
4670         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4671         fix compilation
4672
4673         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4674         into a private header and don't export from the library
4675
4676         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4677
4678 2005-02-24  Colin Walters  <walters@verbum.org>
4679         
4680         * dbus/dbus-signature.c: New file; implements various functions
4681         related to type signatures.  Includes an interator for parsing,
4682         validation functions.
4683         (dbus_type_is_basic): Moved here from
4684         dbus-marshal-basic.c:_dbus_type_is_basic.
4685         (dbus_type_is_container): Moved here from
4686         dbus-marshal-basic.c:_dbus_type_is_container.
4687
4688         All callers of _dbus_type_is_container and _dbus_type_is_basic
4689         updated, and include dbus-signature.h.
4690
4691         * dbus/dbus-signature.h: New file; prototypes for the above.
4692
4693         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4694         dbus-signature.h.
4695
4696         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4697         function factored out of _dbus_first_type_in_signature.
4698         (_dbus_first_type_in_signature_c_str): New function; returns first
4699         type code for a type signature character.
4700
4701         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4702         handle function moves.
4703
4704         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4705
4706         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4707         function; skips to next complete type in type signature.
4708         Implemented using previous skip_one_complete_type.  Now
4709         skip_one_complete_type just delegates to
4710         _dbus_type_signature_next.
4711
4712         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4713         to dbus-signature.c
4714         (_dbus_type_is_container): Ditto.
4715
4716         * doc/dbus-specification.xml: Update introspection sample to
4717         use real type signatures.
4718
4719         * dbus/dbus-test.h: Prototype signature test.
4720
4721         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4722         signature tests.
4723
4724         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4725
4726 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4727
4728         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4729         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4730
4731 2005-02-21  Colin Walters  <walters@verbum.org>
4732
4733         * dbus/dbus-test-main.c (main): Take optional specific test
4734         argument.
4735
4736         * dbus/dbus-test.c (run_test): New function, runs a test function
4737         with no data directory.
4738         (run_data_test): Like above, but takes data directory.
4739         (dbus_internal_do_not_use_run_tests): Take
4740         specific test argument.  Replace lots of cut n' paste code
4741         with run_test and run_data_test.
4742
4743         * dbus/dbus-test.h: Update prototype for
4744         dbus_internal_do_not_use_run_tests.
4745
4746 2005-02-20  Havoc Pennington  <hp@redhat.com>
4747
4748         Fix bugs reported by Daniel P. Berrange
4749         
4750         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4751         (protected_change_watch): new function
4752         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4753         (_dbus_server_add_watch): change to work like the
4754         dbus-connection.c equivalents; like those, probably kind of
4755         busted, but should at least mostly work for now
4756         (dbus_server_disconnect): drop the lock if we were already
4757         disconnected, patch from Daniel P. Berrange
4758
4759         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4760         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4761         same stuff
4762
4763         * doc/TODO: todo about unscrewing this mess
4764
4765 2005-02-19  Colin Walters  <walters@verbum.org>
4766
4767         * glib/dbus-binding-tool-glib.c
4768         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4769
4770         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4771         as errno.h and sys/stat.h.
4772         (lose): New function, prints error with
4773         newline and exits.
4774         (lose_gerror): Similar, but takes GError for message.
4775         (main): Add --output argument to specify output file to write to,
4776         instead of always printing to stdout.  In this mode, determine
4777         timestamps on source files to see whether any are newer than the
4778         target file.  If not, exit.  Also convert a number of error
4779         messages to use lose (since it's shorter), and switch to using
4780         g_io_channel_shutdown.
4781
4782 2005-02-19  Havoc Pennington  <hp@redhat.com>
4783
4784         * glib/dbus-gobject.c
4785         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4786
4787         * glib/dbus-glib.c: fix doxygen warnings
4788
4789         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4790         is found on an <arg>
4791
4792 2005-02-17  Colin Walters  <walters@verbum.org>
4793
4794         * glib/dbus-gobject.h: Don't export
4795         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4796         
4797         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4798         (invoke_object_method): Handle it.
4799
4800         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4801         Handle rename.
4802         
4803 2005-02-17  Colin Walters  <walters@verbum.org>
4804
4805         * bus/.cvsignore, doc/.cvsignore
4806         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4807         Update.
4808
4809 2005-02-17  Colin Walters  <walters@verbum.org>
4810         
4811         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4812         Rename to DBUS_SERVICE_DBUS.
4813         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4814         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4815         Change the value from "org.freedesktop.Local"
4816         to "org.freedesktop.DBus.Local".
4817         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4818         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4819         DBUS_INTERFACE_INTROSPECTABLE.
4820         Change the value from "org.freedesktop.Introspectable"
4821         to "org.freedesktop.DBus.Introspectable".
4822         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4823         DBUS_INTERFACE_PROPERTIES.
4824         Change the value from "org.freedesktop.Properties"
4825         to "org.freedesktop.DBus.Properties".
4826         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4827         DBUS_INTERFACE_PEER.
4828         Change the value from "org.freedesktop.Peer"
4829         to "org.freedesktop.DBus.Peer".
4830         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4831         DBUS_INTERFACE_LOCAL.
4832         Change the value from "org.freedesktop.Local"
4833         to "org.freedesktop.DBus.Local".
4834
4835         All other users of those constants have been changed.
4836
4837         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4838
4839         * glib/dbus-gobject.c (handle_introspect): Use constants.
4840
4841         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4842
4843 2005-02-17  Colin Walters  <walters@verbum.org>
4844
4845         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4846         (parse_node, parse_interface, parse_method, parse_signal)
4847         (parse_property, parse_annotation): Lose if we're currently in an
4848         annotation.
4849         (parse_annotation): New function.
4850         (parser_start_element, parser_end_element): Handle annotation.
4851         (parse_method, parse_interface): Remove support for c_name attribute,
4852         switch to annotations.
4853
4854         * glib/dbus-gidl.h (interface_info_get_binding_names)
4855         (method_info_get_binding_names)
4856         (interface_info_get_binding_name, method_info_get_binding_name)
4857         (interface_info_set_binding_name, method_info_set_binding_name):
4858         Remove.
4859         (interface_info_get_annotations, method_info_get_annotations)
4860         (interface_info_get_annotation, method_info_get_annotation)
4861         (interface_info_add_annotation, method_info_add_annotation):
4862         Prototype.
4863
4864         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4865         for "bindings".
4866         (struct MethodInfo): Ditto.
4867         Straightfoward conversion of binding methods into annotation methods
4868         as prototyped.
4869
4870         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4871
4872         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4873
4874         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4875         Use new annotation API.
4876
4877         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4878         annotation element.
4879         
4880         * doc/dbus-specification.xml: Discuss introspection annotations,
4881         include list of well-known annotations.
4882
4883         * test/glib/test-service-glib.xml: Make validate against new DTD.
4884
4885 2005-02-17  Colin Walters  <walters@verbum.org>
4886
4887         This patch is based on initial work from
4888         Paul Kuliniewicz <kuliniew@purdue.edu>.
4889
4890         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4891         initialization of GValue from dbus type to here.
4892         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4893         for the "glib-genmarshal" program from a DBus type.
4894         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4895         into the C name for it we use in the glib bindings.
4896         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4897         glib C type (not GValue).
4898         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4899
4900         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4901         from dbus-gobject.c.
4902
4903         * glib/dbus-gutils.h: Prototype it.
4904
4905         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4906         (marshal_dbus_message_to_g_marshaller): Use new shared function
4907         dbus_glib_marshal_dbus_message_to_gvalue_array.
4908
4909         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4910         Will be changed once we have annotations.
4911
4912         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4913         GStaticRWLock.  Callers updated.
4914         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4915         (string_table_next): New function for iterating over zero-terminated
4916         string value array.
4917         (string_table_lookup): New function; retrieves specific entry in
4918         array.
4919         (get_method_data): New function; look up method data in object data chunk.
4920         (object_error_domain_prefix_from_object_info)
4921         (object_error_code_from_object_info): New functions, but not implemented yet.
4922         (method_interface_from_object_info): New function; retrieve interface name.
4923         (method_name_from_object_info): New function; retrieve method name.
4924         (method_arg_info_from_object_info): New function; retrieve argument data.
4925         (arg_iterate): New function; iterates over serialized argument data.
4926         (method_dir_signature_from_object_info): New function; returns a
4927         GString holding type signature for arguments for just one
4928         direction (input or output).
4929         (method_input_signature_from_object_info)
4930         (method_output_signature_from_object_info): New functions.
4931         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4932         converts dbus message arguments into a GValue array.  Used for both
4933         signal handling and method invocation.
4934         (struct DBusGlibWriteIterfaceData): New utility structure.
4935         (write_interface): New function; generate introspection XML for
4936         an interface.
4937         (introspect_interfaces): New function; gathers all interface->methods,
4938         generates introspection XML for them.
4939         (handle_introspect): Invoke introspect_interfaces.
4940         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4941         (lookup_object_and_method): New function; examines an incoming message
4942         and attempts to match it up (via interface, method name, and argument
4943         signature) with a known object and method.
4944         (gerror_domaincode_to_dbus_error_name): New function; converts a
4945         GError domain and code into a DBus error name.  Needs GError data
4946         added to object introspection to work well.
4947         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4948         GError.
4949         (invoke_object_method): New function to invoke an object method
4950         looked up via lookup_object_and_method.  Parses the incoming
4951         message, turns it into a GValue array, then invokes the marshaller
4952         specified in the DBusGMethodInfo.  Creates a new message with
4953         either return values or error message as appropriate.
4954         (gobject_message_function): Invoke lookup_object_and_method and
4955         invoke_object_method.
4956
4957         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4958         (enum DBusBindingOutputMode): New enum for binding output modes.
4959         (pretty_print): Print binding names.
4960         (dbus_binding_tool_error_quark): GError bits.
4961         (version): Fix typo.
4962         (main): Create GIOChannel for output.  Parse new --mode argument,
4963         possible values are "pretty-print", "glib-server", "glib-client".
4964         Use mode to invoke appropriate function.
4965         
4966         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4967
4968         * glib/dbus-glib-tool.h: New header, just includes GError bits
4969         for now.
4970
4971         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
4972         maps binding style to name.
4973         (struct MethodInfo): Ditto.
4974         (get_hash_keys, get_hash_key): Utility function, returns keys for
4975         a GHashTable.
4976         (interface_info_new, method_info_new): Initialize bindings.
4977         (interface_info_unref, method_info_unref): Destroy bindings.
4978         (method_info_get_binding_names, method_info_get_binding_name)
4979         (interface_info_get_binding_names, interface_info_get_binding_name):
4980         Functions for retrieving binding names.
4981         (method_info_set_binding_name, interface_info_set_binding_name):
4982         Functions for setting binding names.
4983
4984         * glib/dbus-binding-tool-glib.h: New file, has prototypes
4985         for glib binding generation.
4986
4987         * glib/dbus-binding-tool-glib.c: New file, implements server-side
4988         and client-side glib glue generation.
4989
4990         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
4991         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
4992         dbus-glib-tool.h.
4993
4994         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
4995         of using GClosureMarshal directly.
4996         (struct DBusGObjectInfo): Add n_infos member.
4997
4998         * test/glib/test-service-glib.xml: New file; contains introspection data
4999         for MyTestObject used in test-service-glib.c.
5000
5001         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5002         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5003         (my_object_uppercase, my_object_many_args): New test methods.
5004         (main): Use dbus_g_object_class_install_info to include generated object
5005         info.
5006
5007         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5008         as well as client-side bindings.
5009
5010         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5011         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5012         using both the dbus_gproxy stuff directly as well as the generated bindings.
5013
5014 2005-02-15  Havoc Pennington  <hp@redhat.com>
5015
5016         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5017         complete a pending call, don't run filters first.
5018
5019         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5020         dbus_pending_call_steal_reply
5021
5022         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5023         _dbus_connection_block_pending_call
5024         (dbus_pending_call_get_reply): change to steal_reply and return a
5025         ref
5026
5027         * dbus/dbus-connection.c
5028         (dbus_connection_send_with_reply_and_block): port to work in terms
5029         of DBusPendingCall
5030         (_dbus_connection_block_pending_call): replace block_for_reply
5031         with this
5032
5033 2005-02-14  Havoc Pennington  <hp@redhat.com>
5034
5035         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5036         properly handle looking up group information by name; fix 
5037         from j@bootlab.org
5038
5039 2005-02-13  Havoc Pennington  <hp@redhat.com>
5040
5041         * dbus/dbus-connection.c (dbus_connection_return_message) 
5042         (dbus_connection_borrow_message): hold dispatch lock while message
5043         is outstanding
5044         (_dbus_connection_block_for_reply): hold dispatch lock while we
5045         block for the reply, so nobody steals our reply
5046         (dbus_connection_pop_message): hold the dispatch lock while we
5047         pluck the message
5048
5049 2005-02-13  Havoc Pennington  <hp@redhat.com>
5050
5051         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5052         (_dbus_connection_release_dispatch)
5053         (_dbus_connection_acquire_io_path)
5054         (_dbus_connection_release_io_path): make the mutex and condvar
5055         control access to the "acquired" flag. Drop the connection lock
5056         while waiting on the condvar. Hopefully these are baby steps in
5057         roughly the right direction.
5058
5059 2005-02-13  Havoc Pennington  <hp@redhat.com>
5060
5061         * dbus/dbus-connection.c: use separate mutexes for the condition
5062         variables; this is some kind of baseline for sanity, but the
5063         condition variables still aren't used correctly afaict
5064
5065 2005-02-13  Havoc Pennington  <hp@redhat.com>
5066
5067         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5068         fix a double-unlock
5069
5070         * dbus/dbus-connection.c
5071         (_dbus_connection_detach_pending_call_unlocked): add this
5072
5073         Initial semi-correct pass through to fix thread locking; there are
5074         still some issues with the condition variable paths I'm pretty
5075         sure
5076         
5077         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5078         lock/unlock calls
5079
5080         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5081         rename to add _unlocked
5082         (struct DBusConnection): move "dispatch_acquired" and
5083         "io_path_acquired" to use only one bit each.
5084         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5085         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5086         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5087         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5088         (_dbus_connection_remove_timeout) 
5089         (_dbus_connection_toggle_timeout): drop lock when calling out to
5090         user functions; done in a hacky/bad way.
5091         (_dbus_connection_send_and_unlock): add a missing unlock
5092         (_dbus_connection_block_for_reply): add a missing unlock
5093
5094         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5095         drop lock in a hacky probably unsafe way to call out to user
5096         function
5097
5098 2005-02-12  Havoc Pennington  <hp@redhat.com>
5099
5100         * tools/dbus-tree-view.c (info_set_func_text): display more
5101         details on args
5102
5103         * bus/driver.c (bus_driver_handle_list_services): list the bus
5104         driver
5105
5106         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5107
5108         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5109         (method_info_get_n_args): new function
5110
5111 2005-02-12  Havoc Pennington  <hp@redhat.com>
5112
5113         * bus/driver.c (bus_driver_handle_introspect): add introspection
5114         for bus driver
5115
5116 2005-02-12  Havoc Pennington  <hp@redhat.com>
5117
5118         * bus/driver.c: put the signature of each bus driver method in the
5119         table of handlers and check it on incoming calls; this isn't
5120         really useful, but going to add introspect support in a minute.
5121
5122 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5123
5124         * mono/Connection.cs: The unpredictability of finalizers in mono
5125         prevents us from deterministically disconnecting the filters from
5126         the Service class's finalizer, so move tracking of filters and
5127         matches here.  Add API for that.
5128
5129         * mono/Service.cs: Remove the code, add code which calls the
5130         methods now on the Connection class.
5131
5132 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5133
5134         * python/dbus.py (class Sender): added to support dbus signals better
5135         (Bus::add_signal_receiver): added expand_args parameter which defaults
5136         to True.  When expand args is True the signal handler will pass the 
5137         message arguments as parameters to the signal handler.  If False
5138         revert to previous behavior where the signal handler must get the
5139         argument list from the message.  This is to help port applications
5140         like HAL that have a tendancy to send variable length argument lists.
5141         self._match_rule_to_receivers is now a dict of dicts.
5142         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5143         removing it from a list
5144         (Bus::_signal_func): change signal handlers so that interface,
5145         signal_name, service, path and message are packed into a Sender
5146         object and that is passed to the handler.  If expand_args is True
5147         extract the args list from the message and append it to the parameter
5148         list
5149         
5150         * python/dbus_bindings.pyx.in (class Signature): added to support 
5151         signiature types
5152         (MessageIter::__init__): changed iteration limit to match D-BUS
5153         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5154         STRUCT and VARIENT type support
5155         (MessageIter::python_value_to_dbus_sig): made recursive to support
5156         recursive types
5157         (MessageIter::append*): added Signature, dict, tuple 
5158         support
5159
5160         * python/examples/example-client.py: added examples of getting tuples
5161         and dicts
5162
5163         * python/examples/example-service.py: added examples of sending tuples
5164         and dicts
5165
5166         * python/examples/example-signal-recipient.py: Fixed to handle new
5167         signal callback format
5168
5169 2005-02-10  Havoc Pennington  <hp@redhat.com>
5170
5171         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5172         (call dbus_g_proxy_add_signal)
5173
5174         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5175         escape the hostname
5176         (_dbus_server_new_for_domain_socket): escape the path
5177
5178         * dbus/dbus-address.c (dbus_address_escape_value): new
5179         (dbus_address_unescape_value): new
5180         (dbus_parse_address): unescape values
5181
5182         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5183
5184         * doc/dbus-specification.xml: explain how to escape values in
5185         addresses
5186
5187 2005-02-10  Havoc Pennington  <hp@redhat.com>
5188
5189         * dbus/dbus-message-factory.c (generate_special): modify test to
5190         avoid using a non-basic dict key
5191
5192         * dbus/dbus-marshal-validate-util.c: add test for the below
5193
5194         * doc/dbus-specification.xml: require that dict keys are a basic
5195         type
5196
5197         * dbus/dbus-marshal-validate.c
5198         (_dbus_validate_signature_with_reason): require that dict key is a
5199         basic type
5200
5201 2005-02-10  Havoc Pennington  <hp@redhat.com>
5202
5203         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5204         change to be _and_unlock instead of _unlocked
5205
5206         * dbus/dbus-connection.c
5207         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5208         have no_update so we can find this bug quickly in future
5209
5210 2005-02-10  Havoc Pennington  <hp@redhat.com>
5211
5212         * dbus/dbus-message-util.c (verify_test_message): tests for string
5213         array
5214
5215         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5216         support for arrays of string/signature/path
5217
5218 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5219
5220         * dbus/dbus-connection.c
5221         (_dbus_connection_queue_received_message_link,
5222         _dbus_connection_message_sent): Add the path to
5223         the verbose output.
5224         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5225         _dbus_connection_send_preallocated_unlocked(), updated the
5226         dispatch status, and unlocks.  Fixes a bug where certain
5227         situations (like a broken pipe) could cause a Disconnect message
5228         to not be sent, tricking the bus into thinking a service was still
5229         there when the process had quit.
5230         (_dbus_connection_send_preallocated): Call
5231         _dbus_connection_send_preallocated_and_unlock().
5232         (_dbus_connection_send_and_unlock): Added.  Calls
5233         _dbus_connection_send_preallocated_and_unlock().
5234         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5235         (dbus_connection_send_with_reply): Update the dispatch status and
5236         unlock.
5237
5238         * mono/Service.cs (~Service): Added.  Removes the filter so that
5239         we don't get unmanaged code calling back into a GCed delegate.
5240         (RemoveFilter); Added.
5241
5242 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5243
5244         * dbus/dbus-message.c (dbus_message_iter_open_container):
5245         - Removed check for iterator type being an array because
5246         get_arg_type does not work with writer iterators
5247         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5248
5249 2005-02-07  Havoc Pennington  <hp@redhat.com>
5250
5251         * doc/dbus-specification.xml: some more language cleanups; add
5252         stuff about how to deal with invalid protocol and extension
5253         points; add _ to allowed chars in auth commands; add EXTENSION_
5254         auth command prefix
5255
5256 2005-02-06  Havoc Pennington  <hp@redhat.com>
5257
5258         * s/expected/required/ in a couple places for clarity
5259
5260 2005-02-07  Colin Walters  <walters@verbum.org>
5261
5262         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5263         sender or proposed_recipient.
5264
5265 2005-02-06  Havoc Pennington  <hp@redhat.com>
5266
5267         * dbus/dbus-message-factory.c (generate_special): more tests
5268
5269         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5270         array length that exceeds the maximum
5271
5272 2005-02-05  Havoc Pennington  <hp@redhat.com>
5273
5274         * dbus/dbus-message-factory.c (generate_special): more test cases,
5275         increasing coverage
5276
5277         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5278         reason why a signature was invalid
5279
5280         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5281         skip the length of the string before we look at it in validation
5282
5283         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5284         equal_substring
5285
5286         * dbus/dbus-message.c (_dbus_message_loader_new): default
5287         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5288
5289 2005-02-05  Havoc Pennington  <hp@redhat.com>
5290
5291         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5292         if the signature of a variant was empty
5293         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5294         struct with no element type)
5295
5296         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5297         mangled messages to break things
5298
5299 2005-02-04  Havoc Pennington  <hp@redhat.com>
5300
5301         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5302         g_quark_try_string() so it actually can return 0
5303         (dbus_g_proxy_connect_signal): ditto
5304
5305 2005-02-04  Havoc Pennington  <hp@redhat.com>
5306
5307         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5308         bogus warning
5309         (tristring_from_message): assert cleanly on null path/interface
5310         (should not be possible though I decided later)
5311         (dbus_g_proxy_dispose): move proxy manager unregistration here
5312         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5313         g_return_if_fail() checks
5314
5315 2005-02-04  Havoc Pennington  <hp@redhat.com>
5316
5317         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5318
5319         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5320         (with some minor changes)
5321
5322         * doc/dbus-specification.xml: add deprecated attribute to
5323         introspection format
5324
5325 2005-01-31  Havoc Pennington  <hp@redhat.com>
5326
5327         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5328         think it's sort of right
5329
5330 2005-01-30  Havoc Pennington  <hp@redhat.com>
5331
5332         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5333
5334 2005-01-30  Havoc Pennington  <hp@redhat.com>
5335
5336         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5337
5338         * autogen.sh: change to autotools 1.9
5339
5340         * glib/dbus-gproxy.c: completely change how signals work
5341         (dbus_g_proxy_add_signal): new function to specify signature of a
5342         signal
5343         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5344         and g_warning if the incoming message has the wrong signature.
5345
5346 2005-01-30  Havoc Pennington  <hp@redhat.com>
5347
5348         * tools/dbus-names-model.c (have_names_notify): fix this
5349
5350         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5351         up the string array handling a bit 
5352
5353 2005-01-30  Havoc Pennington  <hp@redhat.com>
5354
5355         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5356         (dbus_g_pending_call_cancel): new function
5357
5358         * dbus/dbus-glib.h: move GType decls for connection/message here;
5359         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5360         here, just kind of rationalizing how we handle all that
5361
5362         * tools/dbus-names-model.c: new file for a tree model listing the
5363         services on a bus
5364
5365         * tools/dbus-tree-view.c (model_new): use proper typing on the
5366         model rows
5367
5368 2005-01-30  Havoc Pennington  <hp@redhat.com>
5369
5370         * glib/dbus-gmain.c: add a custom GSource back that just checks
5371         whether the message queue has anything in it; otherwise, there are 
5372         cases where we won't see messages in the queue since there was no 
5373         IO visible to the glib main loop
5374
5375         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5376         increase default message timeout to 25 seconds
5377
5378 2005-01-30  Havoc Pennington  <hp@redhat.com>
5379
5380         * test/glib/test-profile.c (no_bus_stop_server): remove the
5381         warning about the g_warning that I just fixed
5382
5383         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5384         custom source, seems to be a lot easier to understand and work
5385         better.
5386
5387 2005-01-30  Havoc Pennington  <hp@redhat.com>
5388
5389         I think this main loop thing is conceptually broken, but here are 
5390         some band aids. I'll maybe rewrite it in a minute.
5391         
5392         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5393         custom GSource, so don't pass it in; confusing
5394         (gsource_server_finalize, gsource_connection_finalize): add
5395         finalize handlers that remove all the watches.  
5396
5397 2005-01-30  Havoc Pennington  <hp@redhat.com>
5398
5399         * glib/dbus-gobject.c (introspect_properties): fix the XML
5400         generated
5401
5402         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5403         which effectively detects the use of freed messages
5404
5405         * glib/dbus-gobject.c (handle_introspect): modify and return the
5406         reply message instead of the incoming message
5407
5408         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5409         gee, maybe it should SEND THE XML instead of just making a string
5410         and freeing it again ;-)
5411
5412         * tools/dbus-print-message.c (print_message): improve printing of
5413         messages
5414
5415         * configure.in: add debug-glib.service to the output
5416
5417 2005-01-30  Havoc Pennington  <hp@redhat.com>
5418
5419         dbus-viewer introspected and displayed the bus driver
5420         
5421         * dbus/dbus-object-tree.c 
5422         (object_tree_test_iteration): add tests for a handler registered on "/"
5423
5424         * dbus/dbus-object-tree.c
5425         (_dbus_decompose_path): fix to handle path "/" properly
5426         (run_decompose_tests): add tests for path decomposition
5427         
5428         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5429         properly
5430
5431         * glib/dbus-gobject.c (handle_introspect): fix quotes
5432
5433         * test/glib/run-test.sh: support launching the bus, then running
5434         dbus-viewer
5435
5436         * test/glib/test-service-glib.c (main): put in a trivial gobject
5437         subclass and register it on the connection
5438
5439         * bus/driver.c (bus_driver_handle_introspect): implement
5440         introspection of the bus driver service
5441
5442         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5443         identifiers, doctype decl
5444
5445         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5446         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5447         returning the service unchanged.
5448         (bus_driver_handle_message): remove old check for reply_serial in
5449         method calls, now the message type deals with that
5450         (bus_driver_handle_message): handle NULL interface
5451
5452         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5453
5454         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5455         -1 for len
5456
5457         * tools/dbus-viewer.c: add support for introspecting a service on
5458         a bus
5459
5460         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5461         (dbus_g_pending_call_unref): add
5462
5463 2005-01-29  Havoc Pennington  <hp@redhat.com>
5464
5465         * tools/dbus-tree-view.c: add support for displaying properties.
5466         (run dbus-viewer with an introspect xml file as arg, then resize
5467         the window so the tree elements show up, not sure what that is)
5468
5469         * glib/dbus-gobject.c (handle_introspect): return
5470         org.freedesktop.Properties and org.freedesktop.Introspectable
5471         interfaces when we are introspected.
5472
5473         * doc/dbus-specification.xml: allow empty interface name when 
5474         Get/Set a property
5475
5476 2005-01-29  Havoc Pennington  <hp@redhat.com>
5477
5478         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5479         though it uses glib, it could be extended for any binding in
5480         principle
5481
5482         * glib/dbus-gobject.c (gobject_message_function): change to the
5483         new way properties work
5484
5485         * dbus/dbus-protocol.h: add the new interfaces
5486
5487         * doc/dbus-specification.xml: document the introspection format,
5488         Introspectable interface, and add an org.freedesktop.Properties
5489         interface.
5490
5491         * glib/dbus-gparser.c: add support for a <property> element
5492
5493         * glib/dbus-gidl.c: add PropertyInfo
5494
5495         * glib/dbus-gobject.c (handle_introspect): put the outermost
5496         <node> outside the signal and property descriptions.
5497         (introspect_properties): export properties as <property> rather
5498         than as method calls
5499
5500 2005-01-28  Havoc Pennington  <hp@redhat.com>
5501
5502         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5503         related to authentication protocol
5504
5505 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5506
5507         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5508                 - BUS_ACTIVATION -> BUS_STARTER
5509                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5510                 - class MessageIter (__init__): Added recursion checking 
5511                 so we throw a nice error instead of just disconnecting from the
5512                 bus.
5513                 (get): Added arg_type parameter for recursion.
5514                 Removed the nil type
5515                 Added signiture type placeholder (not implemented)
5516                 Added struct type placeholder (not implemented)
5517                 Added varient type placeholder (not implemented)
5518                 Commented out dict type for now     
5519                 (get_element_type): renamed from get_array_type
5520                 (get_*): changed to use the dbus_message_iter_get_basic API
5521                 (get_*_array): removed in favor of recursive get_array method
5522                 (get_array): new recursive method which calls get to marshal
5523                 the elements of the array
5524                 (value_to_dbus_sig): New method returns the corrasponding
5525                 dbus signiture to a python value
5526                 (append): Comment out dict handling for now
5527                 Handle lists with the new recursive API
5528                 Comment out None handling for now
5529                 (append_nil): removed
5530                 (append_*): changed to use dbus_message_iter_append_basic API
5531                 (append_*_array): removed in favor of recursive append_array 
5532                 method
5533                 (__str__): Make it easier to print out recursive iterators
5534                 for debugging
5535                 - class Message (__str__): moved type inspection to the
5536                 MessageIter class' __str__ method
5537                 (get_iter): Added an append parameter wich defaults to False
5538                 If True use the new API's to create an append iterator
5539
5540         * python/dbus.py: Update to use new bindings API
5541                 - TYPE_ACTIVATION -> TYPE_STARTER
5542                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5543                 - class ActivationBus -> class StarterBus
5544                 - class RemoteObject (__call__): get an append iterator
5545                 - (_dispatch_dbus_method_call): get an append iterator
5546                 - class Object (emit_signal): get an append iterator
5547
5548         * python/examples/: Fixed up the examples to work with the new API
5549                 
5550 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5551
5552         * configure.in: Bump version up to 0.30.
5553
5554         * HACKING: Add a release item to bump the version number up after 
5555         a release.
5556
5557 2005-01-28  Havoc Pennington  <hp@redhat.com>
5558
5559         * doc/dbus-specification.xml: update to describe 16-bit types and
5560         dict entries
5561
5562         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5563         assertion
5564
5565         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5566         type
5567
5568         * dbus/dbus-marshal-recursive.c: implement
5569
5570 2005-01-27  Havoc Pennington  <hp@redhat.com>
5571
5572         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5573
5574         * configure.in: find the right type for 16 and 32 bit ints as well
5575         as 64
5576
5577         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5578         the 16-bit types so people don't have to stuff them in 32-bit or
5579         byte arrays.
5580
5581 2005-01-27  Havoc Pennington  <hp@redhat.com>
5582
5583         * dbus/dbus-message.c: byteswap the message if you init an
5584         iterator to read/write from it
5585         
5586         * dbus/dbus-marshal-byteswap.c: new file implementing 
5587         _dbus_marshal_byteswap()
5588
5589         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5590
5591 2005-01-26  Havoc Pennington  <hp@redhat.com>
5592         
5593         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5594         build, apparently - nobody noticed?)
5595         
5596 2005-01-26  Havoc Pennington  <hp@redhat.com>
5597
5598         * dbus/dbus-marshal-recursive.h: remove todo comment
5599
5600 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5601
5602         * Land the mono binding changes to conform to the new APIs.
5603
5604         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5605         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5606
5607         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5608         type code as a string.
5609         (InitAppending): Rename dbus_message_append_iter_init() to
5610         dbus_message_iter_init_append().
5611
5612         * mono/BusDriver.cs: Rename ServiceEventHandler to
5613         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5614         Rename ServiceOwnerChanged to NameOwnerChanged.
5615
5616         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5617         underlying C call.
5618
5619         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5620
5621         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5622         dbus_bus_acquire_service() to dbus_bus_request_name().
5623
5624         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5625         of Type.UnderlyingSystemType to get the correct element type for
5626         the array.
5627         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5628         dbus_message_get_{element|arg}_type() instead of
5629         dbus_message_iter_init_array_iterator().
5630         (Append): Replace dbus_message_iter_append_array() with
5631         dbus_message_iter_open_container() and
5632         dbus_message_iter_close_container().
5633
5634         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5635         types have been removed.
5636         
5637         * mono/DBusType/*.cs: Replace calls of
5638         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5639         but specify the type in the DllImport extern declaration.  Ditto
5640         for dbus_message_iter_append_[type]() ->
5641         dbus_message_iter_append_basic().
5642
5643         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5644         NameOwnerChangedHandler.
5645
5646 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5647
5648         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5649                 - get_base_service -> get_unique_name
5650                 - bus_get_base_service -> bus_get_unique_name
5651                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5652                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5653                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5654                 - bus_activate_service -> bus_start_service_by_name
5655                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5656                 - bus_acquire_service -> bus_request_name
5657                 - dbus_bus_acquire_service -> dbus_bus_request_name
5658                 - bus_service_exists -> bus_name_has_owner
5659                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5660
5661         * python/dbus.py: Rename of methods
5662                 - activate_service -> start_service_by_name
5663                 - bus_acquire_service -> bus_request_name
5664                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5665                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5666
5667         
5668 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5669
5670         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5671         signature for the method that can't be found.
5672
5673         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5674         the message has any arguments, we need to call
5675         _dbus_type_reader_get_current_type(), not
5676         _dbus_type_reader_has_next().
5677
5678 2005-01-24  Havoc Pennington  <hp@redhat.com>
5679
5680         * dbus/dbus-message-factory.c: more testing of message validation
5681
5682         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5683         header
5684
5685 2005-01-23  Havoc Pennington  <hp@redhat.com>
5686
5687         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5688         get this all working, not many tests in the framework yet though
5689
5690 2005-01-22  Havoc Pennington  <hp@redhat.com>
5691
5692         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5693         tutorial, based on work from David Wheeler.
5694
5695 2005-01-21  Havoc Pennington  <hp@redhat.com>
5696
5697         * dbus/dbus-bus.c: add more return_if_fail checks
5698
5699         * dbus/dbus-message.c (load_message): have the "no validation"
5700         mode (have to edit the code to toggle the mode for now though)
5701
5702         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5703         skips all validation; I want to use this at least for benchmark
5704         baseline, I'm not sure if it should be a publicly-available switch.
5705
5706 2005-01-21  Havoc Pennington  <hp@redhat.com>
5707
5708         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5709         toplevel doxygen group as the low-level API stuff
5710
5711         * dbus/dbus.h: note that libdbus is the low-level API
5712
5713 2005-01-20  Havoc Pennington  <hp@redhat.com>
5714
5715         * update-dbus-docs.sh: script to update docs on the web site, only
5716         works for me though. neener.
5717
5718 2005-01-20  Havoc Pennington  <hp@redhat.com>
5719
5720         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5721         code can reveal bugs in it
5722
5723 2005-01-20  Havoc Pennington  <hp@redhat.com>
5724
5725         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5726         select() version, patches from Tor Lillqvist
5727
5728 2005-01-20  Havoc Pennington  <hp@redhat.com>
5729
5730         * doc/dbus-tutorial.xml: replace > with &gt;
5731
5732         * bus/services.c (bus_registry_acquire_service): validate the name
5733         and return a better error if it's no good.
5734
5735         * doc/dbus-specification.xml: note NO_AUTO_START change
5736
5737         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5738         from AUTO_START, we're toggling the default
5739
5740         * bus/dispatch.c: adapt the tests to change of auto-start default
5741
5742 2005-01-18  Havoc Pennington  <hp@redhat.com>
5743
5744         * rename dbus-daemon-1 to dbus-daemon throughout
5745
5746 2005-01-18  Havoc Pennington  <hp@redhat.com>
5747
5748         * Throughout, grand renaming to strip out the use of "service",
5749         just say "name" instead (or "bus name" when ambiguous).  Did not
5750         change the internal code of the message bus itself, only the
5751         programmer-facing API and messages.
5752         
5753         * doc/dbus-specification.xml: further update the message bus section
5754         
5755         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5756         in error case
5757
5758 2005-01-17  Havoc Pennington  <hp@redhat.com>
5759
5760         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5761         ever
5762
5763         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5764         "invalid name character" not only non-ASCII
5765
5766         * doc/dbus-specification.xml: further update spec, message bus 
5767         parts are still out-of-date but the marshaling etc. stuff is now
5768         accurate-ish
5769
5770 2005-01-17  Havoc Pennington  <hp@redhat.com>
5771
5772         * doc/dbus-specification.xml: partially update spec
5773
5774 2005-01-17  Havoc Pennington  <hp@redhat.com>
5775
5776         * Throughout, align variant bodies according to the contained
5777         type, rather than always to 8. Should save a fair bit of space in
5778         message headers.
5779         
5780         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5781         fix handling of case where p == end
5782
5783         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5784
5785 2005-01-17  Havoc Pennington  <hp@redhat.com>
5786
5787         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5788
5789         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5790         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5791         are marshaling/unmarshaling a boolean.
5792
5793 2005-01-16  Havoc Pennington  <hp@redhat.com>
5794
5795         This is about it on what can be disabled/deleted from libdbus
5796         easily, back below 150K anyhow. Deeper cuts are more work than 
5797         just turning the code off as I've done here.
5798         
5799         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5800         signed int convenience funcs
5801
5802         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5803         verbose mode
5804
5805         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5806         things out of libdbus
5807
5808         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5809         
5810         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5811         tests-enabled-only, though it should probably be deleted)
5812
5813         * dbus/dbus-message-util.c: same stuff
5814
5815         * dbus/dbus-auth-util.c: same stuff
5816
5817 2005-01-16  Havoc Pennington  <hp@redhat.com>
5818
5819         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5820
5821         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5822         way for stripping down dbus-userdb.c stuff included in libdbus.
5823         Rename _dbus_parse_uid for consistency.
5824
5825 2005-01-16  Havoc Pennington  <hp@redhat.com>
5826
5827         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5828         name the assertion failed in
5829
5830         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5831         (_dbus_return_val_if_fail): assert that the name of the function
5832         containing the check doesn't start with '_', since we only want to 
5833         use checks on public functions
5834         
5835         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5836         checks to assertions
5837
5838         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5839         change checks to asserts for private function
5840
5841         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5842         to asserts for private function
5843
5844         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5845         broken assertion that was breaking make check
5846         (_dbus_type_reader_array_is_empty): remove this rather than fix
5847         it, was only used in assertions
5848
5849 2005-01-16  Havoc Pennington  <hp@redhat.com>
5850
5851         * test/unused-code-gc.py: hacky script to find code that's used
5852         only by the bus (not libdbus) or used only by tests or not used at
5853         all. It has some false alarms, but looks like we can clean up a
5854         lot of size from libdbus.
5855
5856         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5857         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5858         
5859 2005-01-16  Havoc Pennington  <hp@redhat.com>
5860
5861         * Add and fix docs according to Doxygen warnings throughout
5862         source.
5863         
5864         * dbus/dbus-marshal-recursive.c
5865         (_dbus_type_reader_array_is_empty): change this to just call
5866         array_reader_get_array_len() and make it static
5867
5868         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5869         from get_array_type
5870         (dbus_message_iter_init_append): rename from append_iter_init
5871
5872         * dbus/dbus-marshal-recursive.c
5873         (_dbus_type_reader_get_element_type): rename from
5874         _dbus_type_reader_get_array_type
5875
5876 2005-01-15  Havoc Pennington  <hp@redhat.com>
5877
5878         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5879
5880         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5881         when DBUS_DISABLE_ASSERT
5882         (_dbus_marshal_set_basic): be sure we align for the string length
5883
5884         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5885         this look faster
5886
5887         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5888         inline macro version
5889         (_dbus_string_set_byte): provide inline macro version
5890
5891 2005-01-15  Havoc Pennington  <hp@redhat.com>
5892
5893         * Land the new message args API and type system.
5894
5895         This patch is huge, but the public API change is not 
5896         really large. The set of D-BUS types has changed somewhat, 
5897         and the arg "getters" are more geared toward language bindings;
5898         they don't make a copy, etc.
5899
5900         There are also some known issues. See these emails for details
5901         on this huge patch:
5902         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5903         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5904         
5905         * dbus/dbus-marshal-*: all the new stuff
5906
5907         * dbus/dbus-message.c: basically rewritten
5908
5909         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5910         freed blocks to be all non-nul bytes so using freed memory is less
5911         likely to work right
5912
5913         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5914         DBUS_FAIL_MALLOC=N environment variable, so you can do
5915         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5916         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5917         thorough.
5918
5919         * qt/message.cpp: port to the new message args API
5920         (operator<<): use str.utf8() rather than str.unicode()
5921         (pretty sure this is right from the Qt docs?)
5922
5923         * glib/dbus-gvalue.c: port to the new message args API
5924
5925         * bus/dispatch.c, bus/driver.c: port to the new message args API
5926
5927         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5928         "locked" flag to TRUE and align_offset to 0; I guess we never
5929         looked at these anyhow, but seems cleaner.
5930
5931         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5932         move allocation padding macro to this header; use it to implement
5933         (_DBUS_STRING_STATIC): ability to declare a static string.
5934
5935         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5936         change to return TRUE if the interface is not set.
5937
5938         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5939         to dbus-marshal-validate.[hc]
5940
5941         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5942         dbus-internals.c
5943
5944         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5945         to dbus-marshal-*.[hc]
5946
5947         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5948         function here from dbus-marshal.c
5949
5950 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5951
5952         * NEWS: Update for 0.23.
5953
5954         * configure.in: Release 0.23.
5955
5956 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5957
5958         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5959         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5960         behind.
5961
5962         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5963         uninstall"
5964
5965         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5966         is an enum, get the enum's underlying type.  Another mono
5967         1.1.3 fix.
5968
5969 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5970
5971         Patch from Sjoerd Simons <sjoerd@luon.net>
5972
5973         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
5974         DESTDIR.  It breaks stuff.
5975
5976 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5977
5978         Patch from Tambet Ingo <tambet@ximian.com>
5979
5980         * mono/DBusType/Array.cs (Get): Get the underlying element type by
5981         calling type.GetElementType().  The code previously depended on
5982         broken Mono behavior, which was fixed in Mono 1.1.3.
5983
5984         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
5985         Activator.CreateInstance() so that the class's constructor is
5986         called with the right parameters.
5987
5988 2005-01-11  Joe Shaw  <joeshaw@novell.com>
5989
5990         Patch from Timo Teräs <ext-timo.teras@nokia.com>
5991
5992         * dbus/dbus-connection.c
5993         (_dbus_connection_queue_received_message_link): Call
5994         _dbus_connection_remove_timeout() instead of the _locked()
5995         variant, since it's always called from
5996         _dbus_connection_handle_watch(), which handles the locking.
5997         Removed the _locked() variant since it's no longer used.
5998
5999 2005-01-03  Havoc Pennington  <hp@redhat.com>
6000
6001         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6002         return
6003         
6004 2004-12-26  Havoc Pennington  <hp@redhat.com>
6005
6006         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6007
6008 2005-01-03  Havoc Pennington  <hp@redhat.com>
6009
6010         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6011         floating point
6012
6013         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6014
6015 2005-01-02  Havoc Pennington  <hp@redhat.com>
6016
6017         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6018
6019 2005-01-01  Havoc Pennington  <hp@redhat.com>
6020
6021         * configure.in: add -Wfloat-equal
6022
6023 2005-01-01  Havoc Pennington  <hp@redhat.com>
6024
6025         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6026         for a variety of reasons '==' doesn't do this.
6027
6028 2004-12-31  Havoc Pennington  <hp@redhat.com>
6029
6030         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6031         I keep wishing I had
6032
6033 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6034
6035         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6036
6037 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6038
6039         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6040         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6041         dbus-protocol.h.  Because they are defines and not enums they are not
6042         autogenerated.
6043
6044 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6045
6046         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6047         dbus_bus_activate_service
6048
6049         * python/dbus.py (Bus.activate_service): activate a service on the
6050         bus.
6051
6052 2004-12-24  Havoc Pennington  <hp@redhat.com>
6053
6054         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6055         file format has also changed and I haven't adapted to that yet
6056         
6057         * Makefile.am: load .gcno files from latest gcc
6058
6059 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6060         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6061
6062         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6063         lowlevel binding
6064
6065         * python/dbus.py (get_unix_user): Added binding to 
6066         call dbus_bindings.bus_get_unix_user
6067
6068         * python/extract.py: Modified the proto_pat regex to
6069         handle unsigned long
6070
6071 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6072
6073         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6074         better POSIX compliance.
6075
6076 2004-12-19  Havoc Pennington  <hp@redhat.com>
6077
6078         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6079         (_dbus_string_insert_8_aligned): new functions
6080
6081         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6082
6083 2004-12-18  Havoc Pennington  <hp@redhat.com>
6084
6085         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6086         macro
6087
6088         * dbus/dbus-message.c: fix a comment, and add a still-unused
6089         not-implemented function
6090
6091         * dbus/dbus-marshal.h: fix comment
6092
6093         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6094
6095 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6096
6097         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6098         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6099         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6100         Type.UnderlyingSystemType to get the actual system type
6101         underneath.  This code previously depended on the broken Mono
6102         behavior, which was fixed in 1.1.3.
6103
6104 2004-11-27  Havoc Pennington  <hp@redhat.com>
6105
6106         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6107         are disabled
6108         (_dbus_string_get_const_data): inline when asserts are disabled
6109
6110         * dbus/dbus-message.c: record the _dbus_current_generation of
6111         creation so we can complain if dbus_shutdown() is used improperly.
6112         Do this only if checks are enabled.
6113
6114         * dbus/dbus-connection.c: ditto
6115         
6116 2004-11-26  Havoc Pennington  <hp@redhat.com>
6117
6118         * test/glib/test-profile.c: add with_bus mode to profile echoes
6119         that go through the bus.
6120
6121         * test/glib/run-test.sh: add ability to run test-profile
6122
6123         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6124         config file reload.
6125
6126 2004-11-26  Havoc Pennington  <hp@redhat.com>
6127
6128         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6129         thing was implemented
6130
6131 2004-11-26  Havoc Pennington  <hp@redhat.com>
6132
6133         * test/glib/test-profile.c: tweak a bit, add support for some
6134         made-up minimal malloc overhead with plain sockets, since in 
6135         real life some sort of buffers are unavoidable thus we could 
6136         count them in the theoretical best case
6137
6138 2004-11-26  Havoc Pennington  <hp@redhat.com>
6139
6140         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6141         where I was trying to cache one too many messages
6142
6143 2004-11-26  Havoc Pennington  <hp@redhat.com>
6144
6145         * dbus/dbus-message.c: reimplement message cache as an array which 
6146         makes the cache about twice as fast and saves maybe 1.5% overall
6147
6148 2004-11-26  Havoc Pennington  <hp@redhat.com>
6149
6150         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6151         message cache lock here
6152
6153 2004-11-26  Havoc Pennington  <hp@redhat.com>
6154
6155         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6156         the "char byte_order" next to each other to save 4 bytes
6157         (dbus_message_new_empty_header): reduce preallocation, since the
6158         message cache should achieve a similar effect
6159         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6160         message cache that keeps a few DBusMessage around in a pool,
6161         another 8% speedup or so.
6162
6163         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6164
6165 2004-11-25  Havoc Pennington  <hp@redhat.com>
6166
6167         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6168         to write, without reading or blocking, try it before the poll()
6169         and skip the poll() if nothing remains to write. This is about a
6170         3% speedup in the echo client/server
6171
6172 2004-11-25  Havoc Pennington  <hp@redhat.com>
6173
6174         The primary change here is to always write() once before adding
6175         the write watch, which gives us about a 10% performance increase.
6176         
6177         * dbus/dbus-transport-unix.c: a number of modifications to cope
6178         with removing messages_pending
6179         (check_write_watch): properly handle
6180         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6181         messages_pending stuff
6182         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6183         AUTHENTICATED cases
6184         (unix_handle_watch): after writing, see if the write watch can be
6185         removed
6186         (unix_do_iteration): assert that write_watch/read_watch are
6187         non-NULL rather than testing that they aren't, since they 
6188         aren't allowed to be NULL. check_write_watch() at the end so 
6189         we add the watch if we did not finish writing (e.g. got EAGAIN)
6190
6191         * dbus/dbus-transport-protected.h: remove messages_pending call,
6192         since it resulted in too much inefficient watch adding/removing; 
6193         instead we now require that the transport user does an iteration 
6194         after queueing outgoing messages, and after trying the first
6195         write() we add a write watch if we got EAGAIN or exceeded our 
6196         max bytes to write per iteration setting
6197
6198         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6199         function
6200
6201         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6202         freed and then accessed, valgrind flagged this bug, fix it
6203
6204         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6205         as the last valid field plus 1, where really it is equal to the
6206         last valid field. Corrects some message corruption issues.
6207
6208         * dbus/dbus-mainloop.c: verbosity changes
6209
6210         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6211         instead of aborting in one of the test codepaths
6212
6213         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6214         caused not printing the pid ever again if a verbose was missing
6215         the newline at the end
6216         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6217
6218         * dbus/dbus-connection.c: verbosity changes; 
6219         (dbus_connection_has_messages_to_send): new function
6220         (_dbus_connection_message_sent): no longer call transport->messages_pending
6221         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6222         try to write() immediately, so we can avoid the write watch. This
6223         is the core purpose of this patchset
6224         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6225         dump the outgoing message queue, so nobody will get confused
6226         trying to send them or thinking stuff is pending to be sent
6227
6228         * bus/test.c: verbosity changes
6229
6230         * bus/driver.c: verbosity/assertion changes
6231
6232         * bus/dispatch.c: a bunch of little tweaks to get it working again
6233         because this patchset changes when/where you need to block.
6234
6235 2004-11-23  Havoc Pennington  <hp@redhat.com>
6236
6237         * test/glib/test-profile.c: modify to accept a plain_sockets
6238         argument in which case it will bench plain sockets instead of
6239         libdbus, for comparison purposes.
6240
6241 2004-11-22  Havoc Pennington  <hp@redhat.com>
6242
6243         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6244         threads for more time, so sysprof can get a grip on it.
6245
6246         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6247         pointless variable
6248
6249 2004-11-13  Havoc Pennington  <hp@redhat.com>
6250
6251         * test/glib/test-profile.c: fix this thing up a bit
6252
6253         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6254         preallocation sizes by a fair bit; not sure if this will be an
6255         overall performance win or not, but it does reduce reallocs.
6256
6257         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6258         the test hack that forced constant realloc if asserts are
6259         disabled, so we can profile sanely. Sprinkle in some
6260         _DBUS_UNLIKELY() which are probably pointless, but before I
6261         noticed the real performance problem I put them in.
6262         (_dbus_string_validate_utf8): micro-optimize this thing a little
6263         bit, though callgrind says it didn't help; then special-case
6264         ascii, which did help a lot; then be sure we detect nul bytes as
6265         invalid, which is a bugfix.
6266         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6267         superstition; use memset to nul the padding instead of a manual
6268         loop.
6269         (_dbus_string_get_length): inline this as a
6270         macro; it showed up in the profile because it's used for loop
6271         tests and so forth
6272
6273 2004-11-10  Colin Walters  <walters@verbum.org>
6274
6275         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6276         for extra paranoia.
6277
6278 2004-11-09  Colin Walters  <walters@verbum.org>
6279
6280         * dbus/dbus-string.c (_dbus_string_get_length): New
6281         function, writes DBusString to C buffer.
6282
6283         * dbus/dbus-string.h: Prototype it.
6284
6285         * dbus/dbus-message.c (dbus_message_type_to_string): New
6286         function, converts message type into C string.
6287
6288         * dbus/dbus-message.h: Prototype it.
6289
6290         * bus/selinux.c (bus_selinux_check): Take source pid,
6291         target pid, and audit data.  Pass audit data to
6292         avc_has_perm.
6293         (log_audit_callback): New function, appends extra
6294         audit information.
6295         (bus_selinux_allows_acquire_service): Also take
6296         service name, add it to audit data.
6297         (bus_selinux_allows_send): Also take message
6298         type, interface, method member, error name,
6299         and destination, and add them to audit data.
6300         (log_cb): Initialize func_audit.
6301         
6302         * bus/selinux.h (bus_selinux_allows_acquire_service)
6303         (bus_selinux_allows_send): Update prototypes 
6304
6305         * bus/services.c (bus_registry_acquire_service): Pass
6306         service name to bus_selinux_allows_acquire_service.
6307
6308         * bus/bus.c (bus_context_check_security_policy): Pass
6309         additional audit data.  Move assignment of dest
6310         to its own line.
6311
6312 2004-11-07  Colin Walters  <walters@verbum.org>
6313
6314         * dbus/dbus-transport-unix.c (do_authentication): Always
6315         initialize auth_completed.
6316         
6317 2004-11-07  Colin Walters  <walters@verbum.org>
6318
6319         * bus/bus.c (load_config): Break into three
6320         separate functions: process_config_first_time_only,
6321         process_config_every_time, and process_config_postinit.
6322         (process_config_every_time): Move call of
6323         bus_registry_set_service_context_table into
6324         process_config_postinit.
6325         (process_config_postinit): New function, does
6326         any processing that needs to happen late
6327         in initialization (and also on reload).
6328         (bus_context_new): Instead of calling load_config,
6329         open config parser here and call process_config_first_time_only
6330         and process_config_every_time directly.  Later, after
6331         we have forked but before changing UID,
6332         invoke bus_selinux_full_init, and then call
6333         process_config_postinit.
6334         (bus_context_reload_config): As in bus_context_new,
6335         load parse file inside here, and call process_config_every_time
6336         and process_config_postinit.
6337
6338         * bus/services.h, bus/services.c
6339         (bus_registry_set_service_context_table): Rename
6340         from bus_registry_set_sid_table.  Take string hash from config
6341         parser, and convert them here into SIDs.
6342
6343         * bus/config-parser.c (struct BusConfigParser): Have
6344         config parser only store a mapping of service->context
6345         string.
6346         (merge_service_context_hash): New function.
6347         (merge_included): Merge context string hashes instead
6348         of using bus_selinux_id_table_union.
6349         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6350         simply create a new string hash.
6351         (bus_config_parser_unref): Unref it.
6352         (start_selinux_child): Simply insert strings into hash,
6353         don't call bus_selinux_id_table_copy_over.
6354
6355         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6356         (bus_selinux_id_table_copy_over): Delete.
6357
6358 2004-11-03  Colin Walters  <walters@verbum.org>
6359
6360         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6361         variables.
6362         
6363 2004-11-03  Colin Walters  <walters@verbum.org>
6364
6365         * bus/test-main.c (test_pre_hook): Fix test logic,
6366         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6367
6368 2004-11-02  Colin Walters  <walters@redhat.com>
6369
6370         * bus/selinux.c (bus_selinux_init): Split into two functions,
6371         bus_selinux_pre_init and bus_selinux_post_init.
6372         (bus_selinux_pre_init): Just determine whether SELinux is
6373         enabled.
6374         (bus_selinux_post_init): Do everything else.
6375
6376         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6377         config file, and bus_selinux_post_init after.  This ensures that
6378         we don't lose the policyreload notification thread that
6379         bus_selinux_init created before forking previously.
6380         
6381         * bus/test-main.c (test_pre_hook): Update for split.
6382
6383 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6384
6385         Patch from Johan Fischer <linux@fischaz.com>
6386         
6387         * mono/doc/Makefile.am (install-data-local): Added directory
6388         install for DESTDIR
6389
6390 2004-10-29  Colin Walters  <walters@redhat.com>
6391
6392         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6393         parameter for fd to write pid to.       
6394
6395         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6396         
6397         * bus/bus.c (bus_context_new): Pass print_pid_fd
6398         to _dbus_become_daemon (bug #1720)
6399
6400 2004-10-29  Colin Walters  <walters@redhat.com>
6401
6402         Patch from Ed Catmur <ed@catmur.co.uk>
6403
6404         * mono/doc/Makefile.am (install-data-local): Handle
6405         DESTDIR.
6406
6407 2004-10-29  Colin Walters  <walters@redhat.com>
6408
6409         * bus/.cvsignore, qt/.cvsignore: Update.
6410
6411 2004-10-29  Colin Walters  <walters@redhat.com>
6412
6413         Patch from Kristof Vansant <de_lupus@pandora.be>
6414
6415         * configure.in: Detect Slackware.
6416         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6417         * bus/rc.messagebus.in: New file.
6418
6419 2004-10-29  Colin Walters  <walters@redhat.com>
6420
6421         * tools/dbus-monitor.c (filter_func): Return
6422         DBUS_HANDLER_RESULT_HANDLED in filter function
6423         for now.  See:
6424         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6425
6426 2004-10-29  Colin Walters  <walters@redhat.com>
6427
6428         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6429
6430         * bus/services.c (bus_registry_acquire_service): 
6431         Correctly retrieve service name from DBusString
6432         for printing.
6433
6434 2004-10-29  Colin Walters  <walters@redhat.com>
6435
6436         * dbus/dbus-glib.h: Update documentation to not
6437         refer to internal APIs.
6438
6439 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6440
6441         * mono/Arguments.cs (GetDBusTypeConstructor):
6442         type.UnderlyingSystemType will return "System.Byte" if you do it
6443         on "byte[]", which is not what we want.  So check the type.IsArray
6444         property and use System.Array instead.
6445
6446 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6447
6448         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6449         the DBusUserInfo structure since this is passed into the function.
6450         This would cause a double free when the function that allocated
6451         the structure would try to free it when an error occured.
6452
6453         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6454         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6455         for service activation to avoid 32bit/64bit parallel install issues
6456
6457 2004-10-21  Colin Walters  <walters@verbum.org>
6458
6459         * AUTHORS: Fix my email address, the @gnu.org one
6460         has been bouncing for some time.  Also add J5.
6461         
6462 2004-10-21  Colin Walters  <walters@verbum.org>
6463
6464         * dbus/dbus-transport-unix.c (do_authentication): Return
6465         authentication status to callers.
6466         (unix_handle_watch): If we completed authentication this round,
6467         don't do another read.  Instead wait until the next iteration,
6468         after we've read any pending data in the auth buffer.
6469         (unix_do_iteration): Ditto.
6470         (unix_handle_watch): Updated for new do_authentication prototype.
6471
6472 2004-10-18  Colin Walters  <walters@verbum.org>
6473
6474         * bus/selinux.c (bus_selinux_enabled): Handle
6475         --disable-selinux case.
6476         
6477 2004-10-18  Colin Walters  <walters@verbum.org>
6478
6479         * bus/selinux.h: Add bus_selinux_enabled.
6480         
6481         * bus/selinux.c (bus_selinux_enabled): Implement it.
6482         
6483         * bus/config-parser.c (struct include): Add
6484         if_selinux_enabled member.
6485         (start_busconfig_child): Parse if_selinux_enabled
6486         attribute for include.
6487         (bus_config_parser_content): Handle it.
6488
6489         * bus/session.conf.in, bus/system.conf.in: Add
6490         inclusion of context mapping to default config files;
6491         conditional on SELinux being enabled.
6492         
6493         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6494         
6495         * test/data/invalid-config-files/badselinux-1.conf, 
6496         test/data/invalid-config-files/badselinux-2.conf:
6497         Test files for bad syntax.
6498         
6499 2004-10-17  Colin Walters  <walters@verbum.org>
6500
6501         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6502         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6503         format specifier mismatches.
6504
6505 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6506
6507         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6508         format string.
6509
6510         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6511         pointer (bug #1540, Leonardo Boiko).
6512
6513 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6514
6515         * mono/BusDriver.cs: Changed BusDriver struct to remove
6516         the ServiceCreated and ServiceDeleted events and replace them
6517         with the new ServiceOwnerChanged event.
6518
6519         * mono/example/BusListener.cs: Added a new example program,
6520         which listens for and reports any ServiceOwnerChanged events
6521         on the bus driver.
6522
6523         * mono/example/Makefile.am (DESTDIR): Build changes for the
6524         new BusListener.cs example.
6525
6526 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6527
6528         * bus/signals.c (bus_match_rule_parse): validate the components of
6529         match rules (bug #1439).
6530
6531         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6532
6533 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6534
6535         * doc/dbus-specification.xml: document ServiceOwnerChanged
6536         signal.
6537         
6538         * bus/driver.c, bus/driver.h, bus/services.c: Use
6539         ServiceOwnerChanged signal instead of ServiceCreated and
6540         ServiceDeleted.
6541         
6542         * bus/dispatch.c: update testcase for the new signal.
6543
6544 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6545
6546         Patch from Nat Friedman <nat@novell.com>
6547
6548         * mono/Makefile.am: A number of small build fixes to allow "make
6549         distcheck" to succeed.
6550
6551         * mono/example/Makefile.am: "make distcheck" fixes.
6552
6553         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6554         key in @srcdir@.
6555
6556         * test/Makefile.am: "make distcheck" fixes.
6557
6558 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6559
6560         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6561
6562         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6563
6564         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6565         messages after the first one (bug #1389).
6566         
6567         * bus/dispatch.c (check_double_hello_message): add a test case for
6568         the double hello message bug.
6569         (check_existent_service_activation): fix check of spawning error.
6570         
6571 2004-09-16  David Zeuthen  <david@fubar.dk>
6572
6573         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6574
6575 2004-09-12  David Zeuthen  <david@fubar.dk>
6576
6577         Patch from Kay Sievers <kay.sievers@vrfy.org>
6578
6579         * bus/bus.c (bus_context_new):
6580         * bus/bus.h:
6581         * bus/main.c (usage)
6582         (main):
6583         Add commandline option --nofork to override configuration file
6584         setting.
6585
6586 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6587
6588         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6589         compilers don't like it (bug #974).
6590
6591 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6592
6593         * qt/connection.*: Applied patch by Jérôme Lodewyck
6594         <lodewyck@clipper.ens.fr> to integrate an existing
6595         connection into the Qt eventloop
6596
6597 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6598
6599         * mono/BusDriver.cs: Added.  This is a class for interacting with
6600         the org.freedesktop.DBus service.
6601
6602         * mono/Message.cs: Added a mechanism to expose the message that is
6603         currently being dispatched via the static Message.Current
6604         property.  Added Message.Sender and Message.Destination
6605         properties.
6606
6607         * mono/Handler.cs: Expose the dispatched message via
6608         Message.Current when handling method calls.
6609
6610         * mono/Service.cs: Expose the dispatched message via
6611         Message.Current when handling signal emissions.
6612         
6613         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6614         Connection.BaseService property.
6615
6616 2004-08-28  Havoc Pennington  <hp@redhat.com>
6617
6618         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6619
6620         More fixes from Steve Grubb
6621         
6622         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6623         (_dbus_listen_tcp_socket): fix fd leak
6624
6625         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6626         EINTR to a bit lower in the code
6627
6628 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6629
6630         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6631         TRUE if we are inquiring about the existence of the built-in
6632         org.freedesktop.DBus service.
6633
6634 2004-08-25  John Palmieri  <johnp@redhat.com>
6635         * bus/config-parser.c:
6636         (struct PolicyType): Add POLICY_CONSOLE
6637         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6638         (start_busconfig_child): Sets up console element when
6639         <policy at_console=""> is encountered in a policy file
6640         (append_rule_from_element): Convert console elements to console
6641         rules.
6642
6643         * bus/policy.c: 
6644         (bus_policy_create_client_policy): Add console rules to the client
6645         policy based on if the client is at the console
6646         (bus_policy_append_console_rule): New function for adding a
6647         console rule to a policy
6648         (bus_policy_merge): Handle console rule merging
6649
6650         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6651         where we check for console user files
6652         
6653         * dbus/dbus-sysdeps.c:
6654         (_dbus_file_exists): New function which checks if the given
6655         file exists
6656         (_dbus_user_at_console): New function which does the system
6657         specific process of checking if the user is at the console
6658
6659         * dbus/dbus-userdb.c:
6660         (_dbus_is_console_user): New function converts a UID to user name
6661         and then calls the system specific _dbus_user_at_console to 
6662         see if the user is at the console and therefor a console user
6663
6664 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6665
6666         * bus/config-parser.c (set_limit):
6667         * bus/dbus-daemon-1.1.in:
6668         * test/data/valid-config-files/many-rules.conf: set the
6669         max_match_rules_per_connection limt from the config file. 
6670
6671         * doc/busconfig.dtd: update the DTD.
6672
6673         * bus/driver.c: remove some unused variables.
6674
6675 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6676
6677         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6678         it's been replaced by dbus_g_bus_get
6679
6680 2004-08-23  Colin Walters  <walters@redhat.com>
6681
6682         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6683
6684         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6685
6686         * bus/selinux.c: Create a thread for policy reload notification.
6687         (bus_selinux_get_policy_root): Implement.
6688
6689         * bus/config-parser.c (start_busconfig_child)
6690         (bus_config_parser_content): Support SELinux-root relative
6691         inclusion.
6692
6693         * configure.in <HAVE_SELINUX>: Add -lpthread.
6694         
6695         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6696         (test_post_hook): Move memory checking into here.
6697         (test_pre_hook, test_post_hook): Move SELinux checks in
6698         here, but conditional on a DBUS_TEST_SELINUX environment
6699         variable.  Unfortunately we can't run the SELinux checks
6700         as a normal user, since they won't have any permissions
6701         for /selinux.  So this will have to be tested manually
6702         for now, until we have virtualization for most of
6703         libselinux.
6704         
6705 2004-08-23  Havoc Pennington  <hp@redhat.com>
6706
6707         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6708         drop supplementary groups, suggested by Steve Grubb
6709
6710 2004-08-20  Colin Walters  <walters@redhat.com>
6711
6712         * bus/config-parser.c (start_busconfig_child): Remove some unused
6713         variables.
6714         
6715         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6716         warning.
6717
6718 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6719
6720         * configure.in: If --enable-mono is passed in, if we can't find
6721         mono error out.
6722
6723         * mono/Makefile.am: Use /gacutil to install assemblies into the
6724         GAC and not /root.
6725
6726 2004-08-12  Havoc Pennington  <hp@redhat.com>
6727
6728         * NEWS: update for 0.22
6729
6730         * configure.in: release 0.22
6731
6732 2004-08-11  Colin Walters  <walters@redhat.com>
6733
6734         * tools/dbus-send.c (main, usage): Add --reply-timeout
6735         argument.
6736
6737 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6738
6739         * bus/bus.c (process_config_first_time_only): get rid of an unused
6740         DBusError that was causing a memoy leak (bug #989).
6741
6742         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6743         fix compilation on Solaris/Forte C (bug #974)
6744
6745         * bus/main.c (main): plug two minuscule memleaks.
6746
6747 2004-08-10  Havoc Pennington  <hp@redhat.com>
6748
6749         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6750
6751 2004-08-09  Havoc Pennington  <hp@redhat.com>
6752
6753         * COPYING: switch to Academic Free License version 2.1 instead of
6754         2.0, to resolve complaints about patent termination clause.
6755
6756 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6757
6758         * README: added documentation for the --enable-python 
6759         configure switch.
6760
6761 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6762
6763         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6764         _unref in the SELinux support.
6765
6766         * doc/busconfig.dtd: update DTD for SELinux support.
6767
6768         * bus/config-loader-libxml.c: fix error handler and parser
6769         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6770
6771         * configure.in: remove the warning about libxml2.
6772
6773         * dbus/dbus-bus.c: silence doxygen warning.
6774
6775 2004-07-31  Colin Walters  <walters@redhat.com>
6776
6777         * configure.in: Move #error in SELinux check to its own line.
6778
6779 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6780
6781         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6782         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6783         dbus_error_set.
6784
6785         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6786         broken by the change in the _SET_OOM macros.
6787
6788 2004-07-31  Colin Walters  <walters@redhat.com>
6789
6790         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6791         BUS_SET_OOM.
6792
6793 2004-07-31  Colin Walters  <walters@redhat.com>
6794
6795         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6796         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6797         AC_MSG_CHECKING.
6798
6799 2004-07-24  Havoc Pennington  <hp@redhat.com>
6800
6801         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6802
6803         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6804         functionality
6805
6806         * configure.in: add --enable-selinux
6807         
6808         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6809
6810         * bus/main.c (main): initialize and shut down selinux
6811
6812         * bus/connection.c: store SELinux ID on each connection, to avoid 
6813         repeated getting of the string context and converting it into 
6814         an ID
6815
6816         * bus/bus.c (bus_context_get_policy): new accessor, though it
6817         isn't used
6818         (bus_context_check_security_policy): check whether the security
6819         context of sender connection can send to the security context of
6820         recipient connection
6821
6822         * bus/config-parser.c: add parsing for <selinux> and <associate>
6823         
6824         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6825         implement dbus_connection_get_unix_fd()
6826
6827         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6828         function, used by the selinux stuff
6829         
6830 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6831
6832         * bus/config-loader-libxml.c: complete the implementation of
6833         libxml backend for config file loader. Doesn't work with full OOM
6834         test yet. 
6835         
6836         * configure.in: change error when selecting libxml into a warning.
6837         
6838         * test/data/invalid-config-files: add two non-well-formed XML
6839         files. 
6840         
6841         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6842         
6843         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6844         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6845         be necessary to read all the buffer. (bug #894)
6846
6847         * bus/activation.c (bus_activation_activate_service): fix a
6848         potential assertion failure (bug #896). Small optimization in the
6849         case of auto-activation messages.
6850
6851         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6852         add test case for byte-through-vararg bug (#901). patch by Kimmo
6853         Hämäläinen. 
6854
6855 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6856
6857         * python/dbus.py:
6858         * python/dbus_bindings.pyx.in:
6859         Add dbus.init_gthreads (), allow emit_signal to pass
6860         arguments to the signal.
6861         
6862 2004-07-24  Havoc Pennington  <hp@redhat.com>
6863
6864         * AUTHORS: add some people, not really comprehensively, let me
6865         know if I missed you
6866
6867 2004-07-24  Havoc Pennington  <hp@redhat.com>
6868
6869         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6870         Owen
6871
6872         * test/Makefile.am (DIST_SUBDIRS): here also
6873
6874 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6875
6876         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6877         breaking build on Solaris, reported by Farhad Saberi on the ML.
6878
6879         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6880         va_arg invocation to account for integer promotion in the case of
6881         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6882
6883         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6884         _dbus_list_get_first_link, not _dbus_list_get_first.
6885
6886         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6887
6888         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6889         handler functions so that the asserts in _dbus_object_subtree_unref
6890         do not fail.
6891
6892         * dbus/dbus-transport-unix.c (do_reading):
6893         _dbus_transport_queue_messages return value is of type
6894         dbus_bool_t, not DBusDispatchStatus.
6895         
6896 2004-07-19  David Zeuthen  <david@fubar.dk>
6897
6898         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6899
6900         * bus/dispatch.c:
6901         (check_get_connection_unix_user): Debug says GetProperty; but the
6902         method is called GetConnectionUnixUser
6903         (check_get_connection_unix_process_id): New function
6904         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6905         also call check_get_connection_unix_process_id()
6906         
6907         * bus/driver.c:
6908         (bus_driver_handle_get_connection_unix_process_id): New function,
6909         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6910         interface
6911         
6912         * dbus/dbus-auth.c:
6913         (handle_server_data_external_mech): Set pid from the credentials
6914         obtained from the socket
6915         
6916         * dbus/dbus-connection.c:
6917         (dbus_connection_get_unix_process_id): New function
6918         
6919         * dbus/dbus-connection.h: 
6920         Add prototype for dbus_connection_get_unix_process_id
6921         
6922         * dbus/dbus-transport.c:
6923         (_dbus_transport_get_unix_process_id): New function
6924         
6925         * dbus/dbus-transport.h:
6926         Add prototype for _dbus_transport_get_unix_process_id
6927         
6928 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6929
6930         * dbus/dbus-message.c: Message counter fix, patch by Christian
6931         Hammond <chipx86@gnupdate.org>
6932
6933 2004-07-18  Seth Nickell  <seth@gnome.org>
6934
6935         * python/dbus.py:
6936         * python/dbus_bindings.pyx.in:
6937         * python/tests/test-client.py:
6938
6939         Add dbus.ByteArray and dbus_bindings.ByteArray
6940         types so that byte streams can be passed back.
6941
6942         Give jdahlin the heaps of credit that are so
6943         rightfully his.
6944         
6945 2004-07-12  Seth Nickell  <seth@gnome.org>
6946
6947         * python/dbus.py:
6948
6949         Add message argument to the default object_method_handler
6950         function.
6951         
6952         * python/dbus_bindings.pyx.in:
6953
6954         Automatically return NIL when passed an empty list
6955         (we can't pass back a list since lists are typed
6956         and we don't have any idea what type the the client
6957         intended the list to be... :-( )
6958         
6959 2004-07-10  Seth Nickell  <seth@gnome.org>
6960
6961         * python/examples/Makefile.am:
6962
6963         Fix distcheck breakage caused by new examples.
6964
6965 2004-07-10  Seth Nickell  <seth@gnome.org>
6966
6967         * python/dbus.py:
6968
6969         Add "message" argument to service-side dbus.Object
6970         methods. This will break existing services written
6971         using the python bindings, but will allow extraction
6972         of all the message information (e.g. who its from).
6973
6974         Add improved "object oriented" signal handling/emission.
6975         
6976         * python/examples/example-service.py:
6977
6978         Nix this example.
6979         
6980         * python/examples/example-signal-emitter.py:
6981         * python/examples/example-signal-recipient.py:
6982
6983         Two new examples that show how to emit and receive
6984         signals using the new APIs.
6985         
6986         * python/examples/example-signals.py:
6987         * python/examples/gconf-proxy-service.py:
6988         * python/examples/gconf-proxy-service2.py:
6989
6990         Add "message" argument to service methods.
6991
6992 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
6993
6994         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
6995         * dbus/bus.c (dbus_bus_get_unix_user)
6996         * doc/dbus-specification.xml: implement GetConnectionUnixUser
6997         method of org.freedesktop.DBus interface.
6998
6999         * bus/dispatch.c: test case
7000
7001 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7002
7003         * python/Makefile.am: switched include directory from glib/ to dbus/
7004         since dbus-glib.h moved
7005  
7006 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7007
7008         * configure.in: prevent building the gcj stuff and libxml loader
7009         since they are broken.
7010
7011 2004-06-20  Havoc Pennington  <hp@redhat.com>
7012
7013         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7014         codes from the dbus error names
7015         
7016         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7017         as dbus/dbus-glib.h and that breakage is now visible due to 
7018         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7019         
7020         * glib/dbus-glib.h: s/gproxy/g_proxy/
7021
7022         * dbus/dbus-shared.h: new header to hold stuff shared with
7023         binding APIs
7024         
7025         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7026         than dbus-errors.h
7027
7028         * glib/dbus-glib.h (dbus_set_g_error): move to
7029         dbus-glib-lowlevel.h
7030
7031         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7032         of stuff to enable this
7033
7034         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7035
7036         * a bunch of other changes with the same basic "separate glib 
7037         bindings from dbus.h" theme
7038         
7039 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7040
7041         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7042
7043         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7044
7045 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7046
7047         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7048         the reply value of the ServiceExists message.
7049
7050 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7051
7052         * python/dbus_bindings.pyx.in: No longer need to parse path
7053         elements and pass them as arrays of strings.  The C API now
7054         accepts plain path strings.
7055         (_build_parsed_path): removed 
7056
7057 2004-06-07  Havoc Pennington  <hp@redhat.com>
7058
7059         * doc/TODO: remove auto-activation item since it's done; sort
7060         items by importance/milestone
7061
7062 2004-06-07  Havoc Pennington  <hp@redhat.com>
7063
7064         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7065         random signature when using REQUIRED_FIELDS (this hack won't work
7066         in the long term)
7067
7068         * dbus/dbus-message.c: change the signature to be a header field,
7069         instead of message->signature special-case string. Incremental
7070         step forward. Then we can fix up code to send the signature in the
7071         message, then fix up code to validate said signature, then fix up
7072         code to not put the typecodes inline, etc.
7073         (load_one_message): don't make up the signature after the fact
7074         (decode_header_data): require signature field for the known
7075         message types
7076
7077         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7078
7079         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7080
7081 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7082
7083         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7084
7085         * mono/Handler.cs: Updated to follow new path argument for
7086         (un-)registering objects.
7087
7088         * mono/example/Makefile.am:
7089         * mono/Makefile.am:
7090         * configure.in: Bumped required version for mono and use new -pkg
7091         syntax for deps
7092
7093 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7094
7095         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7096         registration functions take the path argument as char* instead of
7097         char**.
7098
7099         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7100         split off the path decompostion part of
7101         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7102         warnings. 
7103
7104         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7105         
7106 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7107  
7108         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7109         machine approach.  A state is implemented as a function that
7110         handles incoming events as specified for that state.
7111         
7112         * doc/dbus-specification.xml: Update auth protocol state machine
7113         specification to match implementation.  Remove some leftover
7114         base64 examples.
7115
7116 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7117
7118         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7119         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7120         quiet doxygen.
7121
7122         * Doxyfile.in: remove deprecated options.
7123
7124         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7125         glib/test-thread.h, glib/test-thread-client.c,
7126         glib/test-thread-server.c, glib/test-profile.c,
7127         glib/test-dbus-glib.c: remove these unused files.
7128
7129 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7130
7131         * dbus/dbus-object-tree.c
7132         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7133         non-fallback handlers (bug #684).
7134         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7135         (find_subtree_recurse): report wether the returned subtree is an
7136         exact match or a "fallback" match higher up in the tree.
7137         (object_tree_test_iteration): update test case.
7138
7139 2004-06-01  Seth Nickell  <seth@gnome.org>
7140
7141         * python/dbus_bindings.pyx.in:
7142         * python/tests/test-client.py:
7143
7144         Round off basic type support. Add dicts (yay!), and 
7145         remaining array types.
7146
7147         Make MessageIter more general so it works for dicts too.
7148
7149         Mark all loop variables as C integers.
7150         
7151 2004-05-31  Havoc Pennington  <hp@redhat.com>
7152
7153         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7154         "in" before "out"
7155
7156         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7157
7158         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7159         option that runs the tests, and start filling in some code
7160         including for starters just dumping the interfaces to stdout
7161
7162         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7163
7164         * test/data/valid-introspection-files/lots-of-types.xml: test of
7165         an example introspection file
7166
7167         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7168         "node" (I think...)
7169
7170 2004-05-31  Seth Nickell  <seth@gnome.org>
7171
7172         * python/dbus_bindings.pyx.in:
7173         * python/tests/test-client.py:
7174
7175         Test Suite: 1
7176         Python Bindings: 0
7177
7178         Fix string array memory trashing bug... oops...
7179
7180 2004-05-30  Seth Nickell  <seth@gnome.org>
7181
7182         * python/dbus.py:
7183
7184         Add a nicer-but-less-flexible alternate API for handling 
7185         calls to virtual objects in dbus.ObjectTree.
7186
7187         Screw up the argument order to the dbus.Object constructor
7188         for consistency with dbus.ObjectTree (and to make dbus_methods
7189         optional for future extension)
7190         
7191         * python/examples/Makefile.am:
7192         * python/examples/gconf-proxy-service.py:
7193         * python/examples/gconf-proxy-service2.py:
7194
7195         Alternate implementation of gconf-proxy-service using the
7196         nicer dbus.ObjectTree API.
7197         
7198         * python/examples/example-service.py:
7199         * python/tests/test-server.py
7200
7201         Reverse the argument order to deal with dbus.Object constructor
7202         changes.
7203         
7204 2004-05-30  Seth Nickell  <seth@gnome.org>
7205
7206         * python/examples/example-client.py:
7207         * python/examples/example-service.py:
7208
7209         Take it back. Lists seem to work but they're broken
7210         in the test suite. Make the base examples use
7211         lists (works fine).
7212
7213 2004-05-30  Seth Nickell  <seth@gnome.org>
7214
7215         * python/dbus_bindings.pyx.in:
7216         * python/tests/test-client.py:
7217
7218         Add some more tests and fix errors that crop up.
7219         Unfortunately, currently it seems like marshalling
7220         and unmarshalling of lists is completely broken :-(
7221
7222 2004-05-30  Seth Nickell  <seth@gnome.org>
7223
7224         * python/dbus_bindings.pyx.in:
7225
7226         Add support for ObjectPath type.
7227
7228         * python/dbus.py:
7229
7230         Refactor message handling code to a common function.
7231         
7232         * python/tests/test-client.py:
7233         * python/tests/test-server.py:
7234
7235         Add tests that check to make sure values of all types
7236         can be echoed from a service w/o mangling.
7237         
7238 2004-05-29  Seth Nickell  <seth@gnome.org>
7239
7240         * python/dbus.py:
7241
7242         Add ObjectTree class which allows implementation
7243         of trees of "virtual" objects. Basically the python
7244         wrapper for "register_fallback".
7245         
7246         * python/examples/Makefile.am
7247         * python/examples/gconf-proxy-client.py:
7248         * python/examples/gconf-proxy-service.py:
7249
7250         Implement a simple GConf proxy service that supports
7251         get/set on string and int GConf keys using the ObjectTree.
7252         
7253 2004-05-29  Seth Nickell  <seth@gnome.org>
7254
7255         * python/dbus.py:
7256         * python/examples/example-client.py:
7257         * python/examples/example-service.py:
7258         * python/examples/list-system-services.py:
7259
7260         Add SessionBus, SystemBus and ActivationBus classes
7261         so you don't need to know the special little BUS_TYPE
7262         flag.
7263         
7264 2004-05-29  Havoc Pennington  <hp@redhat.com>
7265
7266         * bus/config-parser.c (process_test_valid_subdir): temporarily
7267         stop testing config parser OOM handling, since expat has issues
7268         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7269
7270         * bus/dbus-daemon-1.1.in: change requested_reply to
7271         send_requested_reply/receive_requested_reply so we can send the
7272         replies, not just receive them.
7273
7274         * bus/config-parser.c: parse the new
7275         send_requested_reply/receive_requested_reply
7276
7277         * bus/policy.c (bus_client_policy_check_can_send): add
7278         requested_reply argument and use it
7279
7280         * bus/bus.c (bus_context_check_security_policy): pass through
7281         requested_reply status to message send check
7282
7283         * bus/system.conf.in: adapt to requested_reply change
7284         
7285 2004-05-28  Havoc Pennington  <hp@redhat.com>
7286
7287         * test/glib/test-service-glib.c (main): remove unused variable
7288
7289         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7290
7291         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7292         from the enum, no longer in use.
7293
7294         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7295         works right.
7296
7297         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7298         whether error_name passed in is a valid error name.
7299
7300 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7301
7302         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7303         OBJECT_PATH and OBJECT_PATH_ARRAY
7304
7305 2004-05-28  Seth Nickell  <seth@gnome.org>
7306
7307         * python/examples/Makefile.am:
7308
7309         Forget to add Makefile.am. Do not pass go.
7310
7311 2004-05-28  Michael Meeks  <michael@ximian.com>
7312
7313         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7314         fix no int64 case.
7315
7316         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7317
7318         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7319         (_dbus_message_iter_get_basic_type_array): impl.
7320         drastically simplify ~all relevant _get methods to use these.
7321         (_dbus_message_iter_append_basic_array),
7322         (dbus_message_iter_append_basic): impl
7323         drastically simplify ~all relevant _append methods to use these.
7324
7325         * dbus/dbus-message-builder.c (parse_basic_type) 
7326         (parse_basic_array, lookup_basic_type): impl.
7327         (_dbus_message_data_load): prune scads of duplicate /
7328         cut & paste coding.
7329
7330         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7331         (_dbus_demarshal_basic_type): implement,
7332         (demarshal_and_validate_len/arg): beef up debug.
7333         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7334
7335 2004-05-27  Seth Nickell  <seth@gnome.org>
7336
7337         * configure.in:
7338         * python/Makefile.am:
7339
7340         Include the example python apps in the tarball.
7341         
7342         * python/examples/list-system-services.py
7343
7344         Add a python new example that fetches the list of services
7345         from the system bus.
7346         
7347 2004-05-27  Seth Nickell  <seth@gnome.org>
7348
7349         * python/dbus.py:
7350         * python/dbus_bindings.pyx.in:
7351
7352         Fix failure to notify that a signal was not handled,
7353         resulted in hung functions.
7354         
7355 2004-05-25  Colin Walters  <walters@redhat.com>
7356
7357         * tools/dbus-monitor.c (main): Monitor all types of messages.
7358
7359 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7360
7361         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7362         which unregisters the object path and disposes the handler.
7363
7364 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7365  
7366         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7367          
7368         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7369         operands to && so we call dbus_message_iter_next () for the last
7370         argument also.
7371
7372 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7373
7374         * dbus/dbus-object-tree.c
7375         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7376         children even if the requested path isn't registered.
7377         (object_tree_test_iteration): test object_tree_list_registered.
7378
7379         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7380         it to 0.
7381         
7382 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7383
7384         * doc/TODO: Remove resolved items.
7385
7386         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7387         field.
7388         
7389         * bus/connection.c (bus_connections_expect_reply): Enforce the
7390         per-connection limit on pending replies.
7391         
7392         Patch from Jon Trowbridge <trow@ximian.com>:
7393  
7394         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7395         up a watch that triggers a config reload when one end of the pipe
7396         becomes readable.
7397         (signal_handler): Instead of doing the config reload in our SIGHUP
7398         handler, just write to the reload pipe and let the associated
7399         watch handle the reload when control returns to the main loop.
7400  
7401         * bus/driver.c (bus_driver_handle_reload_config): Added.
7402         Implements a ReloadConfig method for requesting a configuration
7403         file reload via the bus driver.
7404  
7405 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7406
7407         * HACKING: Updated release instructions concerning the wiki page.
7408
7409 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7410
7411         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7412         filter against auth->allowed_mechs; we only add allowed mechs in
7413         record_mechanisms().
7414  
7415         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7416         ALLOWED_MECHS to auth-script format so we can set the list of
7417         allowed mechanisms.
7418  
7419         * data/auth/client-out-of-mechanisms.auth-script: New test to
7420         check client disconnects when it is out of mechanisms to try.
7421  
7422         * dbus/dbus-auth.c (process_command): Remove check for lines
7423         longer that 1 MB; we only buffer up maximum 16 kB.
7424  
7425         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7426         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7427         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7428         assume there might be unused bytes.
7429  
7430         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7431         client-out-of-mechs, it is handled in process_reject(). Move check
7432         for max failures to send_rejected(), as it's a server-only thing.
7433
7434         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7435         send_auth(), send_data(), send_rejected(), send_error(),
7436         send_ok(), send_begin() and send_cancel().
7437
7438 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7439
7440         Remove base64 encoding, replace with hex encoding. Original patch
7441         from trow@ximian.com, added error handling.
7442
7443         * dbus/dbus-string.c (_dbus_string_base64_encode)
7444         (_dbus_string_base64_decode): Remove.
7445         (_dbus_string_hex_decode): Add end_return argument so we can
7446         distinguish between OOM and invalid hex encoding.
7447         (_dbus_string_test): Remove base64 tests and add test case for
7448         invalid hex.
7449
7450         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7451         Replace base64 with hex.
7452
7453         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7454         for invalid hex encoded data in auth protocol.
7455
7456 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7457
7458         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7459         leak.
7460
7461 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7462
7463         * mono/dbus-sharp.dll.config.in: Added for GAC
7464         * mono/dbus-sharp.snk: Added for GAC
7465         * mono/Assembly.cs.in: Added for GAC
7466         * mono/Makefile.am: Changes for GAC installation        
7467         * configure.in: Added refs for dbus-sharp.dll.config.in and
7468         Assembly.cs.in. More fixes for mono testing
7469         * mono/example/Makefile.am: Changed var to CSC
7470         * Makefile.am: Changed flag name to DBUS_USE_CSC
7471
7472 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7473
7474         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7475         * mono/doc/*: Added documentation framework
7476         * configure.in: Added monodoc check
7477         * README: Added description of mono configure flags
7478
7479 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7480
7481         * doc/dbus-specification.xml: Added a "Required" column to the 
7482         header fields table and changed the "zero or more" verbage in
7483         the above paragraph to read "The header must contain the required 
7484         named header fields and zero or more of the optional named header 
7485         fields".
7486         * test/data/invalid-messages/*.message: Added the required PATH 
7487         named header field to the tests so that they don't fail on 
7488         'Missing path field'
7489
7490 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7491
7492         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7493         the stack by implicitly defining variable and parameter types and
7494         removing the hack of defining C pointers as python objects and later
7495         casting them.
7496
7497 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7498
7499         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7500
7501 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7502
7503         * mono/DBusType/Dict.cs: Handle empty dicts
7504         * mono/DBusType/Array.cs: Handle empty arrays
7505         * mono/Arguments.cs: Handle empty arguments
7506
7507 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7508
7509         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7510         field
7511
7512 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7513
7514         * test/data/valid-messages/standard-*.message: Update message
7515         test scripts to new header field names.
7516
7517 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7518
7519         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7520         overflow to times_we_did_each_thing array which would chop off the
7521         first character of the failure_dir string. Increased the size of
7522         the array to 7 to reflect the number of random mutation functions
7523         we have.
7524
7525 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7526
7527         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7528         unix_server->watch here, it is unreffed in disconnect.
7529         (_dbus_server_new_for_tcp_socket): convert NULL host to
7530         "localhost" here so we don't append NULL to address.
7531         
7532         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7533         various addresses, including tcp with no explicit host.
7534
7535 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7536
7537         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7538         fix incorrect setting of .name_offset in the HeaderField (it was
7539         off by two bytes, positioned right after the name and typecode)
7540
7541         * bus/bus.c (bus_context_new, bus_context_unref): test before
7542         calling dbus_server_free_data_slot and _dbus_user_database_unref
7543         in case of an error.
7544
7545         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7546         by libdbus-gtool.
7547
7548 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7549
7550         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7551         _dbus_poll() instead of select().
7552
7553 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7554
7555         * bus/main.c (signal_handler): Reload the configuration files
7556         on SIGHUP.
7557         (main): Set up our SIGHUP handler.
7558
7559         * bus/bus.c (struct BusContext): Store the config file, user and
7560         fork flag in the BusContext.
7561         (process_config_first_time_only): Added.  Contains the code
7562         (previously in bus_context_new) for setting up the BusContext from
7563         the BusConfigParser that should only be run the first time the
7564         config files are read.
7565         (process_config_every_time): Added.  Contains the code (previously
7566         in bus_context_new) for setting up the BusContext from the
7567         BusConfigParser that should be run every time the config files are
7568         read.
7569         (load_config): Added.  Builds a BusConfigParser from the config
7570         files and passes the resulting structure off to
7571         process_config_first_time_only (assuming this is the first time)
7572         and process_config_every_time.
7573         (bus_context_new): All of the config-related code has been moved
7574         to process_config_first_time_only and process_config_every_time.
7575         Now this function just does the non-config-related initializations
7576         and calls load_config.
7577         (bus_context_reload_config): Added.
7578
7579 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7580
7581         * bus/driver.c (bus_driver_handle_get_service_owner):
7582         implement a GetServiceOwner method.
7583         * doc/dbus-specification.xml: document it.
7584         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7585         
7586         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7587         implement, using the bus GetServiceOwner method.
7588
7589         * test/glib/test-dbus-glib.c:
7590         use dbus_gproxy_new_for_service_owner so that we can receive the
7591         signal. 
7592
7593 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7594
7595         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7596         dbus/dbus-message.c, dbus/dbus-protocol.h
7597         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7598
7599         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7600         dbus/dbus-message.c, dbus/dbus-protocol.h
7601         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7602
7603         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7604         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7605         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7606
7607         * doc/dbus-specification.xml (Header Fields Table):
7608         s/SERVICE/DESTINATION
7609         s/SENDER_SERVICE/SENDER
7610
7611
7612 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7613
7614         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7615         a few seconds.
7616
7617 2004-04-13  Michael Meeks  <michael@ximian.com>
7618
7619         * glib/dbus-gobject.c (handle_introspect): split out
7620         (introspect_properties): this.
7621         (handle_introspect): implement this.
7622
7623         * test/glib/Makefile.am: use the absolute path so the bus
7624         daemon's chdir ("/") doesn't kill us dead.
7625
7626         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7627
7628 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7629
7630         * bus/config-parser.c (struct BusConfigParser): Added
7631         included_files field.
7632         (seen_include): Added.  Checks whether or not a file has already
7633         been included by any parent BusConfigParser.
7634         (bus_config_parser_new): Copy the parent's included_files.
7635         (include_file): Track which files have been included, and fail on
7636         circular inclusions.
7637         (process_test_valid_subdir): Changed printf to report if we are
7638         testing valid or invalid conf files.
7639         (all_are_equiv): Changed printf to be a bit clearer about
7640         what we are actually doing.
7641         (bus_config_parser_test): Test invalid configuration files.
7642
7643 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7644
7645         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7646         argument.  If non-null, the newly-constructed BusConfigParser will
7647         be initialized with the parent's BusLimits instead of the default
7648         values.
7649         (include_file): When including a config file, pass in
7650         the current parser as the parent and then copy the BusLimits
7651         from the included BusConfigParser pack to the current parser.
7652         (process_test_valid_subdir): Renamed from process_test_subdir.
7653         (process_test_equiv_subdir): Added.  Walks through a directory,
7654         descending into each subdirectory and loading the config files
7655         it finds there.  If any subdirectory contains two config files
7656         that don't produce identical BusConfigParser structs, fail.
7657         For now, the BusConfigParser's BusPolicies are not compared.
7658         (bus_config_parser_test): Call both process_test_valid_subdir and
7659         process_test_equiv_subdir.
7660
7661         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7662         argument and pass it along to the call to bus_config_parser_new.
7663         Also made a few small changes to allow this code to compile.
7664
7665         * bus/config-loader-expat.c (bus_config_load): Take a parent
7666         argument and pass it along to the call to bus_config_parser_new.
7667
7668         * bus/bus.c (bus_context_new): Load the config file
7669         with a NULL parent argument.
7670
7671 2004-03-29  Michael Meeks  <michael@ximian.com>
7672
7673         * glib/dbus-gobject.c (introspect_properties): split
7674         out, fix mangled 'while' flow control.
7675         (introspect_signals): implement.
7676         (handle_introspect): update.
7677
7678 2004-03-29  Michael Meeks  <michael@ximian.com>
7679
7680         * glib/dbus-gobject.c (set_object_property): split out / 
7681         re-work, use the property type, and not the message type(!)
7682         (get_object_property): ditto.
7683
7684         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7685         (dbus_gvalue_marshal): make this code re-usable, needed
7686         for signals too, also on both proxy and server side.
7687         Re-write for more efficiency / readability.
7688
7689 2004-03-29  Michael Meeks  <michael@ximian.com>
7690
7691         * dbus/dbus-message.c
7692         (dbus_message_new_error_printf): impl.
7693
7694         * dbus/dbus-connection.c
7695         (dbus_connection_unregister_object_path): fix warning.
7696
7697         * configure.in: fix no-mono-installed situation.
7698
7699 2004-03-27  Havoc Pennington  <hp@redhat.com>
7700
7701         Patch from Timo Teräs:
7702         
7703         * tools/dbus-send.c (main): if --print-reply, assume type is
7704         method call; support boolean type args
7705         
7706         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7707         bunch of memleak and logic bugs
7708         
7709 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7710
7711         * mono/Arguments.cs:
7712         * mono/Introspector.cs:
7713         * mono/Handler.cs:
7714         * mono/InterfaceProxy.cs:
7715         * mono/Message.cs
7716         * mono/ProxyBuilder.cs:
7717         * mono/Service.cs:
7718         Added InterfaceProxy class to avoid building proxies for every
7719         object.
7720
7721         * dbus-message.h:
7722         * dbus-message.c (dbus_message_append_args_valist)
7723         (dbus_message_iter_get_object_path)
7724         (dbus_message_iter_get_object_path_array)
7725         (dbus_message_iter_append_object_path)
7726         (dbus_message_iter_append_object_path_array):
7727         Added object_path iter functions to handle OBJECT_PATH arguments
7728         
7729 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7730
7731         First checkin of mono bindings.
7732         * configure.in:
7733         * Makefile.am:
7734         Build stuff for the bindings
7735         * dbus-sharp.pc.in: Added for pkgconfig
7736         
7737 2004-03-21  Havoc Pennington  <hp@redhat.com>
7738
7739         * test/test-service.c (main): remove debug spew
7740
7741 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7742
7743         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7744         arrays
7745
7746         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7747         (dbus_message_iter_init_array_iterator)
7748         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7749         indicate whether the iterator is empty
7750
7751         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7752         warnings
7753
7754 2004-03-19  Havoc Pennington  <hp@redhat.com>
7755
7756         * NEWS: 0.21 updates
7757
7758         * configure.in: 0.21
7759
7760         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7761         
7762         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7763         you don't need pyrex to make dist
7764
7765         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7766         sources; run moc
7767         
7768 2004-03-18  Richard Hult  <richard@imendio.com>
7769
7770         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7771         (dbus_message_set_auto_activation): Add doxygen docs.
7772
7773 2004-03-16  Richard Hult  <richard@imendio.com>
7774
7775         * bus/activation.c: (bus_activation_service_created),
7776         (bus_activation_send_pending_auto_activation_messages),
7777         (bus_activation_activate_service):
7778         * bus/activation.h:
7779         * bus/dispatch.c: (bus_dispatch),
7780         (check_nonexistent_service_auto_activation),
7781         (check_service_auto_activated),
7782         (check_segfault_service_auto_activation),
7783         (check_existent_service_auto_activation), (bus_dispatch_test):
7784         * bus/driver.c: (bus_driver_handle_activate_service):
7785         * bus/services.c: (bus_registry_acquire_service):
7786         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7787         (dbus_message_get_auto_activation):
7788         * dbus/dbus-message.h:
7789         * dbus/dbus-protocol.h: Implement auto-activation.
7790         
7791         * doc/dbus-specification.xml: Add auto-activation to the spec.
7792
7793 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7794
7795         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7796         fix a bug with CUSTOM types.
7797
7798         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7799         a unit test for this bug (used to fail).
7800
7801 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7802
7803         * bus/activation.c:
7804         (babysitter_watch_callback): notify all pending activations waiting for
7805           the same exec that the activation failed.
7806         (bus_activation_activate_service): shortcut the activation if we 
7807           already waiting for the same executable to start up.
7808
7809 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7810
7811         * bus/activation.c: 
7812         - Added service file reloading. 
7813           Each service files directory is kept in an hash table in 
7814           BusActivation and each BusActivationEntry knows what .service-file it
7815           was read from. So when you try to activate a service the bus will 
7816           check if it's been updated, removed or if new .service-files has 
7817           been installed.
7818         - Test code at the bottom for the service file reloading.
7819         * bus/test-main.c: (main):
7820         * bus/test.h:
7821         - added service reloading test.
7822         * dbus/dbus-sysdeps.c: 
7823         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7824
7825 2004-03-08  Michael Meeks  <michael@ximian.com>
7826
7827         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7828         bail immediately if disconnected, to avoid busy loop.
7829
7830         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7831         cleanup cut/paste/inefficiency.
7832
7833 2004-03-01  David Zeuthen  <david@fubar.dk>
7834
7835         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7836         bug where args were used twice. This bug resulted in a segfault
7837         on a Debian/PPC system when starting the messagebus daemon. Include
7838         dbus-sysdeps.h for DBUS_VA_COPY
7839
7840         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7841
7842         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7843         appropriate va_copy implementation. From GLib
7844         
7845 2004-02-24  Joe Shaw  <joe@ximian.com>
7846
7847         * bus/services.c (bus_registry_acquire_service): We need to pass
7848         in the service name to dbus_set_error() to prevent a crash.
7849
7850 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7851
7852         * AUTHORS: Reveal my True identity.
7853
7854 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7855
7856         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7857         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7858
7859 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7860
7861         * doc/TODO: Added not about better error check of configuration files.
7862
7863 2003-12-02  Richard Hult  <richard@imendio.com>
7864
7865         * Update AFL version to 2.0 throughout the source files to reflect
7866         the update that was done a while ago.
7867
7868 2003-12-02  Richard Hult  <richard@imendio.com>
7869
7870         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7871         wrote_dict_key to FALSE on the iter that the dict is appended to,
7872         just like when appending other types. Fixes a bug where a dict
7873         couldn't be put inside a dict.
7874         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7875         (message_iter_test, _dbus_message_test): Add test case for dict
7876         inside dict.
7877
7878 2003-12-01  David Zeuthen  <david@fubar.dk>
7879
7880         * python/dbus.py: Add the actual message when calling the reciever
7881         of a signal such that parameters can be inspected. Add the method
7882         remove_signal_receiver
7883         
7884 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7885
7886         * bus/*.[ch]:
7887         * dbus/*.[ch]:
7888         * glib/*.[ch]: Made ref functions return the pointer
7889
7890 2003-11-25  Zack Rusin  <zack@kde.org>
7891
7892         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7893
7894         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7895         wrappers,
7896
7897         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7898         the Integrator and to better fit with the server,
7899
7900 2003-11-24  Zack Rusin  <zack@kde.org>
7901
7902         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7903         the integrator handles it now
7904
7905         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7906         since QTimer wasn't really meant to be used the way DBusTimeout is
7907
7908 2003-11-24  Zack Rusin  <zack@kde.org>
7909
7910         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7911         Integrator class which integrates D-BUS with the Qt event loop,
7912
7913         * qt/connection.h, qt/connection.cpp: Move all the code which
7914         was dealing with D-BUS integration to the Integrator class,
7915         and start using Integrator,
7916
7917 2003-11-23  Zack Rusin  <zack@kde.org>
7918
7919         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7920         wrapper
7921
7922         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7923         switching namespaces to DBusQt, reworking the class,
7924
7925         * Makefile.cvs: switching dependencies so that it matches KDE 
7926         schematics,
7927         
7928         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7929         the library
7930
7931 2003-11-19  Havoc Pennington  <hp@redhat.com>
7932
7933         * NEWS: update
7934
7935         * configure.in: bump version to 0.20
7936
7937         * configure.in (have_qt): add yet another place to look for qt
7938         (someone hand trolltech a .pc file...)
7939
7940 2003-11-01  Havoc Pennington  <hp@redhat.com>
7941
7942         * doc/dbus-specification.xml: add state machine docs on the auth
7943         protocol; just a first draft, I'm sure it's wrong.      
7944
7945 2003-10-28  David Zeuthen  <david@fubar.dk>
7946
7947         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7948         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7949         
7950 2003-10-28  Havoc Pennington  <hp@redhat.com>
7951
7952         * dbus/dbus-message.c (get_next_field): delete unused function
7953
7954 2003-10-28  Havoc Pennington  <hp@redhat.com>
7955
7956         * bus/expirelist.c (do_expiration_with_current_time): detect
7957         failure of the expire_func due to OOM
7958
7959         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7960
7961         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7962         NoReply error that's now created by the bus when the service exits
7963
7964 2003-10-28  Havoc Pennington  <hp@redhat.com>
7965
7966         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7967         tests for set_path, set_interface, set_member, etc.
7968
7969         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
7970
7971         * dbus/dbus-message.c (set_string_field): always just delete and
7972         re-append the field; accept NULL for deletion
7973         (re_align_fields_recurse): reimplement
7974         
7975 2003-10-26  Havoc Pennington  <hp@redhat.com>
7976
7977         * dbus/dbus-connection.c: fix docs to properly describe the
7978         disconnected message
7979         (_dbus_connection_notify_disconnected): remove this function; 
7980         we can't synchronously add the disconnected message, we have to 
7981         do it after we've queued any remaining real messages
7982         (_dbus_connection_get_dispatch_status_unlocked): queue the
7983         disconnect message only if the transport has finished queueing all
7984         its real messages and is disconnected.
7985         (dbus_connection_disconnect): update the dispatch status here
7986
7987 2003-10-22  Havoc Pennington  <hp@redhat.com>
7988
7989         * bus/bus.c (bus_context_check_security_policy): fix up assertion
7990
7991         * bus/connection.c (bus_transaction_send_from_driver): set the
7992         destination to the connection's base service
7993
7994 2003-10-20  Havoc Pennington  <hp@redhat.com>
7995
7996         hmm, make check is currently not passing.
7997         
7998         * doc/dbus-specification.xml: add requirement that custom type
7999         names follow the same rules as interface names.
8000
8001         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8002         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8003         'map'
8004
8005         * doc/dbus-specification.xml: update type codes to match
8006         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8007         CUSTOM. Add type OBJECT_PATH to the spec.
8008
8009 2003-10-17  Havoc Pennington  <hp@redhat.com>
8010
8011         * bus/driver.c (create_unique_client_name): use "." as separator
8012         in base service names instead of '-'
8013
8014         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8015         byte at the end of the string
8016
8017         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8018         optimization macros since string validation seems to be a slow
8019         point.
8020         
8021         * doc/dbus-specification.xml: restrict valid
8022         service/interface/member/error names. Add test suite code for the
8023         name validation.
8024
8025         * dbus/dbus-string.c: limit service/interface/member/error names 
8026         to [0-9][A-Z][a-z]_
8027
8028         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8029         format arg to verbose spew
8030
8031         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8032         memory, return instead of g_error
8033
8034         * test/test-service.c (path_message_func): support emitting a
8035         signal on request
8036
8037         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8038         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8039         assuming the activation bus was the session bus so that services
8040         started manually will still register.
8041         (init_connections_unlocked): fix so that in OOM situation we get
8042         the same semantics when retrying the function
8043         
8044         * test/test-service.c (main): change to use path registration, to
8045         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8046         than DBUS_BUS_SESSION
8047
8048 2003-10-16  Havoc Pennington  <hp@redhat.com>
8049
8050         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8051
8052         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8053         coverage of the tests
8054         (coverage-report.txt): don't move the .da and .bbg files around
8055
8056 2003-10-16  Havoc Pennington  <hp@redhat.com>
8057
8058         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8059         to put there
8060
8061 2003-10-16  Havoc Pennington  <hp@redhat.com>
8062
8063         * bus/connection.c (bus_pending_reply_expired): either cancel or
8064         execute, not both
8065         (bus_connections_check_reply): use unlink, not remove_link, as we
8066         don't want to free the link; fixes double free mess
8067
8068         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8069         where no reply was received
8070
8071         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8072         fix a refcount leak
8073
8074         * bus/signals.c (match_rule_matches): add special cases for the
8075         bus driver, so you can match on sender/destination for it.
8076
8077         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8078         DBUS_PRINT_BACKTRACE is set
8079
8080         * dbus/dbus-internals.c: add pid to assertion failure messages
8081
8082         * dbus/dbus-connection.c: add message type code to the debug spew
8083
8084         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8085         sender=foo not service=foo
8086
8087         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8088         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8089         DBUS_ACTIVATION_ADDRESS instead
8090
8091         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8092         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8093
8094         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8095         context struct
8096
8097         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8098         (dbus_message_iter_get_object_path_array): new function (half
8099         finished, disabled for the moment)
8100         
8101         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8102         DBUS_MESSAGE_TYPE_ERROR
8103
8104         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8105         avoid redirecting stderr to /dev/null
8106         (babysit): close stdin if not doing the "exit_with_session" thing
8107
8108         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8109         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8110         stdout/stdin, so things don't get confused
8111         
8112         * bus/system.conf.in: fix to allow replies, I modified .conf
8113         instead of .conf.in again.
8114
8115 2003-10-14  David Zeuthen  <david@fubar.dk>
8116
8117         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8118         argtype to arg_type when raising unknown arg type exception.
8119         Changed type list to reflect the changes in dbus-protocol.h so 
8120         the bindings actually work.
8121
8122 2003-10-14  Havoc Pennington  <hp@redhat.com>
8123
8124         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8125         to have a bug keeping it from outputting the .da files sometimes
8126         (string_get_string): don't append garbage nul bytes to the string.
8127
8128 2003-10-15  Seth Nickell  <seth@gnome.org>
8129
8130         * python/Makefile.am:
8131
8132         Include dbus_h_wrapper.h in the dist tarball.
8133
8134 2003-10-14  Havoc Pennington  <hp@redhat.com>
8135
8136         * bus/bus.c (bus_context_check_security_policy): revamp this to
8137         work more sanely with new policy-based requested reply setup
8138
8139         * bus/connection.c (bus_transaction_send_from_driver): set bus
8140         driver messages as no reply
8141
8142         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8143         requested_reply attribute on allow/deny rules
8144
8145         * bus/system.conf: add <allow requested_reply="true"/>
8146
8147         * bus/driver.c (bus_driver_handle_message): fix check for replies
8148         sent to the bus driver, which was backward. How did this ever work
8149         at all though? I think I'm missing something.
8150
8151         * dbus/dbus-message.c (decode_header_data): require error and
8152         method return messages to have a reply serial field to be valid
8153         (_dbus_message_loader_queue_messages): break up this function;
8154         validate that reply serial and plain serial are nonzero; 
8155         clean up the OOM/error handling.
8156         (get_uint_field): don't return -1 from this
8157         (dbus_message_create_header): fix signed/unsigned bug
8158
8159         * bus/connection.c (bus_connections_expect_reply): save serial of
8160         the incoming message, not reply serial
8161
8162 2003-10-14  Havoc Pennington  <hp@redhat.com>
8163
8164         * bus/connection.c: implement pending reply tracking using
8165         BusExpireList
8166
8167         * bus/bus.c (bus_context_check_security_policy): verify that a
8168         reply is pending in order to allow a reply to be sent. Deny 
8169         messages of unknown type.
8170
8171         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8172
8173         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8174         (bus_context_get_reply_timeout): new
8175
8176 2003-10-13  Seth Nickell  <seth@gnome.org>
8177
8178         * python/Makefile.am:
8179
8180         Pass "make distcheck": remove a couple files from DIST_FILES
8181         that weren't included in the final version.
8182
8183 2003-10-12  Havoc Pennington  <hp@pobox.com>
8184
8185         Added test code that 1) starts an actual bus daemon and 2) uses
8186         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8187         more testing possible, but this is the basic framework.
8188         
8189         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8190         empty proxy lists from the proxy list hash
8191
8192         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8193         couple of return_if_fail checks
8194
8195         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8196         to allocate, so everything is cleared to NULL as it should be.
8197
8198         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8199         source as data to dbus_connection_set_timeout_functions() as the 
8200         timeout functions expected
8201
8202         * test/glib/run-test.sh: add a little script to start up a message
8203         bus and run tests using it
8204
8205         * tools/dbus-launch.1: updates
8206
8207         * tools/dbus-launch.c (main): add --config-file option
8208
8209         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8210         that could never be reached.
8211
8212         * dbus/dbus-message.c (dbus_message_new_method_return) 
8213         (dbus_message_new_error, dbus_message_new_signal): set the
8214         no-reply-expected flag on all these. Redundant, but may
8215         as well be consistent.
8216
8217 2003-10-11  Havoc Pennington  <hp@pobox.com>
8218
8219         * test/decode-gcov.c (function_solve_graph): make broken block
8220         graph a nonfatal error since it seems to be broken. Need to debug
8221         this.
8222
8223         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8224         can't just check type > INVALID < LAST anymore
8225
8226         * dbus/dbus-message.c (dbus_message_get_signature): new function
8227         (dbus_message_has_signature): new function
8228         (struct DBusMessage): add signature field (right now it isn't sent
8229         over the wire, just generated on the fly)
8230         (dbus_message_copy): copy the signature, and init strings to
8231         proper length to avoid some reallocs
8232         (dbus_message_iter_init_array_iterator): return void, since it
8233         can't fail
8234         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8235         (_dbus_message_loader_queue_messages): add silly temporary hack to
8236         fill in message->signature on load
8237
8238         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8239         characters, so they are relatively human-readable.
8240
8241 2003-10-11  Havoc Pennington  <hp@pobox.com>
8242
8243         * dbus/dbus-message.c (_dbus_message_test): add more test
8244         coverage, but #if 0 for now since they uncover a bug 
8245         not fixed yet; I think in re_align_field_recurse()
8246         (re_align_field_recurse): add FIXME about broken assertion
8247
8248         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8249
8250         * bus/connection.c: share a couple code bits with expirelist.c
8251
8252         * bus/expirelist.h, bus/expirelist.c: implement a generic
8253         expire-items-after-N-seconds facility, was going to share between
8254         expiring connections and replies, decided not to use for expiring
8255         connections for now.
8256
8257         * COPYING: include AFL 2.0 (still need to change all the file headers)
8258
8259 2003-10-09  Havoc Pennington  <hp@redhat.com>
8260
8261         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8262         gcc 3.3. Not that we do anything about it yet.
8263
8264         * bus/signals.c (bus_match_rule_parse): impose max length on the
8265         match rule text
8266
8267         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8268
8269 2003-10-09  Havoc Pennington  <hp@redhat.com>
8270
8271         Make matching rules theoretically work (add parser).
8272         
8273         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8274         the case where destination is explicitly specified as bus driver
8275         and someone else is eavesdropping.
8276         
8277         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8278         definition of eavesdropping and assertion
8279
8280         * tools/dbus-send.c (main): use dbus_message_type_from_string
8281
8282         * bus/signals.c (bus_match_rule_parse): implement
8283
8284         * dbus/dbus-message.c (dbus_message_type_from_string): new
8285
8286         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8287
8288 2003-10-02  Havoc Pennington  <hp@pobox.com>
8289
8290         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8291         dbus_gproxy_oneway_call
8292
8293         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8294         (dbus_server_setup_with_g_main): fix to allow calling them more
8295         than once on the same args
8296         (dbus_bus_get_with_g_main): new function
8297
8298 2003-10-02  Havoc Pennington  <hp@redhat.com>
8299
8300         * doc/dbus-tutorial.xml: write some stuff
8301
8302 2003-09-29  Havoc Pennington  <hp@pobox.com>
8303
8304         * configure.in: split checks for Doxygen from XML docs, check for
8305         xmlto
8306
8307         * doc/Makefile.am: XML-ify all the docs, and add a blank
8308         dbus-tutorial.xml
8309
8310 2003-09-29  Havoc Pennington  <hp@pobox.com>
8311
8312         * Merge dbus-object-names branch. To see the entire patch 
8313         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8314         it's huuuuge though.
8315         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8316         
8317 2003-09-28  Havoc Pennington  <hp@pobox.com>
8318
8319         * HACKING: update to reflect new server
8320
8321 2003-09-26  Seth Nickell  <seth@gnome.org>
8322
8323         * python/dbus.py:
8324         * python/examples/example-signals.py:
8325
8326         Start implementing some notions of signals. The API
8327         is really terrible, but they sort of work (with the
8328         exception of being able to filter by service, and to
8329         transmit signals *as* a particular service). Need to
8330         figure out how to make messages come from the service
8331         we registered :-(
8332         
8333         * python/dbus_bindings.pyx.in:
8334
8335         Removed duplicate message_handler callbacks.
8336         
8337 2003-09-25  Havoc Pennington  <hp@redhat.com>
8338
8339         * bus/session.conf.in: fix my mess
8340
8341 2003-09-25  Havoc Pennington  <hp@pobox.com>
8342
8343         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8344
8345 2003-09-25  Seth Nickell  <seth@gnome.org>
8346
8347         * python/examples/example-service.py:
8348
8349         Johan notices complete wrong code in example-service, but
8350         completely wrong in a way that works exactly the same (!).
8351         Johan is confused, how could this possibly work? Example
8352         code fails to serve purpose of making things clear.
8353         Seth fixes.
8354
8355 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8356
8357         * doc/dbus-specification.sgml: don't require header fields
8358         to be 4-byte aligned and specify that fields should be
8359         distinguished from padding by the fact that zero is not
8360         a valid field name.
8361         
8362         * doc/TODO: remove re-alignment item and add item to doc
8363         the OBJECT_PATH type.
8364         
8365         * dbus/dbus-message.c:
8366         (HeaderField): rename the original member to value_offset
8367         and introduce a name_offset member to keep track of where
8368         the field actually begins.
8369         (adjust_field_offsets): remove.
8370         (append_int_field), (append_uint_field),
8371         (append_string_field): don't align the start of the header
8372         field to a 4-byte boundary.
8373         (get_next_field): impl finding the next marhsalled field
8374         after a given field.
8375         (re_align_field_recurse): impl re-aligning a number of
8376         already marshalled fields.
8377         (delete_field): impl deleting a field of any type and
8378         re-aligning any following fields.
8379         (delete_int_or_uint_field), (delete_string_field): remove.
8380         (set_int_field), (set_uint_field): no need to re-check
8381         that we have the correct type for the field.
8382         (set_string_field): ditto and impl re-aligning any
8383         following fields.
8384         (decode_header_data): update to take into account that
8385         the fields aren't 4-byte aligned any more and the new
8386         way to distinguish padding from header fields. Also,
8387         don't exit when there is too much header padding.
8388         (process_test_subdir): print the directory.
8389         (_dbus_message_test): add test to make sure a following
8390         field is re-aligned correctly after field deletion.
8391         
8392         * dbus/dbus-string.[ch]:
8393         (_dbus_string_insert_bytes): rename from insert_byte and
8394         allow the insert of multiple bytes.
8395         (_dbus_string_test): test inserting multiple bytes.
8396
8397         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8398         warning note to docs about having to re-align any
8399         marshalled values following the string.
8400         
8401         * dbus/dbus-message-builder.c:
8402         (append_string_field), (_dbus_message_data_load):
8403         don't align the header field.
8404         
8405         * dbus/dbus-auth.c: (process_test_subdir): print the
8406         directory.
8407         
8408         * test/break-loader.c: (randomly_add_one_byte): upd. for
8409         insert_byte change.
8410         
8411         * test/data/invalid-messages/bad-header-field-alignment.message:
8412         new test case.
8413         
8414         * test/data/valid-messages/unknown-header-field.message: shove
8415         a dict in the unknown field.
8416
8417 2003-09-25  Seth Nickell  <seth@gnome.org>
8418
8419         * python/dbus.py:
8420         * python/dbus_bindings.pyx.in:
8421
8422         Handle return values.
8423         
8424         * python/examples/example-client.py:
8425         * python/examples/example-service.py:
8426
8427         Pass back return values from the service to the client.
8428         
8429 2003-09-24  Seth Nickell  <seth@gnome.org>
8430
8431         * python/dbus.py:
8432
8433         Connect Object methods (when you are sharing an object) up... pass
8434         in a list of methods to be shared. Sharing all the methods just
8435         worked out too weird. You can now create nice Services over the
8436         DBus in Python. :-)
8437         
8438         * python/dbus_bindings.pyx.in:
8439
8440         Keep references to user_data tuples passed into C functions so 
8441         Python doesn't garbage collect on us.
8442
8443         Implement MethodReturn and Error subclasses of Message for creating
8444         DBusMessage's of those types.
8445         
8446         * python/examples/example-client.py:
8447         * python/examples/example-service.py:
8448
8449         Simple example code showing both how create DBus services and objects,
8450         and how to use them.
8451
8452 2003-09-23  Havoc Pennington  <hp@pobox.com>
8453
8454         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8455
8456 2003-09-23  Havoc Pennington  <hp@redhat.com>
8457
8458         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8459         (dbus_gproxy_disconnect_signal): implement
8460         (dbus_gproxy_manager_remove_signal_match): implement
8461         (dbus_gproxy_manager_add_signal_match): implement
8462         (dbus_gproxy_oneway_call): implement
8463
8464 2003-09-23  Havoc Pennington  <hp@pobox.com>
8465
8466         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8467         subclass. This means dropping the transparent thread safety of the
8468         proxy; you now need a separate proxy per-thread, or your own
8469         locking on the proxy. Probably right anyway.
8470         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8471
8472 2003-09-22  Havoc Pennington  <hp@redhat.com>
8473
8474         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8475
8476 2003-09-21  Seth Nickell  <seth@gnome.org>
8477
8478         First checkin of the Python bindings.
8479         
8480         * python/.cvsignore:
8481         * python/Makefile.am:
8482         * python/dbus_bindings.pyx.in:
8483         * python/dbus_h_wrapper.h:
8484
8485         Pieces for Pyrex to operate on, building a dbus_bindings.so
8486         python module for low-level access to the DBus APIs.
8487         
8488         * python/dbus.py:
8489
8490         High-level Python module for accessing DBus objects.
8491
8492         * configure.in:
8493         * Makefile.am:
8494
8495         Build stuff for the python bindings.
8496
8497         * acinclude.m4:
8498
8499         Extra macro needed for finding the Python C header files.
8500
8501 2003-09-21  Havoc Pennington  <hp@pobox.com>
8502
8503         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8504         implementing the proxy manager, didn't get very far.
8505
8506         * dbus/dbus-bus.c (dbus_bus_add_match): new
8507         (dbus_bus_remove_match): new
8508
8509         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8510         path_name argument; adjust the other not-yet-implemented 
8511         gproxy constructors to be what I think they should be.
8512
8513 2003-09-21  Havoc Pennington  <hp@pobox.com>
8514
8515         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8516         by default for message bus connections.
8517
8518         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8519         exit_on_disconnect flag is set and we process the disconnected
8520         signal.
8521         (dbus_connection_set_exit_on_disconnect): new function
8522
8523 2003-09-21  Havoc Pennington  <hp@pobox.com>
8524
8525         Get matching rules mostly working in the bus; only actually
8526         parsing the rule text remains. However, the client side of
8527         "signal connections" hasn't been started, this patch is only the
8528         bus side.
8529         
8530         * dbus/dispatch.c: fix for the matching rules changes
8531         
8532         * bus/driver.c (bus_driver_handle_remove_match)
8533         (bus_driver_handle_add_match): send an ack reply from these
8534         method calls
8535
8536         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8537         arguments, reported by Seth Nickell
8538
8539         * bus/config-parser.c (append_rule_from_element): support
8540         eavesdrop=true|false attribute on policies so match rules 
8541         can be prevented from snooping on the system bus.
8542
8543         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8544         and "destination" in attribute names; fix some docs bugs; 
8545         add eavesdrop=true|false attribute
8546
8547         * bus/driver.c (bus_driver_handle_add_match)
8548         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8549         messages
8550
8551         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8552         rid of broadcast service concept, signals are just always broadcast
8553
8554         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8555         mostly implement matching rules stuff (currently only exposed as signal
8556         connections)
8557
8558 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8559
8560         * doc/dbus-specification.sgml: Change the header field name
8561         to be an enum and update the rest of the spec to reference
8562         the fields using the conventinal name.
8563
8564         * dbus/dbus-protocol.h: update to reflect the spec.
8565
8566         * doc/TODO: add item to remove the 4 byte alignment requirement.
8567         
8568         * dbus/dbus-message.c: Remove the code to generalise the
8569         header/body length and serial number header fields as named
8570         header fields so we can reference field names using the 
8571         protocol values.
8572         (append_int_field), (append_uint_field), (append_string_field):
8573         Append the field name as a byte rather than four chars.
8574         (delete_int_or_uint_field), (delete_string_field): reflect the
8575         fact that the field name and typecode now occupy 4 bytes instead
8576         of 8.
8577         (decode_string_field), (decode_header_data): update to reflect
8578         protocol changes and move the field specific encoding from
8579         decode_string_field() back into decode_header_data().
8580         
8581         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8582         Add utility to aid debugging.
8583         
8584         * dbus/dbus-message-builder.c:
8585         (append_string_field), (_dbus_message_data_load): Update to
8586         reflect protocol changes; Change the FIELD_NAME directive
8587         to HEADER_FIELD and allow it to take the field's conventional
8588         name rather than the actual value.
8589         
8590         * test/data/*/*.message: Update to use HEADER_FIELD instead
8591         of FIELD_NAME; Always align the header on an 8 byte boundary
8592         *before* updating the header length.
8593
8594 2003-09-15  Havoc Pennington  <hp@pobox.com>
8595
8596         * dbus/dbus-pending-call.c: add the get/set object data
8597         boilerplate as for DBusConnection, etc. Use generic object data
8598         for the notify callback.
8599
8600         * glib/dbus-gparser.c (parse_node): parse child nodes
8601
8602         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8603         
8604         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8605         contain functions shared between the convenience lib and the
8606         installed lib
8607
8608         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8609         -export-symbols-regex to the GLib library
8610
8611         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8612         fix the locking in here, and add a default handler for
8613         Introspect() that just returns sub-nodes.
8614
8615 2003-09-14  Havoc Pennington  <hp@pobox.com>
8616
8617         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8618         rather than gfoo consistent
8619
8620         * glib/dbus-gproxy.h: delete for now, move contents to
8621         dbus-glib.h, because the include files don't work right since we
8622         aren't in the dbus/ subdir.
8623         
8624         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8625         (dbus_gproxy_end_call): finish
8626         (dbus_gproxy_begin_call): finish
8627
8628         * glib/dbus-gmain.c (dbus_set_g_error): new
8629
8630         * glib/dbus-gobject.c (handle_introspect): include information
8631         about child nodes in the introspection
8632
8633         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8634         function to help in implementation of introspection
8635
8636         * dbus/dbus-object-tree.c
8637         (_dbus_object_tree_list_registered_and_unlock): new function
8638
8639 2003-09-12  Havoc Pennington  <hp@pobox.com>
8640
8641         * glib/dbus-gidl.h: add common base class for all the foo_info
8642         types
8643
8644         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8645         similar to kdcop
8646
8647         * test/Makefile.am: try test srcdir -ef . in addition to test
8648         srcdir = ., one of them should work (yeah lame)
8649         
8650         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8651         library
8652         
8653         * glib/dbus-gparser.h: make description_load routines return
8654         NodeInfo* not Parser*
8655
8656         * Makefile.am (SUBDIRS): build test dir after all library dirs
8657
8658         * configure.in: add GTK+ detection
8659
8660 2003-09-07  Havoc Pennington  <hp@pobox.com>
8661
8662         * Make Doxygen contented.
8663
8664 2003-09-07  Havoc Pennington  <hp@pobox.com>
8665
8666         * doc/dbus-specification.sgml: more updates
8667
8668 2003-09-06  Havoc Pennington  <hp@pobox.com>
8669
8670         * doc/dbus-specification.sgml: partial updates
8671
8672         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8673         zillionth time; hopefully I edited the right file this time.
8674
8675         * bus/config-parser.c (append_rule_from_element): support
8676         send_type, send_path, receive_type, receive_path
8677
8678         * bus/policy.c: add message type and path to the list of things
8679         that can be "firewalled"
8680
8681 2003-09-06  Havoc Pennington  <hp@pobox.com>
8682
8683         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8684         (dbus_connection_register_object_path): make this not handle
8685         messages to paths below the given path
8686
8687 2003-09-03  Havoc Pennington  <hp@pobox.com>
8688
8689         * test/glib/Makefile.am: add this with random glib-linked test
8690         programs
8691
8692         * glib/Makefile.am: remove the random test programs from here,
8693         leave only the unit tests
8694
8695         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8696         uscore/javacaps conversion, and fix     
8697         (get_object_property, set_object_property): change to .NET
8698         convention for mapping props to methods, set_FooBar/get_FooBar, 
8699         since one language has such a convention we may as well copy it. 
8700         Plus real methods in either getFooBar or get_foo_bar style won't 
8701         collide with this convention.
8702
8703 2003-09-01  Havoc Pennington  <hp@pobox.com>
8704
8705         * glib/dbus-gparser.c: implement
8706
8707         * glib/dbus-gobject.c: start implementing skeletons support
8708
8709         * configure.in: when disabling checks/assert, also define
8710         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8711
8712 2003-09-01  Havoc Pennington  <hp@pobox.com>
8713
8714         * glib/Makefile.am: rearrange a bunch of files and get "make
8715         check" framework set up
8716
8717 2003-08-31  Havoc Pennington  <hp@pobox.com>
8718
8719         * fix build with --disable-tests
8720
8721 2003-08-30  Havoc Pennington  <hp@pobox.com>
8722
8723         * dbus/dbus-connection.c: purge DBusMessageHandler
8724
8725         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8726         use callbacks everywhere
8727
8728 2003-08-30  Havoc Pennington  <hp@pobox.com>
8729
8730         * test/data/valid-config-files/system.d/test.conf: change to 
8731         root for the user so warnings don't get printed
8732
8733         * dbus/dbus-message.c: add dbus_message_get_path,
8734         dbus_message_set_path
8735         
8736         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8737         dispatching to a path
8738
8739         * dbus/dbus-string.c (_dbus_string_validate_path): add
8740
8741         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8742         (_dbus_marshal_object_path): implement
8743
8744         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8745         to contain the path to the target object
8746         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8747         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8748
8749 2003-08-30  Havoc Pennington  <hp@pobox.com>
8750
8751         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8752
8753 2003-08-29  Havoc Pennington  <hp@pobox.com>
8754
8755         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8756         registered
8757         (struct DBusObjectSubtree): shrink this
8758         a lot, since we may have a lot of them
8759         (_dbus_object_tree_free_all_unlocked): implement
8760         (_dbus_object_tree_dispatch_and_unlock): implement
8761
8762 2003-08-29  Havoc Pennington  <hp@pobox.com>
8763
8764         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8765
8766 2003-08-28  Havoc Pennington  <hp@pobox.com>
8767
8768         purge DBusObjectID
8769         
8770         * dbus/dbus-connection.c: port to no ObjectID, create a
8771         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8772
8773         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8774         everything except UnregisterFunction and MessageFunction
8775         
8776         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8777         add DBUS_TYPE_OBJECT_PATH
8778         
8779         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8780         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8781         path-based object IDs
8782
8783 2003-08-25  Havoc Pennington  <hp@pobox.com>
8784
8785         Just noticed that dbus_message_test is hosed, I wonder when I
8786         broke that. I thought make check was passing earlier...
8787         
8788         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8789         container tree, will replace most of dbus-object-registry
8790
8791         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8792         screwup
8793
8794 2003-08-19  Havoc Pennington  <hp@pobox.com>
8795
8796         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8797         (dbus_message_is_error): fix this function
8798
8799         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8800         match
8801
8802         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8803         reflect clarified man page
8804         (bus_client_policy_check_can_send): ditto
8805         
8806         * bus/session.conf.in: fixup
8807
8808         * bus/system.conf.in: fixup
8809
8810 2003-08-18  Havoc Pennington  <hp@redhat.com>
8811
8812         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8813
8814         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8815         dumb bug created earlier (wrong order of args to
8816         decode_header_data())
8817         
8818         * tools/dbus-send.c: port
8819
8820         * tools/dbus-print-message.c (print_message): port
8821
8822         * test/data/*messages: port all messages over
8823         
8824         * dbus/dbus-message-builder.c: support including 
8825         message type
8826         
8827         * bus/driver.c: port over
8828         
8829         * bus/dispatch.c: port over to new stuff
8830
8831         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8832         rename disconnect signal to "Disconnected"
8833
8834 2003-08-17  Havoc Pennington  <hp@pobox.com>
8835
8836         This doesn't compile yet, but syncing up so I can hack on it from
8837         work. What are branches for if not broken code? ;-)
8838         
8839         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8840         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8841         DBUS_HEADER_FIELD_ERROR_NAME
8842         
8843         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8844         for the interface+member pairs
8845         (string_hash): change to use g_str_hash algorithm
8846         (find_direct_function, find_string_function): refactor these to
8847         share most code.
8848         
8849         * dbus/dbus-message.c: port all of this over to support 
8850         interface/member fields instead of name field
8851
8852         * dbus/dbus-object-registry.c: port over
8853         
8854         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8855         from _dbus_string_validate_name
8856
8857         * bus/dbus-daemon-1.1: change file format for the 
8858         <deny>/<allow> stuff to match new message naming scheme
8859
8860         * bus/policy.c: port over
8861
8862         * bus/config-parser.c: parse new format
8863         
8864 2003-08-16  Havoc Pennington  <hp@pobox.com>
8865
8866         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8867         broken assertion
8868
8869         * glib/dbus-gproxy.c: some hacking
8870
8871 2003-08-15  Havoc Pennington  <hp@redhat.com>
8872
8873         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8874
8875         * dbus/dbus-connection.c
8876         (dbus_connection_send_with_reply_and_block): factor out internals;
8877         change to convert any error replies to DBusError instead of 
8878         returning them as a message
8879
8880 2003-08-15  Havoc Pennington  <hp@pobox.com>
8881
8882         * dbus/dbus-connection.c, 
8883         dbus/dbus-pending-call.c: Finish the pending call stuff
8884
8885 2003-08-14  Havoc Pennington  <hp@redhat.com>
8886
8887         * dbus/dbus-pending-call.c: start on new object that will replace
8888         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8889         replies
8890
8891         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8892         with remote interfaces
8893
8894         * dbus/dbus-gidl.c: do the boring boilerplate in here
8895         
8896 2003-08-12  Havoc Pennington  <hp@pobox.com>
8897
8898         * bus/dispatch.c (bus_dispatch): make this return proper 
8899         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8900
8901         * dbus/dbus-errors.c (dbus_set_error): use
8902         _dbus_string_append_printf_valist
8903
8904         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8905         (_dbus_string_append_printf): new
8906
8907         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8908         UNKNOWN_METHOD
8909
8910         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8911         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8912         message is unhandled.
8913
8914 2003-08-11  Havoc Pennington  <hp@pobox.com>
8915
8916         * bus/test.c (client_disconnect_handler): change to return
8917         HANDLED (would have been REMOVE_MESSAGE)
8918
8919         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8920         HANDLED/NOT_YET_HANDLED instead of
8921         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8922         should be used.
8923
8924 2003-08-10  Havoc Pennington  <hp@pobox.com>
8925
8926         * tools/dbus-send.c (main): add --type argument, for now
8927         supporting only method_call and signal types.
8928
8929         * tools/dbus-print-message.c: print message type
8930
8931         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8932         init connection->objects
8933
8934         * doc/dbus-specification.sgml: fix sgml
8935
8936         * bus/*.c: port over to object-instance API changes
8937
8938         * test/test-service.c: ditto
8939         
8940         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8941         name, we will have to fix up the rest of the code to also handle
8942         this
8943         (dbus_message_new): generic message-creation call
8944         (set_string_field): allow appending name field
8945
8946 2003-08-06  Havoc Pennington  <hp@pobox.com>
8947
8948         * dbus/dbus-object-registry.c: implement signal connection 
8949         and dispatch
8950
8951         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8952
8953         * dbus/dbus-internals.c (_dbus_memdup): new function
8954
8955 2003-08-02  Havoc Pennington  <hp@pobox.com>
8956
8957         * dbus/dbus-message.c (dbus_message_get_no_reply)
8958         (dbus_message_set_no_reply): add these and remove
8959         set_is_error/get_is_error
8960
8961         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8962         remove the ERROR flag, since there's now an ERROR type
8963
8964 2003-08-01  Havoc Pennington  <hp@pobox.com>
8965
8966         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8967         implement
8968
8969         * dbus/dbus-message.c (dbus_message_get_type): new function
8970
8971         * doc/dbus-specification.sgml: add "type" byte to messages
8972
8973 2003-08-01  Havoc Pennington  <hp@pobox.com>
8974
8975         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
8976         a message type enum to distinguish kinds of message
8977         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
8978         that need not be replied to
8979
8980 2003-08-01  Havoc Pennington  <hp@pobox.com>
8981
8982         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
8983         (unpack_8_octets): fix no-64-bit-int bug
8984
8985         * dbus/dbus-object-registry.c (validate_id): validate the 
8986         connection ID bits, not just the instance ID.
8987
8988         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
8989         the connection-global 33 bits of the object ID
8990
8991         * dbus/dbus-object-registry.c (info_from_entry): fill in 
8992         object ID in the new way
8993
8994         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
8995         define server/client/instance bits.
8996
8997 2003-07-30  Havoc Pennington  <hp@pobox.com>
8998
8999         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9000         build
9001
9002 2003-07-13  Havoc Pennington  <hp@pobox.com>
9003
9004         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9005         fields to DBusObjectVTable and DBusObjectInfo
9006
9007 2003-07-12  Havoc Pennington  <hp@pobox.com>
9008
9009         * dbus/dbus-object-registry.c: implement unit test,
9010         fix bugs discovered in process
9011
9012         * dbus/dbus-connection.c: remove handler_table and
9013         register_handler(), add DBusObjectRegistry usage
9014
9015         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9016         (dbus_object_id_set_null): new functions
9017
9018 2003-07-08  Havoc Pennington  <hp@pobox.com>
9019
9020         * dbus/dbus-object.c: implement some of this
9021
9022         * dbus/dbus-object-registry.c
9023         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9024         param
9025         (_dbus_object_registry_new): handle OOM
9026
9027 2003-07-08  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-object.h: sketch out an API for registering objects
9030         with a connection, that allows us to use as little as 24 bytes
9031         per object and lets application code represent an object in 
9032         any conceivable way.
9033
9034         * dbus/dbus-object-registry.c: implement the hard bits of the
9035         DBusConnection aspect of object API. Not yet wired up.
9036         
9037 2003-07-06  Havoc Pennington  <hp@pobox.com>
9038
9039         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9040         (_dbus_marshal_object_id): new
9041         (_dbus_demarshal_object_id): new
9042         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9043         consolidate identical switch cases. Don't conditionalize handling
9044         of DBUS_TYPE_UINT64, need to handle the type always.
9045         (_dbus_marshal_validate_arg): consolidate identical cases, and
9046         handle DBUS_TYPE_OBJECT_ID
9047
9048         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9049
9050         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9051
9052 2003-09-28  Havoc Pennington  <hp@pobox.com>
9053
9054         * real 0.13 release
9055
9056 2003-09-28  Havoc Pennington  <hp@pobox.com>
9057
9058         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9059         to work with Debian db2html
9060
9061 2003-09-28  Havoc Pennington  <hp@pobox.com>
9062
9063         * configure.in: 0.13
9064
9065         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9066         stylesheet-images for benefit of Debian
9067         
9068         Change back to using filesystem-linked sockets for the system
9069         bus, so only root can create the default system bus address.
9070         
9071         * bus/system.conf.in: change to use
9072         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9073
9074         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9075         from here.
9076
9077         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9078         here, and AC_DEFINE DBUS_SYSTEM_PATH
9079
9080 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9081
9082         * doc/TODO:
9083         * doc/busconfig.dtd:
9084         Add busconfig DTD.
9085         
9086 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9087
9088         * doc/dbus-specification.sgml:
9089         Add activation reply values.
9090         
9091 2003-08-05  Havoc Pennington  <hp@redhat.com>
9092
9093         * configure.in: 0.12
9094
9095 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9096
9097         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9098         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9099         (add_watch), (remove_watch), (create_source):
9100         Refcount fds, fixes some reentrancy issues.
9101         
9102 2003-07-30  Havoc Pennington  <hp@redhat.com>
9103
9104         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9105         bus address to be abstract if we have abstract sockets
9106
9107         * NEWS: update
9108
9109 2003-07-28  Havoc Pennington  <hp@redhat.com>
9110
9111         * bus/messagebus.in: fix to avoid processname/servicename 
9112         confusion, from Michael Kearey
9113         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9114         
9115 2003-07-23  Havoc Pennington  <hp@pobox.com>
9116
9117         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9118         fix from Andy Hanton to remove broken "+1"
9119
9120 2003-07-16  Havoc Pennington  <hp@pobox.com>
9121
9122         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9123         babysitter process, as suggested by Thomas Leonard, so 
9124         an "eval `dbus-launch --exit-with-session`" will actually 
9125         return
9126
9127 2003-07-16  Havoc Pennington  <hp@pobox.com>
9128
9129         * configure.in: print out EXPANDED_* variables in the summary at
9130         the end; clean up the code that computes EXPANDED_ variables and
9131         get the ones using exec_prefix right. Should make things work
9132         when you build without --prefix
9133
9134 2003-06-29  Havoc Pennington  <hp@pobox.com>
9135
9136         * mono/Test.cs (class Test): fire up a main loop and run it
9137
9138         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9139         done once, the app has to do it
9140
9141 2003-06-26  Havoc Pennington  <hp@pobox.com>
9142
9143         * mono/Connection.cs: set up connection with the glib main loop
9144
9145 2003-07-01  Havoc Pennington  <hp@redhat.com>
9146
9147         * doc/dbus-specification.sgml: clarify the format of a type code,
9148         change suggested by Jim Blandy
9149
9150 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9151
9152         * doc/Makefile.am:
9153         * tools/Makefile.am: Don't assume srcdir == builddir.
9154
9155         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9156         the allocated block.
9157         (_dbus_memory_test): New function.
9158         * dbus/dbus-test.h: Add _dbus_memory_test ().
9159         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9160
9161         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9162         of %c%c%c%c.
9163         (dbus_message_new): Remove obsolete @todo.
9164
9165         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9166         (_dbus_marshal_set_uint64): Fix comment.
9167
9168         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9169         hardcode FIELD_REPLY_SERIAL.
9170
9171         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9172         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9173
9174         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9175         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9176
9177 2003-06-24  Havoc Pennington  <hp@pobox.com>
9178
9179         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9180
9181 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9182
9183         * configure.in:
9184         * gcj/.cvsignore:
9185         * gcj/Hello.java:
9186         * gcj/Makefile.am:
9187         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9188         * gcj/org/.cvsignore:
9189         * gcj/org/Makefile.am:
9190         * gcj/org/freedesktop/.cvsignore:
9191         * gcj/org/freedesktop/Makefile.am:
9192         * gcj/org/freedesktop/dbus/.cvsignore:
9193         * gcj/org/freedesktop/dbus/Makefile.am:
9194         * gcj/org/freedesktop/dbus/Message.java: (Message),
9195         (Message.Message):
9196         * gcj/org/freedesktop/dbus/natMessage.cc:
9197         Fix the build system.
9198
9199 2003-06-22  Havoc Pennington  <hp@pobox.com>
9200
9201         * mono/Connection.cs: add more bindings
9202
9203         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9204         more than once.
9205
9206 2003-06-22  Havoc Pennington  <hp@pobox.com>
9207
9208         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9209         Start wrapping more stuff.
9210
9211 2003-06-22  Havoc Pennington  <hp@pobox.com>
9212
9213         * mono/Message.cs: implement Message.Wrap() that ensures we only
9214         have a single C# wrapper per DBusMessage, assuming it works which
9215         it probably doesn't.
9216
9217         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9218         (dbus_message_free_data_slot): new
9219         (dbus_message_set_data): new
9220         (dbus_message_get_data): new
9221
9222 2003-06-22  Havoc Pennington  <hp@pobox.com>
9223
9224         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9225         (_dbus_data_slot_allocator_alloc): rework these to keep a
9226         reference count on each slot and automatically manage a global
9227         slot ID variable passed in by address
9228
9229         * bus/bus.c: convert to new dataslot API
9230
9231         * dbus/dbus-bus.c: convert to new dataslot API
9232
9233         * dbus/dbus-connection.c: convert to new dataslot API
9234
9235         * dbus/dbus-server.c: convert to new dataslot API
9236
9237         * glib/dbus-gmain.c: ditto
9238
9239         * bus/test.c: ditto
9240
9241         * bus/connection.c: ditto
9242
9243 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9244
9245         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9246         after the gcj checks so that the correct configuration tags
9247         will be added to libtool.
9248
9249         * dbus-glib-1.pc.in: No need to specify any includes since
9250         dbus-1.pc.in has those.
9251
9252 2003-06-22  Havoc Pennington  <hp@pobox.com>
9253
9254         * mono/*, gcj/*, configure.in, Makefile.am:
9255         Check in makefiles and subdirs for mono and gcj bindings.
9256         Neither binding actually exists, just trying to get through
9257         all the build and other boring bits.
9258
9259 2003-06-21  Philip Blundell  <philb@gnu.org>
9260
9261         * tools/dbus-monitor.1: Updated.
9262
9263         * tools/dbus-send.1: Likewise.
9264
9265 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9266
9267         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9268         for hangup and error after checking read so we won't discard
9269         pending data if both hangup and read are set.
9270
9271 2003-06-19  Philip Blundell  <philb@gnu.org>
9272
9273         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9274
9275         * tools/dbus-send.c: Accept both --system and --session.
9276
9277         * tools/dbus-monitor.c: Same here.
9278
9279 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9280
9281         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9282         from C++ (Patch by Miloslav Trmac).
9283
9284 2003-06-15  Joe Shaw  <joe@assbarn.com>
9285
9286         * configure.in: Check for socklen_t.
9287
9288         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9289
9290         * test/test-segfault.c: Add #include <sys/time.h>
9291
9292         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9293         dbus-launch needs it.
9294
9295 2003-06-09  Havoc Pennington  <hp@redhat.com>
9296
9297         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9298         SUN_LEN, it breaks abstract socket usage
9299
9300         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9301         starts of lines.
9302
9303 2003-06-04  Havoc Pennington  <hp@pobox.com>
9304
9305         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9306         using unix:abstract=/foo, and when listening in a tmpdir
9307         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9308
9309         * dbus/dbus-transport.c (_dbus_transport_open): support
9310         unix:abstract=/foo
9311
9312         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9313         support abstract sockets
9314
9315         * dbus/dbus-transport-unix.c
9316         (_dbus_transport_new_for_domain_socket): support abstract sockets
9317
9318         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9319         toggle as an argument, implement abstract namespace support
9320         (_dbus_listen_unix_socket): ditto
9321
9322         * configure.in: add --enable-abstract-sockets and implement
9323         a configure check for autodetection of the right value.
9324
9325 2003-06-01  Havoc Pennington  <hp@pobox.com>
9326
9327         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9328         in /tmp (though on Linux this will end up being useless,
9329         when we add abstract namespace support)
9330
9331         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9332         subst'ing it
9333
9334 2003-05-28  Colin Walters  <walters@verbum.org>
9335
9336         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9337
9338 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9339
9340         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9341
9342 2003-05-17  Colin Walters  <walters@gnu.org>
9343
9344         * tools/dbus-send.c: Don't exit with an error code if --help was
9345         passed.  Default to using the session bus instead of the system
9346         one.
9347
9348         * tools/dbus-launch.c: Ditto.
9349
9350         * tools/dbus-monitor.c: Ditto.
9351
9352         * tools/dbus-send.1: Update with new arguments.
9353
9354         * tools/dbus-launch.c: Emit code to export variables.  New
9355         arguments -s and -c to specify shell syntax, and a bit of code to
9356         autodetect syntax.  Also, allow specifying a program to run.
9357
9358         * tools/dbus-launch.1: Update with new arguments.
9359
9360         * tools/dbus-send.1: Ditto.
9361
9362         * tools/dbus-monitor.1: Ditto.
9363
9364 2003-05-17  Havoc Pennington  <hp@pobox.com>
9365
9366         * bus/config-parser.c (merge_included): merge in policies from
9367         child configuration file.
9368
9369         * bus/policy.c (bus_policy_merge): function to merge two policies
9370         together
9371
9372 2003-05-16  Havoc Pennington  <hp@redhat.com>
9373
9374         * dbus/dbus-connection.c: disable verbose lock spew
9375
9376         * tools/dbus-send.c: add --print-reply command line option
9377
9378         * tools/dbus-print-message.h (print_message): new util function
9379         shared by dbus-send and dbus-monitor
9380
9381         * tools/dbus-monitor.c (handler_func): exit on disconnect
9382
9383         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9384         disconnected, don't try to use the read_watch
9385
9386         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9387         so we can find this bug more easily
9388
9389 2003-05-16  Havoc Pennington  <hp@redhat.com>
9390
9391         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9392         NULL as DBusHashTable is annoyingly likely to do.
9393
9394 2003-05-16  Colin Walters  <walters@verbum.org>
9395
9396         * tools/dbus-monitor.c: Add --session argument and usage()
9397         function.
9398
9399         * tools/dbus-monitor.1: Update with new --session arg.
9400
9401         * bus/Makefile.am (install-data-hook): Create
9402         $(libdir)/dbus-1.0/services so that the session bus is happy.
9403
9404 2003-05-15  Havoc Pennington  <hp@redhat.com>
9405
9406         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9407         on non-x86. ifdef's are evil.
9408
9409 2003-05-15  Havoc Pennington  <hp@redhat.com>
9410
9411         * configure.in: 0.11
9412
9413         * NEWS: update
9414
9415         * bus/Makefile.am (initddir): apparently we are supposed to put
9416         init scripts in /etc/rc.d/init.d not /etc/init.d
9417
9418         * bus/Makefile.am: remove the "you must --enable-tests to make
9419         check" as it broke distcheck
9420
9421         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9422
9423 2003-05-13  James Willcox  <jwillcox@gnome.org>
9424
9425         * configure.in:
9426         * bus/activation.c: (bus_activation_service_created),
9427         (bus_activation_activate_service):
9428         * bus/driver.c: (bus_driver_send_service_deleted),
9429         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9430         (bus_driver_send_service_acquired),
9431         (bus_driver_send_welcome_message),
9432         (bus_driver_handle_list_services):
9433         * bus/session.conf.in:
9434         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9435         (dbus_bus_service_exists), (dbus_bus_activate_service):
9436         * dbus/dbus-bus.h:
9437
9438         Add some convenience API which lets you activate a service, and did a
9439         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9440         and dbus_message_get_args()
9441
9442 2003-05-11  Havoc Pennington  <hp@pobox.com>
9443
9444         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9445         calling _dbus_marshal_validate_arg() for every byte in a byte
9446         array, etc.
9447
9448         * dbus/dbus-message-handler.c: use atomic reference counting to
9449         reduce number of locks slightly; the global lock in here sucks
9450
9451         * dbus/dbus-connection.c
9452         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9453         update_dispatch_status that can be called with lock held; then use
9454         in a couple places to reduce locking/unlocking
9455         (dbus_connection_send): hold the lock over the whole function
9456         instead of acquiring it twice.
9457
9458         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9459
9460         * bus/connection.c (bus_connections_setup_connection): fix access
9461         to already-freed memory.
9462
9463         * dbus/dbus-connection.c: keep a little cache of linked list
9464         nodes, to avoid using the global linked list alloc lock in the
9465         normal send-message case. Instead we just use the connection lock
9466         that we already have to take.
9467
9468         * dbus/dbus-list.c (_dbus_list_find_last): new function
9469
9470         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9471         change to use a struct for the atomic type; fix docs,
9472         they return value before increment, not after increment.
9473
9474         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9475         (_dbus_string_append_8_aligned): new functions to try to
9476         microoptimize this operation.
9477         (reallocate_for_length): break this out of set_length(), to
9478         improve profile info, and also so we can consider inlining the
9479         set_length() part.
9480
9481         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9482         strings with some preallocation, cuts down on our calls to realloc
9483         a fair bit. Though if we can get the "move entire string to empty
9484         string" optimization below to kick in here, it would be better.
9485
9486         * dbus/dbus-string.c (_dbus_string_move): just call
9487         _dbus_string_move_len
9488         (_dbus_string_move_len): add a special case for moving
9489         an entire string into an empty string; we can just
9490         swap the string data instead of doing any reallocs.
9491         (_dbus_string_init_preallocated): new function
9492
9493 2003-05-11  Havoc Pennington  <hp@pobox.com>
9494
9495         Write a "test-profile" that does echo client-server with threads;
9496         profile reveals lock contention, memcpy/realloc of buffers, and
9497         UTF-8 validation as hot spots. 20% of lock contention eliminated
9498         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9499         contention is global mempool locks for GList and DBusList.
9500
9501         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9502         x86 implementation
9503
9504         * dbus/dbus-connection.c (struct DBusConnection): use
9505         dbus_atomic_t for the reference count
9506
9507         * dbus/dbus-message.c (struct DBusMessage): declare
9508         dbus_atomic_t values as volatile
9509
9510         * configure.in: code to detect ability to use atomic integer
9511         operations in assembly, from GLib patch
9512
9513         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9514         time, tired of it being wrong in threads and forked processes
9515
9516         * glib/test-profile.c: a little program to bounce messages back
9517         and forth between threads and eat CPU
9518
9519         * dbus/dbus-connection.c: add debug spew macros for debugging
9520         thread locks; include config.h at top; fix deadlock in
9521         dbus_connection_flush()
9522
9523 2003-05-08  Havoc Pennington  <hp@pobox.com>
9524
9525         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9526         data from getting written, and there wasn't a good reason to
9527         use _exit really.
9528
9529         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9530         dbus_verbose lines in test coverage
9531         (main): add list of functions sorted by # of untested blocks
9532         to the coverage report
9533
9534         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9535
9536         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9537
9538         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9539         extend test coverage
9540
9541         * test/data/auth/cancel.auth-script: test canceling an
9542         authentication
9543
9544         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9545         aren't used. in CVS history if we end up needing them.
9546
9547 2003-05-04  Havoc Pennington  <hp@pobox.com>
9548
9549         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9550         unit test
9551
9552         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9553         function, which assumed length was in # of strings, not bytes
9554
9555         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9556         missing coverage
9557
9558         * dbus/dbus-connection.c
9559         (_dbus_connection_queue_received_message): disable function for
9560         now, we are only using it in test mode
9561
9562         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9563         remove a mistaken FIXME
9564
9565 2003-05-04  Havoc Pennington  <hp@pobox.com>
9566
9567         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9568         unlock mutex on successful return, patch from Anders Gustafsson
9569
9570 2003-05-04  Havoc Pennington  <hp@pobox.com>
9571
9572         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9573         Anders Gustafsson
9574
9575 2003-05-04  Havoc Pennington  <hp@pobox.com>
9576
9577         * tools/dbus-launch.c: implement
9578
9579         * bus/main.c (main), bus/bus.c (bus_context_new):
9580         implement --print-pid and --fork
9581
9582 2003-05-03  Havoc Pennington  <hp@redhat.com>
9583
9584         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9585         the address had no value, and add to test suite. Fix and
9586         regression test from Miloslav Trmac
9587
9588 2003-05-03  Havoc Pennington  <hp@pobox.com>
9589
9590         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9591         watch is invalid when handled
9592
9593         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9594         dbus-launch utility to launch the bus from a shell script.  Didn't
9595         actually implement dbus-launch yet, it's just a placeholder still.
9596
9597 2003-05-03  Havoc Pennington  <hp@pobox.com>
9598
9599         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9600         daemon; also documents daemon config file, so replaces
9601         doc/config-file.txt. Corrected some stuff from config-file.txt in
9602         the process of moving it.
9603
9604 2003-05-03  Havoc Pennington  <hp@pobox.com>
9605
9606         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9607         add some man pages
9608
9609 2003-05-03  Colin Walters  <walters@verbum.org>
9610
9611         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9612         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9613
9614         * Makefile.am: Update to use new .pc versioning scheme.
9615
9616 2003-05-02  Havoc Pennington  <hp@redhat.com>
9617
9618         * bus/system.conf.in: allow send/receive to/from message bus
9619         service
9620
9621 2003-04-30  Havoc Pennington  <hp@redhat.com>
9622
9623         * configure.in: print a note when building with unit tests and
9624         without assertions
9625
9626 2003-04-30  Havoc Pennington  <hp@redhat.com>
9627
9628         * Makefile.am: add a check-local that complains if you didn't
9629         configure with --enable-tests
9630
9631 2003-04-29  Havoc Pennington  <hp@redhat.com>
9632
9633         * glib/dbus-gmain.c: docs cleanups
9634
9635         * dbus/dbus-types.h: add docs on int64 types
9636
9637         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9638         public API docs section
9639
9640 2003-04-29  Havoc Pennington  <hp@redhat.com>
9641
9642         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9643         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9644         parallel install API version, not with the D-BUS package version.
9645
9646         * HACKING: move some of README over here
9647
9648         * README: updates, and document API/ABI policy
9649
9650         * configure.in: reindentation
9651
9652 2003-04-29  Havoc Pennington  <hp@redhat.com>
9653
9654         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9655         to use this library" to be sure people have the right
9656         expectations.
9657
9658 2003-04-28  Havoc Pennington  <hp@redhat.com>
9659
9660         * configure.in: add --enable-docs which by default is auto yes if
9661         doxygen and db2html found, no otherwise; but can be forced on/off
9662
9663         * doc/Makefile.am: conditionalize whether to build docs on
9664         --enable-docs
9665
9666 2003-04-28  Havoc Pennington  <hp@redhat.com>
9667
9668         * configure.in: 0.10
9669
9670         * NEWS: update
9671
9672         * bus/system.conf.in: add <includedir>system.d</includedir>
9673
9674         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9675         username was provided but not uid
9676
9677         * bus/config-parser.c (struct BusConfigParser): keep track of
9678         whether the parser is toplevel or was included; change some
9679         of the error handling if it's included.
9680
9681 2003-04-27  Havoc Pennington  <hp@pobox.com>
9682
9683         Unbreak my code...
9684
9685         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9686         report correct status if we finish processing authentication
9687         inside this function.
9688
9689         * bus/activation.c (try_send_activation_failure): use
9690         bus_transaction_send_error_reply
9691
9692         * bus/connection.c (bus_connection_get_groups): return an error
9693         explaining the problem
9694
9695         * bus/bus.c (bus_context_check_security_policy): implement
9696         restriction here that inactive connections can only send the
9697         hello message. Also, allow bus driver to send anything to
9698         any recipient.
9699
9700         * bus/connection.c (bus_connection_complete): create the
9701         BusClientPolicy here instead of on-demand.
9702         (bus_connection_get_policy): don't return an error
9703
9704         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9705         sender field in message being replied to
9706
9707         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9708         causing it to return FALSE always
9709
9710         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9711         we checked sender rather than destination
9712
9713 2003-04-25  Havoc Pennington  <hp@redhat.com>
9714
9715         test suite is slightly hosed at the moment, will fix soon
9716
9717         * bus/connection.c (bus_connections_expire_incomplete): fix to
9718         properly disable the timeout when required
9719         (bus_connection_set_name): check whether we can remove incomplete
9720         connections timeout after we complete each connection.
9721
9722         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9723         probably still broken.
9724
9725         * bus/services.c (bus_registry_acquire_service): implement max
9726         number of services owned, and honor allow/deny rules on which
9727         services a connection can own.
9728
9729         * bus/connection.c (bus_connection_get_policy): report errors here
9730
9731         * bus/activation.c: implement limit on number of pending
9732         activations
9733
9734 2003-04-25  Havoc Pennington  <hp@redhat.com>
9735
9736         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9737         where we used >= 0 instead of != DBUS_UID_UNSET.
9738
9739 2003-04-25  Havoc Pennington  <hp@redhat.com>
9740
9741         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9742         were toggled without add/remove, fix from Anders Gustafsson
9743
9744 2003-04-24  Havoc Pennington  <hp@redhat.com>
9745
9746         * test/data/valid-config-files/basic.conf: add <limit> tags to
9747         this test
9748
9749         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9750         <limit> tag in configuration file.
9751
9752 2003-04-24  Havoc Pennington  <hp@redhat.com>
9753
9754         * bus/dispatch.c: somehow missed some name_is
9755
9756         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9757         (_dbus_timeout_set_interval): new
9758
9759         * bus/connection.c (bus_connections_setup_connection): record time
9760         when each connection is first set up, and expire them after the
9761         auth timeout passes.
9762
9763 2003-04-24  Havoc Pennington  <hp@redhat.com>
9764
9765         * dbus/dbus-message.c (dbus_message_name_is): rename
9766         (dbus_message_service_is): rename
9767         (dbus_message_sender_is): rename
9768         (dbus_message_get_service): rename
9769
9770 2003-04-24  Havoc Pennington  <hp@redhat.com>
9771
9772         * configure.in: add --enable-checks
9773
9774         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9775
9776         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9777         to use thread locks.
9778         (_dbus_connection_handler_destroyed_locked): move some private
9779         functions into proper docs group
9780
9781         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9782         _dbus_return_val_if_fail
9783
9784         Throughout: use dbus_return_if_fail
9785
9786 2003-04-23  James Willcox  <jwillcox@gnome.org>
9787
9788         * glib/dbus-glib.h:
9789         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9790         (dbus_connection_setup_with_g_main),
9791         (dbus_server_setup_with_g_main):
9792         * glib/test-dbus-glib.c: (main):
9793         * glib/test-thread-client.c: (main):
9794         * glib/test-thread-server.c: (new_connection_callback), (main):
9795         * tools/dbus-monitor.c: (main):
9796
9797         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9798         and dbus_server_setup_with_g_main().
9799
9800 2003-04-20  Havoc Pennington  <hp@pobox.com>
9801
9802         * doc/dbus-specification.sgml: document the restrictions on
9803         message and service names
9804
9805 2003-04-22  Havoc Pennington  <hp@redhat.com>
9806
9807         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9808         support, and do some code cleanups to share more code and
9809         speed up array marshal/demarshal.
9810
9811         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9812
9813         * configure.in: generate dbus-arch-deps.h
9814
9815         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9816         64-bit typecodes
9817
9818 2003-04-22  Havoc Pennington  <hp@redhat.com>
9819
9820         * test/data/valid-messages/opposite-endian.message: fix test
9821         to use proper type for rply field
9822
9823         * test/data/invalid-messages: add tests for below validation
9824
9825         * dbus/dbus-message.c (decode_header_data): validate field types,
9826         and validate that named fields are valid names
9827         (decode_name_field): consider messages in the
9828         org.freedesktop.Local. namespace to be invalid.
9829
9830         * dbus/dbus-string.c (_dbus_string_validate_name): new
9831
9832 2003-04-19  Havoc Pennington  <hp@pobox.com>
9833
9834         * bus/driver.c (bus_driver_handle_hello): check limits and
9835         return an error if they are exceeded.
9836
9837         * bus/connection.c: maintain separate lists of active and inactive
9838         connections, and a count of each. Maintain count of completed
9839         connections per user. Implement code to check connection limits.
9840
9841         * dbus/dbus-list.c (_dbus_list_unlink): export
9842
9843         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9844         number of bytes in the message queue for a connection
9845
9846 2003-04-18  Havoc Pennington  <hp@pobox.com>
9847
9848         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9849
9850         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9851         memleaks
9852
9853         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9854         on realloc be sure to update the pointer in the keyring
9855
9856         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9857         offset to avoid writing to unallocated memory
9858
9859         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9860         try the next mechanism, so we properly handle OOM
9861
9862         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9863         on OOM.
9864         (_dbus_keyring_new): fix OOM bug
9865         (_dbus_keyring_new_homedir): always set error; impose a maximum
9866         number of keys we'll load from the file, mostly to speed up the
9867         test suite and make its OOM checks more useful, but also for
9868         general sanity.
9869
9870         * dbus/dbus-auth.c (process_error_server): reject authentication
9871         if we get an error from the client
9872         (process_cancel): on cancel, send REJECTED, per the spec
9873         (process_error_client): send CANCEL if we get an error from the
9874         server.
9875
9876 2003-04-18  Havoc Pennington  <hp@pobox.com>
9877
9878         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9879         debug spew
9880
9881         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9882         handling problem
9883
9884         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9885         about DBUS_TEST_HOMEDIR once
9886
9887         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9888         the environment
9889
9890         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9891         config file so we test the right thing
9892
9893         Throughout: assorted docs improvements
9894
9895 2003-04-18  Havoc Pennington  <hp@pobox.com>
9896
9897         * glib/dbus-gmain.c: adapt to watch changes
9898
9899         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9900
9901         * dbus/dbus-server.h: remove dbus_server_handle_watch
9902
9903         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9904
9905         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9906         like DBusTimeout, so we don't need dbus_connection_handle_watch
9907         etc.
9908
9909 2003-04-17  Havoc Pennington  <hp@redhat.com>
9910
9911         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9912         database usage so it all goes via the DBusUserDatabase cache.
9913
9914 2003-04-17  Havoc Pennington  <hp@redhat.com>
9915
9916         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9917         there was an OOM watch we skipped, we always return TRUE so we
9918         iterate again to have a look at it again. Fixes test suite hang.
9919         Code rearrangement also lets us lose some memset and only iterate
9920         over callbacks once.
9921
9922         * bus/driver.c (bus_driver_handle_message): sense of test for
9923         reply was backward
9924
9925 2003-04-16  Havoc Pennington  <hp@pobox.com>
9926
9927         * doc/dbus-specification.sgml: make spec say serials are unsigned
9928
9929         * dbus/dbus-message.h: change message serials to unsigned
9930
9931         * dbus/dbus-connection.c: adapt to message serials being unsigned
9932
9933 2003-04-15  Havoc Pennington  <hp@pobox.com>
9934
9935         * bus/bus.c: create and keep around a shared DBusUserDatabase
9936         object.
9937
9938         * bus/connection.c (bus_connection_get_groups): don't cache
9939         groups for user in the connection object, since user database
9940         object now does that.
9941
9942 2003-04-16  Havoc Pennington  <hp@redhat.com>
9943
9944         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9945         list of size counters
9946         (_dbus_message_loader_putback_message_link): put back a popped link
9947
9948         * dbus/dbus-connection.c
9949         (dbus_connection_set_max_live_messages_size): rename
9950         max_received_size
9951         (dbus_connection_get_outgoing_size): get size of outgoing
9952         queue
9953         (_dbus_connection_set_connection_counter): remove this cruft
9954
9955 2003-04-14  Havoc Pennington  <hp@redhat.com>
9956
9957         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9958         caching, but at some point we might want to be able to use a
9959         different database.
9960
9961         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9962         SHA1 conf file to test the sha1 auth mechanism, since the regular
9963         test always uses EXTERNAL when available.
9964
9965         * configure.in,
9966         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9967         add conf file that requires use of sha1 auth
9968
9969 2003-04-13  Havoc Pennington  <hp@pobox.com>
9970
9971         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
9972         from Philip Blundell to send messages and monitor them.
9973
9974 2003-04-13  Havoc Pennington  <hp@pobox.com>
9975
9976         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
9977         callbacks
9978
9979         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
9980         users
9981
9982         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9983         fix to only recover unused bytes if we're already authenticated
9984         (_dbus_transport_get_is_authenticated): fix to still mark us
9985         authenticated if there are unused bytes.
9986
9987         * bus/dispatch.c: implement security policy checking
9988
9989         * bus/connection.c (bus_transaction_send_from_driver): new
9990
9991         * bus/bus.c (bus_context_check_security_policy): new
9992
9993         * bus/dispatch.c (send_service_nonexistent_error): delete this,
9994         now we just set the DBusError and it gets converted to an error
9995         reply.
9996
9997         * bus/connection.c (allow_user_function): enable code using actual
9998         data from the config file
9999
10000         * bus/policy.c (list_allows_user): handle wildcard rules for
10001         user/group connection perms
10002
10003 2003-04-13  Havoc Pennington  <hp@pobox.com>
10004
10005         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10006
10007         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10008
10009         * bus/policy.c (bus_policy_append_mandatory_rule)
10010         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10011         (bus_policy_append_group_rule): new functions
10012
10013 2003-04-12  Havoc Pennington  <hp@pobox.com>
10014
10015         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10016
10017         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10018         the pid/gid/uid, just for paranoia.
10019
10020         * test/break-loader.c (randomly_do_n_things): find a byte
10021         containing a type code, and randomly change it to a different
10022         type code.
10023
10024 2003-04-12  Havoc Pennington  <hp@pobox.com>
10025
10026         * bus/policy.h: change BusPolicy to be the thing from the config
10027         file, and rename old BusPolicy to BusClientPolicy
10028
10029         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10030         match change in how policy works
10031
10032         * dbus/dbus-internals.h: mark assert_not_reached as
10033         __attribute((noreturn))__
10034
10035 2003-04-11  Havoc Pennington  <hp@redhat.com>
10036
10037         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10038         the broadcast service. Use boolean return for ServiceExists.
10039
10040 2003-04-11  Havoc Pennington  <hp@redhat.com>
10041
10042         * configure.in: add another directory to look for qt in.
10043
10044 2003-04-11  Havoc Pennington  <hp@redhat.com>
10045
10046         * AUTHORS: add Colin Walters
10047
10048 2003-04-11  Havoc Pennington  <hp@redhat.com>
10049
10050         * NEWS: update
10051
10052         * configure.in: 0.9
10053
10054 2003-04-11  Havoc Pennington  <hp@redhat.com>
10055
10056         * bus/messagebus.in: remove pid file when stopping the
10057         message bus, since the bus won't have privileges to remove it
10058         itself.
10059
10060 2003-04-11  Havoc Pennington  <hp@redhat.com>
10061
10062         * bus/bus.c (bus_context_new): move credentials change after
10063         creating pidfile
10064
10065 2003-04-11  Havoc Pennington  <hp@pobox.com>
10066
10067         * test/decode-gcov.c: add "below average functions" to the
10068         coverage report, and change how some of the code works.
10069
10070         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10071         not in the coverage stats.
10072
10073         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10074         couple places so running the test suite doesn't result in megaspam.
10075
10076 2003-04-11  Havoc Pennington  <hp@pobox.com>
10077
10078         * bus/dispatch.c (check_existent_service_activation): accept a no
10079         memory error in a place we didn't before
10080
10081         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10082         in case the first one failed," since the test suite is less
10083         broken now.
10084
10085 2003-04-10  Havoc Pennington  <hp@pobox.com>
10086
10087         * bus/dispatch.c (check_segfault_service_activation): add test
10088         for launching an executable that just crashes.
10089
10090         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10091         don't leave a million cores. We'll see how portable this is.
10092
10093 2003-04-10  Havoc Pennington  <hp@pobox.com>
10094
10095         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10096         the possible parent failures before we fork, so that we don't
10097         fail to create a babysitter after creating the child.
10098
10099         * bus/activation.c (bus_activation_activate_service): kill child
10100         if we don't successfully complete the activation.
10101
10102 2003-04-10  Havoc Pennington  <hp@redhat.com>
10103
10104         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10105         the connection if it's disconnected
10106
10107         * bus/activation.c (bus_activation_service_created): use new
10108         transaction features to roll back removal of pending activation if
10109         we don't successfully create the service after all. Don't remove
10110         pending activation if the function fails.
10111
10112         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10113         (_dbus_list_insert_after_link): new code to facilitate
10114         services.c fixes
10115
10116         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10117         new functionality, so we can preallocate the ability to insert
10118         into a hash table.
10119
10120         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10121         allowing us to put custom hooks in a transaction to be used for
10122         cancelling said transaction
10123
10124         * doc/dbus-specification.sgml: add some discussion of secondary
10125         service owners, and disallow zero-length service names
10126
10127         * bus/services.c (bus_registry_acquire_service): new function,
10128         splits out part of bus_driver_handle_acquire_service() and fixes
10129         a bug where we didn't remove the service doing the acquiring
10130         from the secondary queue if we failed to remove the current owner
10131         from the front of the queue.
10132
10133 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10134
10135         * doc/dbus-specification.sgml:
10136         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10137
10138 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10139
10140         * bus/.cvsignore:
10141         * glib/.cvsignore:
10142         * test/.cvsignore:
10143         Added files to cvsignore
10144
10145         * dbus/dbus-message.h:
10146         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10147         Make get_named() take two out argument and return a boolean.
10148         (dbus_message_iter_get_args_valist):
10149         Update usage of get_named().
10150         (dbus_message_iter_append_byte):
10151         Fix typo
10152         (dbus_message_iter_append_named)
10153         Fix typo
10154         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10155         More tests.
10156
10157 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10158
10159         * dbus/dbus-marshal.[ch]:
10160         Add array_type_pos argument to _dbus_marshal_validate_arg.
10161         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10162
10163         * dbus/dbus-message.[ch]:
10164         Multi-dimensional arrays have full type specification in the
10165         outermost array. Iter code re-arranged to handle this.
10166         Added some more iter tests.
10167
10168         * doc/dbus-specification.sgml:
10169         Add me to authors.
10170         Remove old FIXME.
10171         Update new array encoding description.
10172         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10173
10174         * test/data/invalid-messages/array-with-mixed-types.message:
10175         * test/data/valid-messages/array-of-array-of-uint32.message:
10176         Change to the new array format.
10177
10178         * test/data/invalid-messages/too-short-dict.message:
10179         Fix bug in test.
10180
10181         * test/data/valid-messages/recursive-types.message:
10182         Fix up and extend test.
10183
10184 2003-04-10  Havoc Pennington  <hp@pobox.com>
10185
10186         * bus/dispatch.c: lots of fixes
10187
10188         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10189         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10190         that was crack, broke the test service.
10191
10192         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10193         handling to avoid piling up errors if we get a failure on the
10194         first address.
10195
10196         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10197         pid in assertion failures.
10198
10199         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10200         to some fixed size of file descriptor array. Don't return TRUE
10201         anytime a timeout exists, that led to lots of busy loop silliness
10202         in the tests.
10203
10204 2003-04-09  Havoc Pennington  <hp@redhat.com>
10205
10206         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10207         I'd checked this in earlier but hadn't.
10208
10209 2003-04-09  Havoc Pennington  <hp@redhat.com>
10210
10211         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10212         the activation test (man this is getting old!)
10213
10214 2003-04-09  Havoc Pennington  <hp@redhat.com>
10215
10216         * test/test-utils.c: use dispatch status function to fix this up
10217
10218         * bus/connection.c (connection_watch_callback): don't dispatch
10219         from here
10220         (connection_timeout_callback): don't dispatch from here
10221         (bus_connections_setup_connection): set the dispatch status function
10222         (bus_connection_disconnected): unset it
10223
10224         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10225         used to add a connection to be dispatched
10226         (_dbus_loop_iterate): do the dispatching at the end of each
10227         iteration
10228
10229         * dbus/dbus-connection.c
10230         (dbus_connection_set_dispatch_status_function): new function
10231         allowing us to fix up main loop usage
10232         (_dbus_connection_last_unref): free all the various function
10233         user data
10234         (dbus_connection_dispatch): call the DispatchStatusFunction
10235         whenever this function returns
10236         (dbus_connection_handle_watch): call DispatchStatusFunction
10237         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10238         (reply_handler_timeout): call DispatchStatusFunction
10239         (dbus_connection_flush): call DispatchStatusFunction
10240
10241 2003-04-09  Havoc Pennington  <hp@redhat.com>
10242
10243         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10244         a memory leak
10245
10246         * bus/dispatch.c (check_service_activated): fix bug in test
10247
10248         * dbus/dbus-mainloop.c (check_timeout): fix this up
10249
10250         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10251         verbose output so we can sort out output from different processes,
10252         e.g. in the activation case.
10253
10254 2003-04-08  Colin Walters  <walters@gnu.org>
10255
10256         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10257         the pid file.
10258         (bus_context_new): Set it.
10259         (bus_context_unref): Use it to delete the pid file.
10260
10261 2003-04-08  Havoc Pennington  <hp@redhat.com>
10262
10263         * test/data/invalid-messages/array-with-mixed-types.message:
10264         regression test that fails for the moment
10265
10266         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10267         tests for convenience
10268
10269         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10270         array of nil, it broke things.
10271
10272         * test/data/invalid-messages/array-of-nil.message: regression test
10273
10274         * test/data/valid-messages/array-of-array-of-uint32.message:
10275         happened to write this so added it to suite
10276
10277 2003-04-08  Havoc Pennington  <hp@redhat.com>
10278
10279         * bus/driver.c (bus_driver_handle_acquire_service): init
10280         retval/reply before checking name
10281
10282         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10283         recursion depth argument
10284
10285         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10286         in the public struct for future extension
10287
10288         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10289         typo
10290
10291         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10292         message
10293
10294         * doc/dbus-specification.sgml: fix typo
10295
10296 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10297
10298         Implemented recursive types, named types and new-style iters
10299
10300         * bus/driver.c:
10301         * glib/test-thread-client.c: (thread_func):
10302         * glib/test-thread-server.c: (handle_test_message):
10303         * test/test-service.c: (handle_echo):
10304         Update to new api
10305
10306         * dbus/Makefile.am:
10307         * dbus/dbus-dict.c:
10308         * dbus/dbus-dict.h:
10309         * dbus/dbus.h
10310         Remove DBusDict
10311
10312         * dbus/dbus-internals.c: (_dbus_type_to_string):
10313         Update for new types.
10314
10315         * dbus/dbus-marshal.[ch]:
10316         Implement recursive types and the new marshalling format.
10317         Remove hardcoded dict marshalling.
10318         Marshal named types.
10319
10320         * dbus/dbus-message-builder.c:
10321         Add BYTE_ARRAY.
10322         Remove references to old types
10323
10324         * dbus/dbus-message.[ch]:
10325         New non-refcounted iter API that supports recursive iters.
10326         Use iters for appending, including support for recursive
10327         iters.
10328         Add byte and named type support.
10329         Update everything to new marshalling formats.
10330         Add tests for new API.
10331
10332         * dbus/dbus-protocol.h:
10333         Remove old array types.
10334         Add types: BYTE, ARRAY, DICT, NAMED
10335
10336         * dbus/dbus-string.c:
10337         * dbus/dbus-sysdeps.c:
10338         Make parse_double locale safe.
10339
10340         * dbus/dbus-test-main.c:
10341         Call setlocale.
10342
10343         * dbus/dbus-test.c:
10344         Kill dict test
10345
10346         * doc/dbus-specification.sgml:
10347         Update spec
10348
10349         * test/data/incomplete-messages/missing-body.message:
10350         * test/data/invalid-messages/bad-boolean.message:
10351         * test/data/invalid-messages/bad-boolean-array.message:
10352         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10353         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10354         * test/data/invalid-messages/too-short-dict.message:
10355         * test/data/valid-messages/dict-simple.message:
10356         * test/data/valid-messages/dict.message:
10357         * test/data/valid-messages/emptiness.message:
10358         * test/data/valid-messages/lots-of-arguments.message:
10359         * test/data/valid-messages/no-padding.message:
10360         * test/data/valid-messages/recursive-types.message:
10361         Add missing NAME fields
10362         Fix up dicts & arrays
10363
10364         * test/data/invalid-messages/dict-with-nil-value.message:
10365         Removed, this is not invalid anymore.
10366
10367         * test/data/valid-messages/recursive-types.message:
10368         Add new test for deeply recursive types.
10369
10370 2003-04-07  Havoc Pennington  <hp@pobox.com>
10371
10372         * bus/driver.c (bus_driver_handle_acquire_service): return an
10373         error if you try to acquire a service that starts with ':'
10374
10375 2003-04-07  Havoc Pennington  <hp@redhat.com>
10376
10377         * doc/dbus-specification.sgml: require that base service names
10378         start with ':' and that the base service is created/deleted
10379         as first and last things a connection does on the bus
10380
10381         * bus/dispatch.c (check_existent_service_activation): lots more
10382         work on the activation test; it doesn't fully pass yet...
10383
10384         * test/test-service.c (main): fix so we don't memleak the
10385         connection to the message bus
10386         (filter_func): accept a message asking us to exit
10387
10388 2003-04-06  Havoc Pennington  <hp@pobox.com>
10389
10390         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10391         from Colin Walters
10392
10393         * configure.in: fixes to Qt detection from Colin Walters
10394
10395         * doc/Makefile.am: Only remove generated docbook dirs if they
10396         exist, from Colin Walters
10397
10398         * dbus/dbus-bus.c: change how we set well-known connections to
10399         NULL, so that it works if a single connection is stored in
10400         two well-known array slots.
10401
10402         * test/Makefile.am: remove a lot of stuff that isn't immediately
10403         useful, it's in CVS history if we want it.
10404
10405         * test/test-service.c: use dbus-mainloop instead of that
10406         watch.[hc] crack
10407
10408 2003-04-06  Havoc Pennington  <hp@pobox.com>
10409
10410         * dbus/Makefile.am: split lists of sources into stuff that goes in
10411         the library, util functions that go in the lib and are also used
10412         elsewhere, and util functions that are used in tests/daemon but
10413         don't go in the lib.
10414
10415         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10416         here so it can be used in test binaries also
10417
10418 2003-04-06  Havoc Pennington  <hp@pobox.com>
10419
10420         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10421         here in the parent process, so we can return an error if it
10422         fails. Also, move some of the code into the child so the parent
10423         is less hosed if we fail midway through.
10424
10425         * bus/bus.c (bus_context_new): move pidfile detection further up
10426         in the function, before we start overwriting sockets and such.
10427
10428         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10429
10430         * configure.in: add --with-system-pid-file and --with-system-socket
10431
10432 2003-04-06  Colin Walters  <walters@verbum.org>
10433
10434         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10435
10436         * bus/system.conf.in: Declare a pidfile.
10437
10438         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10439         create one (if appropriate).
10440
10441         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10442         (struct BusConfigParser) [pidfile]: New.
10443         (element_type_to_name, merge_included, start_busconfig_child)
10444         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10445         (bus_config_parser_unref): Free it.
10446         (bus_config_parser_get_pidfile): New function.
10447
10448         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10449
10450         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10451
10452         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10453
10454         * dbus/dbus-sysdeps.h: Prototype it.
10455
10456 2003-04-06  Havoc Pennington  <hp@pobox.com>
10457
10458         * bus/bus.c (bus_context_new): print the address in here, rather
10459         than in main(), because we need to do it before forking the daemon
10460
10461         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10462         on the service nonexistent error
10463
10464         * bus/driver.c (bus_driver_handle_acquire_service): set the
10465         sender on the AcquireService reply
10466
10467         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10468         server also listen on a UNIX socket so services can connect to it.
10469
10470 2003-04-06  Havoc Pennington  <hp@pobox.com>
10471
10472         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10473         so it detects deadlocks and also we actually init threads when
10474         debugging.
10475
10476 2003-04-06  Havoc Pennington  <hp@pobox.com>
10477
10478         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10479         save the domain socket name, and unlink it when we disconnect the
10480         server. Means that at least when we exit normally, we won't leave
10481         a bunch of junk in /tmp
10482
10483         * dbus/dbus-transport-unix.c
10484         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10485         memory management). (I was making a real change here but then
10486         didn't)
10487
10488 2003-04-06  Havoc Pennington  <hp@pobox.com>
10489
10490         * bus/bus.c (bus_context_new): fix wrong handling of
10491         server_data_slot_unref() in the error case.
10492
10493         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10494         "(condition) != 0" to _dbus_real_assert so that
10495         "_dbus_assert (pointer)" doesn't cause a warning
10496
10497         * bus/main.c (main): accept --print-address option to print out
10498         the message bus address
10499
10500         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10501
10502         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10503         "tmpdir" option to unix: address on client side
10504
10505         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10506         to unix: address
10507
10508         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10509         we can use to create sockets in the test suite.
10510
10511         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10512         cleanly. To be used for testing.
10513
10514         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10515
10516         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10517
10518         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10519         handle trying to call this when there's no servers active
10520
10521 2003-04-05  Havoc Pennington  <hp@pobox.com>
10522
10523         * NEWS: update
10524
10525         * configure.in: 0.8
10526
10527 2003-04-05  Havoc Pennington  <hp@pobox.com>
10528
10529         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10530         crash on startup. Need to get "try starting the daemon"
10531         in the test suite I guess. ;-)
10532
10533         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10534         tracked the number of open connections; it's better done in
10535         application-specific code as you want it to span all servers etc.
10536
10537 2003-04-05  Havoc Pennington  <hp@pobox.com>
10538
10539         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10540         patch from Colin Walters
10541
10542 2003-04-05  Havoc Pennington  <hp@pobox.com>
10543
10544         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10545         reality; in fact multiple mechanisms are allowed.
10546
10547         * dbus/dbus-internals.c (_dbus_real_assert)
10548         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10549         _dbus_assert_not_reached() into functions, so that they don't show
10550         up in basic block counts for test coverage, and don't use up as
10551         much disk space. Does mean slower execution speed though, so
10552         assumes --disable-asserts is the normal production case.
10553
10554 2003-04-05  Havoc Pennington  <hp@pobox.com>
10555
10556         * test/Makefile.am (dist-hook): also dist *.in files
10557
10558         * NEWS: update
10559
10560         * configure.in: 0.7
10561
10562 2003-04-05  Havoc Pennington  <hp@pobox.com>
10563
10564         * dbus/dbus-string.c: docs warning
10565
10566         * dbus/dbus-spawn.c: missing docs
10567
10568         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10569
10570 2003-04-05  Havoc Pennington  <hp@pobox.com>
10571
10572         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10573         magic from GLib
10574
10575         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10576         to -1 once we've reaped the babysitter
10577         (_dbus_babysitter_handle_watch): do as much work as we can, not
10578         just one go of it
10579
10580         * bus/activation.c: add code using DBusBabysitter so that we
10581         handle it when a service fails to start up properly.
10582         (bus_activation_service_created): don't remove the activation
10583         entries as we go, just let them get removed when we free the pending
10584         activation. Unref reply messages after sending them.
10585
10586 2003-04-05  Havoc Pennington  <hp@pobox.com>
10587
10588         * test/decode-gcov.c (main): print per-directory stats in the report
10589
10590         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10591
10592 2003-04-05  Havoc Pennington  <hp@pobox.com>
10593
10594         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10595
10596         * test/decode-gcov.c: hack up a little program to suck data
10597         out of gcov files. Yes this is sort of silly.
10598
10599         * configure.in: define something in config.h and do an
10600         AM_CONDITIONAL when gcov is enabled
10601
10602 2003-04-04  Havoc Pennington  <hp@redhat.com>
10603
10604         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10605         return a "babysitter" object that is used to monitor the status of
10606         the spawned process and reap it when required.
10607
10608         * test/test-segfault.c, test/test-exit.c,
10609         test/test-sleep-forever.c: binaries that do various lame things,
10610         used in the test suite.
10611
10612         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10613
10614 2003-04-03  Havoc Pennington  <hp@pobox.com>
10615
10616         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10617         in preparation for modifying it, dbus-sysdeps is getting
10618         a bit unmanageable.
10619
10620 2003-04-03  Havoc Pennington  <hp@redhat.com>
10621
10622         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10623         have multiple ones
10624
10625         * bus/*.[hc]: adapt to mainloop change
10626
10627 2003-04-03  Havoc Pennington  <hp@redhat.com>
10628
10629         * bus/activation.c (load_directory): fix up memleaks
10630         (bus_activation_entry_free): free the entry
10631
10632         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10633         we get one from the message bus; fix memleaks.
10634
10635         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10636
10637 2003-04-03  Havoc Pennington  <hp@pobox.com>
10638
10639         * bus/config-parser.c (bus_config_parser_unref): free
10640         list of mechanisms, bug discovered by test suite enhancements
10641         (putting system.conf and session.conf into suite)
10642
10643         * test/Makefile.am, test/test-service.c: add placeholder for a
10644         test service that we'll activate as part of test suite. Doesn't
10645         do anything yet.
10646
10647         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10648         setting NULL value, and use system malloc not dbus_malloc()
10649         when we have unavoidable memleakage.
10650
10651         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10652         didn't work, and support DBUS_BUS_ACTIVATION.
10653
10654         * bus/activation.c (child_setup): pass our well-known bus type to
10655         the child
10656
10657         * bus/config-parser.c: support <type> to specify well-known type
10658
10659         * doc/dbus-specification.sgml: document the env variables to
10660         locate well-known buses and find service activator
10661
10662 2003-04-02  Havoc Pennington  <hp@redhat.com>
10663
10664         * test/Makefile.am (all-local): add a rule to copy tests to
10665         builddir, so we can have generated tests. Use this to remove the
10666         silly hack for testing system.conf and session.conf. Will use this
10667         shortly to generate .service files pointing to test binaries.
10668
10669 2003-04-02  Havoc Pennington  <hp@redhat.com>
10670
10671         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10672         current alloc and needed new length, not max of the doubled
10673         allocation and needed new length. Also, when building tests,
10674         don't do the double-allocation stuff, just realloc every time.
10675
10676 2003-04-02  Havoc Pennington  <hp@redhat.com>
10677
10678         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10679         in error messages
10680         (_dbus_string_get_dirname): new
10681         (_dbus_sysdeps_test): new
10682         (_dbus_directory_open): include dirnames in error messages
10683
10684         * bus/config-parser.c: interpret <include> and <includedir> and
10685         <servicedir> relative to config file location if the given
10686         filename is not absolute.
10687
10688         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10689
10690 2003-04-02  Havoc Pennington  <hp@redhat.com>
10691
10692         * bus/connection.c (bus_transaction_send_error_reply): set sender
10693         service for the error, and unref the reply on success
10694
10695         * bus/activation.c: convert to use BusTransaction so OOM can be
10696         handled correctly
10697         (bus_activation_service_created): set sender of the message
10698
10699 2003-04-01  Havoc Pennington  <hp@redhat.com>
10700
10701         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10702         <includedir> (at least mostly)
10703
10704         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10705         first, then the user ID
10706
10707 2003-04-01  Havoc Pennington  <hp@pobox.com>
10708
10709         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10710         function
10711
10712         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10713
10714         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10715
10716         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10717         socket 0777, and unlink any existing socket.
10718
10719         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10720         the configuration file so specifies; set up auth mechanism
10721         restrictions
10722
10723         * bus/config-parser.c (bus_config_parser_content): add support
10724         for <fork> option and fill in code for <auth>
10725
10726         * bus/system.conf.in: add <fork/> to default configuration,
10727         and limit auth mechanisms to EXTERNAL
10728
10729         * doc/config-file.txt (Elements): add <fork>
10730
10731         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10732         (_dbus_change_identity): new function
10733
10734 2003-03-31  Havoc Pennington  <hp@redhat.com>
10735
10736         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10737         (_dbus_listen_unix_socket): fix off-by-one error in null
10738         termination spotted by Nalin
10739
10740 2003-03-31  Havoc Pennington  <hp@redhat.com>
10741
10742         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10743         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10744         having a real home directory available.
10745
10746 2003-03-31  Havoc Pennington  <hp@redhat.com>
10747
10748         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10749
10750         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10751
10752         * configure.in: add support for specifying a style of init script
10753         to install
10754
10755 2003-03-31  Havoc Pennington  <hp@redhat.com>
10756
10757         Fix some annoying DBusString API and fix all affected code.
10758
10759         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10760         max_length argument
10761         (_dbus_string_get_data): change to return string instead of using
10762         an out param
10763         (_dbus_string_get_const_data): ditto
10764         (_dbus_string_get_data_len): ditto
10765         (_dbus_string_get_const_data_len): ditto
10766
10767 2003-03-31  Havoc Pennington  <hp@redhat.com>
10768
10769         * bus/main.c (main): fix up the command line arguments to be nicer
10770
10771 2003-03-31  Havoc Pennington  <hp@redhat.com>
10772
10773         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10774         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10775         final location that lands in the config file
10776
10777         * bus/config-loader-expat.c (bus_config_load): fix type of
10778         XML_Parser variable
10779
10780         * doc/TODO: remove TODO item for dbus_bus_get()
10781
10782         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10783
10784 2003-03-31  Havoc Pennington  <hp@pobox.com>
10785
10786         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10787         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10788         argument since they are always client side
10789
10790         * dbus/dbus-server.c (dbus_server_get_address): new function
10791
10792         * bus/main.c (main): take the configuration file as an argument.
10793
10794         * test/data/valid-config-files/debug-allow-all.conf: new file to
10795         use with dispatch.c tests for example
10796
10797         * bus/test-main.c (main): require test data dir
10798
10799         * bus/bus.c (bus_context_new): change this to take a
10800         configuration file name as argument
10801
10802         * doc/config-file.txt (Elements): add <servicedir>
10803
10804         * bus/system.conf, bus/session.conf: new files
10805
10806         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10807         well-known socket if none set
10808
10809         * configure.in: create system.conf and session.conf
10810
10811 2003-03-30  Havoc Pennington  <hp@pobox.com>
10812
10813         * bus/config-parser.c: hacking
10814
10815         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10816         to shut down, since it could cause weirdness with the DBusList
10817         lock
10818
10819         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10820         link-oriented stack routines
10821         (alloc_link): free the mempool if the first alloc from it fails
10822
10823         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10824
10825         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10826         from GLib
10827         (_dbus_string_skip_white): new
10828
10829         * doc/config-file.txt (Elements): add <includedir>
10830
10831 2003-03-28  Havoc Pennington  <hp@pobox.com>
10832
10833         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10834         (_dbus_string_copy_data): new functions
10835
10836 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10837
10838         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10839         * dbus/dbus-bus.h:
10840         Add dbus_bus_get.
10841
10842         * dbus/dbus-memory.c:
10843         Fix a doc comment.
10844
10845 2003-03-28  Havoc Pennington  <hp@pobox.com>
10846
10847         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10848         I think it may have just been superstition. Not sure.
10849
10850         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10851         failures that were not being handled.
10852
10853         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10854
10855         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10856         row that will fail on out-of-memory.
10857
10858         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10859         function for testing out-of-memory handling.
10860
10861         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10862         allocation functions, they do map exactly to the expat ones.
10863
10864 2003-03-27  Havoc Pennington  <hp@redhat.com>
10865
10866         * bus/config-loader-libxml.c (bus_config_load): add another error
10867         check
10868
10869 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10870
10871         * doc/TODO:
10872         Add note about automatic service activation.
10873
10874         * doc/dbus-specification.sgml:
10875         Rename the specification and clarify a few things.
10876
10877 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10878
10879         * Doxyfile.in:
10880         * dbus/dbus-address.c:
10881         * dbus/dbus-dict.c:
10882         * dbus/dbus-marshal.c:
10883         * dbus/dbus-server-debug-pipe.c:
10884         * dbus/dbus-transport-unix.c:
10885         Fix documentation warnings.
10886
10887 2003-03-26  Havoc Pennington  <hp@pobox.com>
10888
10889         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10890         after every test so it's quick and easy to see which leaked, and
10891         so we test multiple dbus_shutdown() calls
10892
10893         * configure.in: change configure.in XML stuff to also support
10894         expat
10895
10896         * config-loader-libxml.c: some hacking
10897
10898         * config-loader-expat.c: some hacking
10899
10900         * config-parser.c: some hacking, plus tests
10901
10902 2003-03-25  Havoc Pennington  <hp@redhat.com>
10903
10904         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10905
10906         * configure.in: add --with-xml option to specify XML library,
10907         right now only libxml is supported.
10908
10909         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10910         nonworking code between home and work, still just stubs
10911
10912 2003-03-24  Havoc Pennington  <hp@redhat.com>
10913
10914         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10915         file
10916
10917         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10918         NULL argument for "message" if the error is a well-known one,
10919         fill in a generic message in this case.
10920
10921         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10922         favor of DBusError
10923
10924         * bus/test.c (bus_test_flush_bus): add
10925
10926         * bus/policy.c (bus_policy_test): test code stub
10927
10928 2003-03-24  Havoc Pennington  <hp@pobox.com>
10929
10930         * bus/connection.c (bus_connections_setup_connection): set up
10931         the "can this user connect" function, but it always returns
10932         TRUE until we have a config file parser so we can have a config
10933         file that allows connections.
10934
10935 2003-03-23  Havoc Pennington  <hp@pobox.com>
10936
10937         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10938         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10939         the mutex, so we can check for proper memory management
10940         and OOM handling.
10941
10942         * dbus/dbus-dataslot.c: remove the mutex from
10943         DBusDataSlotAllocator and lock it manually when using it,
10944         to simplify fitting it into the global slots framework.
10945
10946         * dbus/dbus-threads.c (init_static_locks): rework how we're
10947         handling global locks so they are easily shut down.
10948
10949         * bus/policy.c (bus_policy_append_rule): fix
10950
10951         * bus/test-main.c (main): check for memleaks
10952
10953         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10954         test suite check for memleaks
10955
10956         * dbus/dbus-memory.c: add support in test mode for tracking
10957         number of outstanding blocks
10958
10959 2003-03-23  Havoc Pennington  <hp@pobox.com>
10960
10961         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10962         policies code
10963
10964         * dbus/dbus-hash.h: add ULONG hash keys
10965
10966         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10967         (_dbus_get_group_id): new function
10968
10969 2003-03-20  Havoc Pennington  <hp@redhat.com>
10970
10971         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
10972         new function
10973         (dbus_connection_get_unix_user): new function
10974
10975 2003-03-20  Havoc Pennington  <hp@pobox.com>
10976
10977         * bus/connection.c (bus_connection_send_oom_error): assert that
10978         message has a sender
10979         (connection_execute_transaction): ditto
10980         (bus_connection_preallocate_oom_error): fix to set the sender, and
10981         set recipient to the destination service, not the bus driver
10982
10983         * bus/policy.c: hacking
10984
10985         * dbus/dbus-message.c (dbus_message_service_is): new function
10986         (dbus_message_sender_is): new
10987
10988 2003-03-19  Havoc Pennington  <hp@redhat.com>
10989
10990         * bus/policy.c: start sketching code for policy restrictions on
10991         what connections can do.
10992
10993 2003-03-18  Havoc Pennington  <hp@redhat.com>
10994
10995         * doc/TODO: some notes on high-level todo items. Little nitpick
10996         stuff is all in @todo, so no need to add it here.
10997
10998         * doc/config-file.txt: some notes on how config file might look
10999
11000 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11001
11002         * configure.in: 0.6
11003
11004         * NEWS: Update.
11005
11006 2003-03-17  Havoc Pennington  <hp@redhat.com>
11007
11008         * dbus/dbus-internals.h: add gcc attributes so that
11009         our printf-style functions warn on bad arguments to
11010         format
11011
11012         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11013         format bug
11014
11015         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11016         printf format bug
11017
11018 2003-03-17  Havoc Pennington  <hp@redhat.com>
11019
11020         * bus/test-main.c (main): make it print something as it runs
11021         so make check doesn't look stuck
11022
11023         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11024         from CVS, now obsolete
11025
11026 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11027
11028         * bus/dispatch.c: (bus_dispatch):
11029         Refetch the service name since it may have been reallocated
11030         when dbus_message_set_sender was called.
11031
11032         * dbus/dbus-sysdeps.c: (_dbus_accept):
11033         Add address and address length variables and use them to stop
11034         valgrind from complaining.
11035
11036 2003-03-17  Havoc Pennington  <hp@pobox.com>
11037
11038         All tests pass, no memleaks, no valgrind complaints.
11039
11040         * bus/test.c: refcount handler_slot
11041
11042         * bus/connection.c (bus_connections_new): refcount
11043         connection_data_slot
11044
11045         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11046         bytes so that auth scripts pass.
11047
11048         * bus/dispatch.c: init message_handler_slot so it gets allocated
11049         properly
11050
11051         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11052
11053         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11054         dealloc server_pipe_hash when no longer used for benefit of
11055         leak checking
11056
11057         * dbus/dbus-auth.c (process_command): memleak fix
11058
11059         * bus/dispatch.c (check_hello_message): memleak fix
11060
11061 2003-03-16  Havoc Pennington  <hp@pobox.com>
11062
11063         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11064
11065 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11066
11067         * bus/activation.c (bus_activation_activate_service): Append
11068         the pending activation entry to the list of pending activations.
11069
11070 2003-03-16  Havoc Pennington  <hp@pobox.com>
11071
11072         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11073         connections
11074
11075         * dbus/dbus-address.c (create_entry): fix OOM handling when
11076         failing to alloc entry->method
11077
11078 2003-03-16  Havoc Pennington  <hp@pobox.com>
11079
11080         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11081         the watch
11082
11083         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11084         add some missing dbus_set_result
11085
11086         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11087         alloc the DBusMessageHandler
11088
11089         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11090         the transport here, since we call this from the finalizer; it
11091         resulted in a double-finalize.
11092
11093         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11094         where we tried to use transport->connection that was NULL,
11095         happened when transport was disconnected early on due to OOM
11096
11097         * bus/*.c: adapt to handle OOM for watches/timeouts
11098
11099         * dbus/dbus-transport-unix.c: port to handle OOM during
11100         watch handling
11101
11102         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11103         reference to unused bytes instead of a copy
11104
11105         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11106         out of memory
11107
11108         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11109         FALSE on OOM
11110
11111         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11112         of memory
11113
11114 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11115
11116         * doc/dbus-specification.sgml:
11117         Document reply message for ActivateService.
11118
11119 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11120
11121         * bus/activation.c: (bus_pending_activation_entry_free),
11122         (bus_pending_activation_free), (bus_activation_new),
11123         (bus_activation_unref), (bus_activation_service_created),
11124         (bus_activation_activate_service):
11125         * bus/activation.h:
11126         * bus/bus.c: (bus_context_new):
11127         * bus/desktop-file.c: (new_section):
11128         * bus/driver.c: (bus_driver_send_service_deleted),
11129         (bus_driver_handle_activate_service):
11130         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11131         * bus/services.h:
11132         * dbus/dbus-connection.c:
11133         (dbus_connection_send_with_reply_and_block):
11134         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11135         * dbus/dbus-protocol.h:
11136         Make activation work better. Now pending activations will be queued
11137         and the daemon won't try to activate services that are already registered.
11138
11139 2003-03-16  Havoc Pennington  <hp@pobox.com>
11140
11141         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11142         connection data
11143
11144         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11145         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11146
11147 2003-03-16  Havoc Pennington  <hp@pobox.com>
11148
11149         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11150         this. always run the test suite before commit...
11151
11152         * bus/*: adapt to DBusConnection API changes
11153
11154         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11155         requires renaming stuff to avoid dbus_connection_dispatch name
11156         conflict.
11157
11158         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11159         function
11160
11161         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11162         separate from _dbus_message_loader_return_buffer()
11163
11164         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11165         this, because it's now always broken to use; the number of
11166         messages in queue vs. the number still buffered by the message
11167         loader is undefined/meaningless. Should use
11168         dbus_connection_get_dispatch_state().
11169         (dbus_connection_dispatch): rename from
11170         dbus_connection_dispatch_message
11171
11172 2003-03-16  Havoc Pennington  <hp@pobox.com>
11173
11174         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11175         implementation
11176
11177 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11178
11179         * dbus/dbus-connection.c:
11180         (dbus_connection_send_with_reply_and_block):
11181         Decrease connection->n_incoming when removing an entry
11182         from the list.
11183         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11184         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11185         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11186         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11187         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11188         (dbus_dict_get_byte_array):
11189         Handle NULL arrays and strings. Also add support for byte arrays.
11190
11191         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11192         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11193         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11194         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11195         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11196         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11197         * dbus/dbus-marshal.h:
11198         Add support for marshalling and demarshalling empty arrays and strings.
11199
11200         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11201         (dbus_message_append_string_array),
11202         (dbus_message_iter_get_boolean),
11203         (dbus_message_iter_get_boolean_array),
11204         (dbus_message_iter_get_int32_array),
11205         (dbus_message_iter_get_uint32_array),
11206         (dbus_message_iter_get_double_array),
11207         (dbus_message_iter_get_byte_array),
11208         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11209         (check_message_handling):
11210         Add support for getting empty arrays and dicts.
11211
11212         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11213         Don't do any validation at all for now, that's better than just checking
11214         for ASCII.
11215
11216         * test/data/valid-messages/emptiness.message:
11217         New test message with lots of empty arrays.
11218
11219 2003-03-16  Havoc Pennington  <hp@pobox.com>
11220
11221         * dbus/dbus-connection.c
11222         (_dbus_connection_queue_received_message_link): new function that
11223         can't fail due to OOM
11224
11225         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11226         new function pops a message together with a list link
11227         containing it.
11228
11229         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11230         message queuing functions to avoid needing to alloc memory
11231
11232 2003-03-16  Havoc Pennington  <hp@pobox.com>
11233
11234         Oops - test code was only testing failure of around 30 of the
11235         mallocs in the test path, but it turns out there are 500+
11236         mallocs. I believe this was due to misguided linking setup such
11237         that there was one copy of dbus_malloc etc. in the daemon and one
11238         in the shared lib, and only daemon mallocs were tested. In any
11239         case, the test case now tests all 500+ mallocs, and doesn't pass
11240         yet, though there are lots of fixes in this patch.
11241
11242         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11243         this so that it doesn't need to allocate memory, since it
11244         has no way of indicating failure due to OOM (and would be
11245         annoying if it did).
11246
11247         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11248
11249         * bus/Makefile.am: rearrange to create two self-contained
11250         libraries, to avoid having libraries with overlapping symbols.
11251         that was resulting in weirdness, e.g. I'm pretty sure there
11252         were two copies of global static variables.
11253
11254         * dbus/dbus-internals.c: move the malloc debug stuff to
11255         dbus-memory.c
11256
11257         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11258         empty.
11259
11260         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11261
11262         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11263         on failure.
11264
11265         * bus/dispatch.c (bus_dispatch_add_connection): free
11266         message_handler_slot when no longer using it, so
11267         memory leak checkers are happy for the test suite.
11268
11269         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11270
11271         * bus/bus.c (new_connection_callback): disconnect in here if
11272         bus_connections_setup_connection fails.
11273
11274         * bus/connection.c (bus_connections_unref): fix to free the
11275         connections
11276         (bus_connections_setup_connection): if this fails, don't
11277         disconnect the connection, just be sure there are no side
11278         effects.
11279
11280         * dbus/dbus-string.c (undo_alignment): unbreak this
11281
11282         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11283         leaking
11284         (_dbus_auth_new): fix the order in which we free strings
11285         on OOM failure
11286
11287         * bus/connection.c (bus_connection_disconnected): fix to
11288         not send ServiceDeleted multiple times in case of memory
11289         allocation failure
11290
11291         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11292         get the base service name
11293         (dbus_bus_register_client): don't return base service name,
11294         instead store it on the DBusConnection and have an accessor
11295         function for it.
11296         (dbus_bus_register_client): rename dbus_bus_register()
11297
11298         * bus/dispatch.c (check_hello_message): verify that other
11299         connections on the bus also got the correct results, not
11300         just the one sending hello
11301
11302 2003-03-15  Havoc Pennington  <hp@pobox.com>
11303
11304         Make it pass the Hello handling test including all OOM codepaths.
11305         Now to do other messages...
11306
11307         * bus/services.c (bus_service_remove_owner): fix crash when
11308         removing owner from an empty list of owners
11309         (bus_registry_ensure): don't leave service in the list of
11310         a connection's owned services if we fail to put the service
11311         in the hash table.
11312
11313         * bus/connection.c (bus_connection_preallocate_oom_error): set
11314         error flag on the OOM error.
11315
11316         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11317         handle _dbus_transport_set_connection failure
11318
11319         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11320         to create watches up front and simply enable/disable them as
11321         needed.
11322         (unix_connection_set): this can now fail on OOM
11323
11324         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11325         of enabling/disabling a watch or timeout.
11326
11327         * bus/loop.c (bus_loop_iterate): don't touch disabled
11328         watches/timeouts
11329
11330         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11331
11332 2003-03-15  Havoc Pennington  <hp@pobox.com>
11333
11334         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11335         write useful test code, after all that futzing around ;-)
11336
11337         Test does not yet pass because we can't handle OOM in
11338         _dbus_transport_messages_pending (basically,
11339         dbus_connection_preallocate_send() does not prealloc the write
11340         watch). To fix this, I think we need to add new stuff to
11341         set_watch_functions, namely a SetEnabled function so we can alloc
11342         the watch earlier, then enable it later.
11343
11344         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11345         dbus-memory.c to the convenience lib
11346
11347         * bus/test.c: rename some static functions to keep them clearly
11348         distinct from stuff in connection.c. Handle client disconnection.
11349
11350 2003-03-14  Havoc Pennington  <hp@pobox.com>
11351
11352         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11353         transport, tests more of the real codepath. Set up clients
11354         with bus_setup_debug_client.
11355
11356         * bus/test.c (bus_setup_debug_client): function to set up debug
11357         "clients" on the main loop
11358
11359         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11360         support
11361
11362         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11363         server type
11364
11365         * dbus/dbus-server-debug.c: support a debug server based on pipes
11366
11367         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11368         (_dbus_close): new function
11369
11370         * configure.in: check for socketpair
11371
11372 2003-03-14  Havoc Pennington  <hp@redhat.com>
11373
11374         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11375         cheesy hack
11376
11377         * dbus/dbus-transport-debug.c: rework this a good bit to be
11378         less complicated. hopefully still works.
11379
11380         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11381         manually
11382
11383         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11384         after running it
11385
11386         * dbus/dbus-message.c (dbus_message_copy): rename from
11387         dbus_message_new_from_message, fix it up to copy
11388         all the message fields, add test case
11389
11390         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11391         not quite passing yet
11392
11393 2003-03-14  Havoc Pennington  <hp@pobox.com>
11394
11395         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11396         until no work remains" in test code. (the large diff here
11397         is just code movement, no actual changes)
11398
11399         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11400         1, no point waiting around for test code.
11401         (_dbus_server_debug_accept_transport): unref the timeout
11402         after adding it (right?)
11403
11404         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11405
11406 2003-03-13  Havoc Pennington  <hp@redhat.com>
11407
11408         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11409         out of memory
11410
11411         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11412         of memory
11413
11414         * dbus/dbus-connection.h: Make AddWatchFunction and
11415         AddTimeoutFunction return a bool so they can fail on out-of-memory
11416
11417         * bus/bus.c (bus_context_new): set up timeout handlers
11418
11419         * bus/connection.c (bus_connections_setup_connection): set up
11420         timeout handlers
11421
11422         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11423         can fail
11424
11425         * bus/bus.c (bus_context_new): adapt to changes
11426
11427         * bus/connection.c: adapt to changes
11428
11429         * test/watch.c: adapt to DBusWatch changes
11430
11431         * bus/dispatch.c (bus_dispatch_test): started adding this but
11432         didn't finish
11433
11434 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11435
11436         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11437
11438 2003-03-13  Havoc Pennington  <hp@pobox.com>
11439
11440         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11441         set up a test framework as for the library
11442
11443 2003-03-12  Havoc Pennington  <hp@pobox.com>
11444
11445         Throughout: purge global variables, introduce BusActivation,
11446         BusConnections, BusRegistry, etc. objects instead.
11447
11448         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11449         message bus object
11450
11451         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11452         going to redo this a bit differently I think
11453
11454 2003-03-12  Havoc Pennington  <hp@redhat.com>
11455
11456         Mega-patch that gets the message bus daemon initially handling
11457         out-of-memory. Work still needed. Also lots of random
11458         moving stuff to DBusError instead of ResultCode.
11459
11460         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11461
11462         * dbus/dbus-connection.c
11463         (dbus_connection_send_with_reply_and_block): use DBusError
11464
11465         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11466         DBusResultCode
11467
11468         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11469         code here, as the only failure possible is OOM.
11470
11471         * bus/connection.c (bus_connection_disconnect):
11472         rename bus_connection_disconnected as it's a notification only
11473
11474         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11475         "name" on get_args failure, should be done by get_args;
11476         don't disconnect client for bad args, just return an error.
11477         (bus_driver_handle_service_exists): ditto
11478
11479         * bus/services.c (bus_services_list): NULL-terminate returned array
11480
11481         * bus/driver.c (bus_driver_send_service_lost)
11482         (bus_driver_send_service_acquired): send messages from driver to a
11483         specific client to the client's unique name, not to the broadcast
11484         service.
11485
11486         * dbus/dbus-message.c (decode_header_data): reject messages that
11487         contain no name field
11488         (_dbus_message_get_client_serial): rename to
11489         dbus_message_get_serial and make public
11490         (_dbus_message_set_serial): rename from set_client_serial
11491         (_dbus_message_set_reply_serial): make public
11492         (_dbus_message_get_reply_serial): make public
11493
11494         * bus/connection.c (bus_connection_foreach): allow stopping
11495         iteration by returning FALSE from foreach function.
11496
11497         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11498         (dbus_connection_free_preallocated_send)
11499         (dbus_connection_preallocate_send): new API for sending a message
11500         without possibility of malloc failure.
11501         (dbus_connection_send_message): rename to just
11502         dbus_connection_send (and same for whole function family)
11503
11504         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11505
11506         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11507
11508         * bus/activation.c: handle/return errors
11509
11510         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11511
11512         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11513         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11514         (_dbus_result_from_errno): move to this file
11515
11516 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11517
11518         * dbus/dbus-marshal.c:
11519         (_dbus_marshal_set_string):
11520         Take a length argument so we can marshal the correct string
11521         length.
11522
11523         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11524         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11525         (_dbus_marshal_test):
11526         * dbus/dbus-marshal.h:
11527         Add support for marshalling and demarshalling dicts.
11528
11529         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11530         Add support for TYPE DICT.
11531
11532         * dbus/dbus-message.c: (set_string_field):
11533         Adjust header padding.
11534
11535         (dbus_message_append_args_valist), (dbus_message_append_dict),
11536         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11537         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11538         (check_message_handling), (check_have_valid_message):
11539         * dbus/dbus-message.h:
11540         Add functions for setting and getting dicts.
11541
11542         * dbus/dbus-protocol.h:
11543         Add DBUS_TYPE_DICT.
11544
11545         * dbus/dbus.h:
11546         Add dbus-dict.h
11547
11548         * doc/dbus-specification.sgml:
11549         Add information about how dicts are marshalled.
11550
11551         * test/data/invalid-messages/dict-with-nil-value.message:
11552         * test/data/invalid-messages/too-short-dict.message:
11553         * test/data/valid-messages/dict-simple.message:
11554         * test/data/valid-messages/dict.message:
11555         Add sample messages containing dicts.
11556
11557 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11558
11559         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11560
11561 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11562
11563         * dbus/Makefile.am:
11564         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11565         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11566         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11567         (dbus_dict_set_double), (dbus_dict_set_string),
11568         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11569         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11570         (dbus_dict_set_string_array), (_dbus_dict_test):
11571         * dbus/dbus-dict.h:
11572         Fix according to comments from Havoc.
11573
11574 2003-03-06  Michael Meeks  <michael@server.home>
11575
11576         * configure.in: if we don't have kde-config, disable have_qt.
11577
11578 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11579
11580         * dbus/Makefile.am:
11581         Add dbus-dict.[ch]
11582
11583         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11584         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11585         (dbus_dict_remove), (dbus_dict_get_value_type),
11586         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11587         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11588         (dbus_dict_put_double), (dbus_dict_put_string),
11589         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11590         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11591         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11592         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11593         (dbus_dict_get_double), (dbus_dict_get_string),
11594         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11595         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11596         (dbus_dict_get_string_array), (_dbus_dict_test):
11597         * dbus/dbus-dict.h:
11598         Add DBusDict implementation
11599
11600         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11601         * dbus/dbus-test.h:
11602         Add _dbus_dict_test
11603
11604 2003-03-04  Havoc Pennington  <hp@pobox.com>
11605
11606         * test/data/auth/*: adapt to changes
11607
11608         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11609         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11610         userid
11611
11612         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11613         more stuff from being in a context name, to make the protocol
11614         simpler to deal with
11615
11616         * dbus/dbus-errors.c (dbus_error_has_name): new function
11617         (dbus_error_is_set): new function
11618
11619         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11620         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11621
11622         * dbus/dbus-connection.c (dbus_connection_flush): also read
11623         messages during a flush operation
11624
11625         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11626
11627 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11628
11629         * configure.in: Check for gethostbyname on Solaris.
11630
11631         * dbus/dbus-transport.c: (_dbus_transport_open):
11632         Remove duplicate "tcp" entry.
11633
11634         * doc/dbus-specification.sgml:
11635         Clarify some things.
11636
11637 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11638
11639         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11640         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11641         (_dbus_keyring_test):
11642         * dbus/dbus-md5.c: (_dbus_md5_compute):
11643         * dbus/dbus-sha.c: (_dbus_sha_compute):
11644         Plug memory leaks.
11645
11646 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11647
11648         * README: Add some things.
11649
11650 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11651
11652         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11653         after case DBUS_TYPE_BOOELAN.
11654
11655 2003-03-02  Havoc Pennington  <hp@pobox.com>
11656
11657         * test/break-loader.c (randomly_set_extreme_ints): add test that
11658         sets really huge and small integers
11659
11660         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11661         that length of boolean array fits in the string, and that
11662         string has room for boolean value in single-bool case.
11663
11664         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11665         optional value to "ALIGN" command which is what to fill the
11666         alignment with.
11667
11668         * test/data/valid-messages/no-padding.message: add regression
11669         test for the message padding problem
11670
11671 2003-03-02  Havoc Pennington  <hp@pobox.com>
11672
11673         * dbus/dbus-message.c (decode_header_data): fix to always init
11674         message_padding, from Benjamin Dauvergne
11675
11676 2003-03-02  Havoc Pennington  <hp@pobox.com>
11677
11678         * configure.in: 0.5
11679
11680         * NEWS: Update.
11681
11682 2003-03-01  Joe Shaw  <joe@assbarn.com>
11683
11684         * configure.in: Check for "struct cmsgcred" and try to access its
11685         members for BSD-like unices.
11686
11687         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11688         _dbus_read_credentials_unix_socket().
11689         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11690         read() for reading the credential byte off the unix socket.  Use
11691         struct cmsgcred on systems that support it.
11692
11693 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11694
11695         * glib/Makefile.am:
11696         * configure.in:
11697         Make gthreads-2.0 dependency optional. Don't build thread test if
11698         its not found.
11699
11700 2003-02-27  Havoc Pennington  <hp@pobox.com>
11701
11702         * dbus/dbus-connection.c
11703         (dbus_connection_send_message_with_reply_and_block): fix doh!
11704         doh! doh! bug that resulted in never removing a reply from the
11705         queue, no wonder we called get_reply_serial so much ;-)
11706
11707         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11708         and client serial instead of demarshaling them every time
11709
11710 2003-02-27  Havoc Pennington  <hp@pobox.com>
11711
11712         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11713         more inlined, using dbus-string-private.h, speeds things up
11714         substantially
11715
11716         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11717         when freeing the string
11718         (_dbus_string_steal_data): fix for align offset
11719         (undo_alignment): new function
11720
11721 2003-02-26  Havoc Pennington  <hp@redhat.com>
11722
11723         All kinds of audit fixes from Owen, plus initial attempt to
11724         handle unaligned memory returned from malloc.
11725
11726         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11727         leave room for align_offset and nul byte
11728         (fixup_alignment): function to track an align_offset and
11729         ensure real->str is aligned
11730         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11731         to allow a nul byte plus align offset
11732         (_dbus_string_lock): fix overflow issue
11733         (_dbus_string_init_const_len): add assertions on sanity of len,
11734         assign allocated to be ALLOCATION_PADDING larger than len
11735         (set_length): fixup the overflow handling
11736         (_dbus_string_get_data_len): fix overflow in assertion
11737         (open_gap): detect overflow in size of gap to be opened
11738         (_dbus_string_lengthen): add overflow check
11739         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11740         (_dbus_string_append): add overflow check
11741         (_dbus_string_append_unichar): overflow
11742         (_dbus_string_delete): fix overflow in assertion
11743         (_dbus_string_copy_len): overflow in assertion
11744         (_dbus_string_replace_len): overflows in assertions
11745         (_dbus_string_find): change to implement in terms of
11746         _dbus_string_find_to
11747         (_dbus_string_find_to): assorted fixage
11748         (_dbus_string_equal_c_str): assert c_str != NULL,
11749         fix logic so the function works
11750         (_dbus_string_ends_with_c_str): fix overflow thingy
11751         (_dbus_string_base64_encode): overflow fix
11752         (_dbus_string_validate_ascii): overflow
11753         (_dbus_string_validate_nul): overflow
11754
11755 2003-02-26  Havoc Pennington  <hp@redhat.com>
11756
11757         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11758
11759 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11760
11761         * configure.in:
11762         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11763
11764         * dbus/dbus-connection.c:
11765         * dbus/dbus-connection.h:
11766         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11767         Add dbus_connection_set_wakeup_main_function and use it when queueing
11768         incoming and outgoing messages.
11769
11770
11771         * dbus/dbus-dataslot.c:
11772         Threadsafe usage of DBusDataSlotAllocator
11773
11774         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11775         dbus_new can fail.
11776
11777         * dbus/dbus-server-unix.c:
11778         Add todo comment
11779
11780         * glib/dbus-gmain.c:
11781         Implement the new wakeup functions for glib.
11782
11783         * glib/Makefile.am:
11784         * glib/test-thread-client.c:
11785         * glib/test-thread-server.c:
11786         * glib/test-thread.h:
11787         Initial cut at some thread test code. Not really done yet.
11788
11789 2003-02-26  Havoc Pennington  <hp@pobox.com>
11790
11791         * dbus/dbus-connection.c
11792         (dbus_connection_send_message_with_reply_and_block): fix crash
11793         where we ref'd the outgoing message instead of the returned reply
11794
11795         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11796         at the end of this function, so if we didn't need to read for
11797         authentication, we reinstall it for receiving messages
11798
11799         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11800         a NULL sender for peer-to-peer case
11801
11802         * dbus/dbus-transport-unix.c (check_read_watch): handle
11803         !authenticated case correctly
11804
11805         * glib/dbus-gmain.c: add support for DBusServer
11806
11807         * dbus/dbus-server.c: add data slot support
11808
11809         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11810         return values and handle errors
11811
11812         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11813         DBusConnection
11814
11815         * Doxyfile.in (INPUT): add glib subdir
11816
11817         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11818         setup_with_g_main instead of hookup_with_g_main; write docs
11819
11820 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11821
11822         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11823         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11824         * dbus/dbus-message.c: (dbus_message_append_boolean),
11825         (dbus_message_append_boolean_array),
11826         (dbus_message_get_args_valist), (_dbus_message_test):
11827         * dbus/dbus-message.h:
11828         * doc/dbus-specification.sgml:
11829         Various fixes as pointed out by Havoc.
11830
11831         * test/data/invalid-messages/bad-boolean-array.message:
11832         * test/data/invalid-messages/bad-boolean.message:
11833         Add invalid boolean value test cases.
11834
11835 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11836
11837         * dbus/dbus-internals.c: (_dbus_type_to_string):
11838         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11839         (_dbus_marshal_validate_arg):
11840         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11841         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11842         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11843         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11844         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11845         (dbus_message_iter_get_double),
11846         (dbus_message_iter_get_boolean_array), (message_iter_test):
11847         * dbus/dbus-message.h:
11848         * dbus/dbus-protocol.h:
11849         * doc/dbus-specification.sgml:
11850         * test/data/valid-messages/lots-of-arguments.message:
11851         Add support for boolean and boolean array types.
11852
11853 2003-02-23  Havoc Pennington  <hp@pobox.com>
11854
11855         * dbus/dbus-keyring.c: finish most of this implementation and
11856         simple unit test
11857
11858         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11859         these barf if the error isn't cleared to NULL
11860
11861         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11862         (_dbus_create_directory): new function
11863
11864         * dbus/dbus-errors.c (dbus_set_error): fix warning
11865
11866         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11867         (_dbus_string_hex_decode): new function
11868         (test_hex_roundtrip): test code
11869
11870         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11871
11872         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11873
11874         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11875         the save-to-temp/rename trick to atomically write the new file
11876         (_dbus_string_parse_uint): new function
11877
11878 2003-02-22  Havoc Pennington  <hp@pobox.com>
11879
11880         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11881
11882 2003-02-22  Havoc Pennington  <hp@pobox.com>
11883
11884         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11885         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11886
11887         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11888
11889         * dbus/test/data/sha-1: add US government test suite for SHA-1
11890
11891 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11892
11893         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11894         Make string arrays NULL-terminated.
11895
11896         * dbus/dbus-memory.c: (dbus_free_string_array):
11897         * dbus/dbus-memory.h:
11898         New function for freeing NULL-terminated string arrays.
11899
11900         * dbus/dbus-message-builder.c: (append_quoted_string),
11901         (_dbus_message_data_load):
11902         Add support for array types.
11903
11904         * dbus/dbus-message.c: (check_message_handling):
11905         Add more types as test cases.
11906
11907         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11908         (_dbus_string_parse_double):
11909         Add the start offset to the end offset.
11910
11911         * test/data/valid-messages/lots-of-arguments.message:
11912         New test message with lots of arguments.
11913
11914 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * dbus/dbus-message.c: (dbus_message_append_nil),
11917         (dbus_message_append_int32), (dbus_message_append_uint32),
11918         (dbus_message_append_double), (dbus_message_append_string),
11919         (dbus_message_append_int32_array),
11920         (dbus_message_append_uint32_array),
11921         (dbus_message_append_double_array),
11922         (dbus_message_append_byte_array),
11923         (dbus_message_append_string_array):
11924         Fix all out-of-memory handling in these functions.
11925
11926 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11927
11928         * dbus/dbus-message.c: (dbus_message_append_nil):
11929         Fix a silly.
11930
11931 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11932
11933         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11934         (dbus_message_append_nil), (dbus_message_append_int32_array),
11935         (dbus_message_append_uint32_array),
11936         (dbus_message_append_double_array),
11937         (dbus_message_append_byte_array),
11938         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11939         (dbus_message_iter_get_int32_array),
11940         (dbus_message_iter_get_uint32_array),
11941         (dbus_message_iter_get_double_array),
11942         (dbus_message_iter_get_byte_array),
11943         (dbus_message_iter_get_string_array):
11944
11945         * dbus/dbus-message.h:
11946         Add functions for appending and getting arrays.
11947
11948 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11949
11950         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11951         element size at least 8 bytes, fixes mempool tests on
11952         64-bit machines.
11953
11954 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11955
11956         * dbus/dbus-transport-unix.c (unix_do_iteration):
11957         Unlock the connection mutex during a blocking select call.
11958         Add todo about how we need a way to wake up the select.
11959
11960         * dbus/dbus-connection-internal.h:
11961         * dbus/dbus-connection.c:
11962         Add _dbus_connection_lock and _dbus_connection_unlock.
11963
11964 2003-02-19  Havoc Pennington  <hp@pobox.com>
11965
11966         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11967         Doxyfile.in, not Doxyfile
11968
11969         * dbus/dbus-keyring.c: do some hacking on this
11970
11971         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
11972
11973         * dbus/dbus-errors.c (dbus_set_error_const): do not call
11974         dbus_error_init
11975         (dbus_set_error): remove dbus_error_init, check for message ==
11976         NULL *before* we sprintf into it, and add @todo about including
11977         system headers in this file
11978
11979         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
11980
11981         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
11982
11983         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
11984         get various bits of user information based on either username
11985         or user ID
11986         (_dbus_homedir_from_username): new function
11987
11988 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
11989
11990         * configure.in:
11991         Add check for nonposix getpwnam_r
11992
11993         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
11994         Align the pool element size to a sizeof (void *) boundary.
11995
11996         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
11997         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
11998         General Solaris fixes.
11999
12000         * test/data/valid-messages/simplest-manual.message:
12001         Explicitly state that we want little-endian packing.
12002
12003 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12004
12005         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12006
12007         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12008         Added to create a transport connecting using a tcp/ip socket.
12009
12010         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12011         to a tcp socket at given host and port.
12012         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12013         hostname and port.
12014
12015         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12016
12017         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12018         Added to create a server listening on a TCP/IP socket.
12019
12020 2003-02-19  Havoc Pennington  <hp@pobox.com>
12021
12022         Throughout: mop up all the Doxygen warnings and undocumented
12023         stuff.
12024
12025         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12026         to search any paths.
12027
12028         * dbus/dbus-threads.c: move global mutex initializers to
12029         dbus-internals.h, multiple prototypes was confusing doxygen
12030         besides being kind of ugly
12031
12032         * Doxyfile (PREDEFINED): have Doxygen define
12033         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12034         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12035         (do not abuse the feature! it's for stuff like the autogenerated
12036         macros in dbus-md5.c, not just for things you don't feel like
12037         documenting...)
12038
12039 2003-02-18  Havoc Pennington  <hp@pobox.com>
12040
12041         * dbus/dbus-string.c (_dbus_string_zero): new function
12042
12043         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12044         wrap it in some dbus-friendly API
12045
12046         * dbus/dbus-types.h: add 16-bit types
12047
12048 2003-02-18  Joe Shaw  <joe@assbarn.com>
12049
12050         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12051         credentials from our currently running process.
12052         (get_word): Fix a buglet where we were copying the entire length
12053         instead of relative to our position.
12054
12055         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12056         keys on the stack... it's 640k of data.
12057
12058         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12059         read the credentials byte off the socket, even if we don't have
12060         SO_PEERCRED.
12061         (_dbus_poll): Implement poll() using select() for systems which
12062         don't have it.
12063
12064         * glib/test-dbus-glib.c (main): Print out an error if no
12065         parameters are given.
12066
12067         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12068         can fallback to a secondary auth mechanism if the first fails.
12069
12070 2003-02-18  Havoc Pennington  <hp@pobox.com>
12071
12072         * AUTHORS: add Alex
12073
12074 2003-02-17  Havoc Pennington  <hp@pobox.com>
12075
12076         * doc/dbus-specification.sgml: lots of cosmetic
12077         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12078         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12079         s/server/bus/ (except in authentication section). Add a section
12080         "Message Bus Message Routing"
12081
12082 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12083
12084         Release 0.4
12085
12086         * NEWS: Update
12087
12088 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12089
12090         * doc/dbus-specification.sgml:
12091         Specification updates.
12092
12093 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12094
12095         * bus/activation.c: (bus_activation_init), (child_setup),
12096         (bus_activation_activate_service):
12097         * bus/activation.h:
12098         * bus/main.c: (main):
12099         Set DBUS_ADDRESS environment variable.
12100
12101         * dbus/dbus-errors.c: (dbus_set_error):
12102         Don't use va_copy since that's a C99 feature.
12103
12104         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12105         (_dbus_spawn_async):
12106         * dbus/dbus-sysdeps.h:
12107         Add child_setup_func to _dbus_spawn_async.
12108
12109         * doc/dbus-specification.sgml:
12110         Update specification.
12111
12112         * test/spawn-test.c: (setup_func), (main):
12113         Fix test.
12114
12115 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12116
12117         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12118         Added todo.
12119
12120 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12121
12122         * doc/.cvsignore:
12123         * doc/Makefile.am:
12124         * doc/dbus-test-plan.sgml:
12125         Add test plan document.
12126
12127         * test/Makefile.am:
12128         Fix distcheck.
12129
12130 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12131
12132         * dbus/dbus-message.c: (decode_header_data),
12133         (_dbus_message_loader_return_buffer):
12134         Set the header padding amount when loading a message.
12135
12136 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12137
12138         * bus/dispatch.c: (send_one_message):
12139         Only send broadcast messages to registered connections.
12140
12141         * dbus/dbus-message.c: (dbus_message_name_is):
12142         * dbus/dbus-message.h:
12143         New convenience function.
12144
12145         * dbus/dbus-transport-debug.c: (do_reading):
12146         Only dispatch one message per run.
12147
12148         * test/Makefile.am:
12149         * test/bus-test.c: (new_connection_callback), (die),
12150         (test_hello_client1_handler), (test_hello_client2_handler),
12151         (test_hello_replies), (main):
12152
12153         * test/bus-test-loop.[ch]:
12154         Add these.
12155
12156 2003-02-16  Havoc Pennington  <hp@pobox.com>
12157
12158         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12159         backward conditional
12160
12161 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12162
12163         * dbus/dbus-connection.c:
12164         Implement sent_message_with_reply. (with_reply_and block is still
12165         busted).
12166         Made dispatch_message not lose message if OOM.
12167
12168         * dbus/dbus-errors.h:
12169         Add NoReply error (for reply timeouts).
12170
12171 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12172
12173         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12174         Actually free keys and values when destroying hashtable.
12175
12176 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12177
12178         * dbus/dbus-auth.c: (client_try_next_mechanism):
12179         Plug a leak.
12180
12181         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12182         Return TRUE if there's no thread implementation around.
12183
12184         * glib/dbus-gmain.c: (free_source),
12185         (dbus_connection_hookup_with_g_main):
12186         Make sure to remove the GSource when the connection is finalized.
12187
12188 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12189
12190         * bus/dispatch.c: (bus_dispatch_message_handler):
12191         * dbus/dbus-errors.h:
12192         Return an error if someone tries to send a message to a service
12193         that doesn't exist.
12194
12195 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12196
12197         * bus/activation.c: (load_directory), (bus_activation_init),
12198         (bus_activation_activate_service):
12199         * bus/activation.h:
12200         * bus/driver.c:
12201         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12202         More work on the activation handling.
12203
12204         * dbus/dbus-errors.h:
12205         Add some error messages
12206
12207         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12208         * dbus/dbus-message.h:
12209         New function that creates an error message.
12210
12211         * dbus/dbus-protocol.h:
12212         Add ACTIVATE_SERVER message.
12213
12214         * dbus/dbus-server-unix.c: (unix_handle_watch),
12215         (_dbus_server_new_for_domain_socket):
12216         Call _dbus_fd_set_close_on_exec.
12217
12218         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12219         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12220         (_dbus_fd_set_close_on_exec):
12221         * dbus/dbus-sysdeps.h:
12222         Add _dbus_fd_set_close_on exec function. Also add function that checks
12223         that all open fds are set to close-on-exec and warns otherwise.
12224
12225         * dbus/dbus-transport-unix.c:
12226         (_dbus_transport_new_for_domain_socket):
12227         Call _dbus_fd_set_close_on_exec.
12228
12229 2003-02-16  Havoc Pennington  <hp@pobox.com>
12230
12231         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12232         allow people to avoid setting SIGPIPE to SIG_IGN
12233         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12234         we've been asked not to
12235
12236 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12237
12238         * dbus/dbus-list.c: (_dbus_list_append_link),
12239         (_dbus_list_prepend_link):
12240         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12241         (dbus_realloc):
12242         Warning fixes.
12243
12244 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12245
12246         * bus/Makefile.am:
12247         * bus/activation.c: (bus_activation_entry_free),
12248         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12249         * bus/activation.h:
12250         * bus/main.c: (main):
12251         Add simple activation support, doesn't work yet though.
12252
12253 2003-02-15   Zack Rusin  <zack@kde.org>
12254
12255         * qt/dbus-qthread.cpp:  small casting fix
12256
12257 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12258
12259         * dbus/dbus-errors.c: (dbus_set_error):
12260         * dbus/dbus-errors.h:
12261         Add a few errors and make dbus_set_error void.
12262
12263         * dbus/dbus-sysdeps.c:
12264         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12265         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12266         * dbus/dbus-sysdeps.h:
12267         Add _dbus_spawn_async.
12268
12269         * test/spawn-test.c: (main):
12270         Test for _dbus_spawn_async.
12271
12272 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12273
12274         * dbus/dbus-internals.h:
12275         Fix build without tests.
12276
12277         * dbus/dbus-list.c: (alloc_link):
12278         Fix a segfault when a malloc fails.
12279
12280         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12281         (dbus_malloc0), (dbus_realloc):
12282         Add support for malloc debugging.
12283
12284 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12285
12286         * dbus/dbus-threads.c:
12287         * dbus/dbus-threads.h:
12288         Add condvars. Remove static mutext from API.
12289         Implement static mutexes by initializing them from threads_init.
12290
12291         * glib/dbus-gthread.c:
12292         * qt/dbus-qthread.cpp:
12293         Update with the thread api changes.
12294
12295
12296         * dbus/dbus-list.c:
12297         * dbus/dbus-list.h:
12298         Turn StaticMutex into normal mutex + init function.
12299         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12300         _dbus_list_append_link, _dbus_list_prepend_link
12301
12302
12303         * dbus/dbus-sysdeps.c:
12304         * dbus/dbus-sysdeps.h:
12305         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12306         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12307
12308         * dbus/dbus-protocol.h:
12309         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12310
12311         * dbus/dbus-message.c:
12312         Make ref/unref atomic.
12313         Fix some docs.
12314
12315         * dbus/dbus-connection-internal.h:
12316         * dbus/dbus-connection.c:
12317         * dbus/dbus-connection.h:
12318         Make threadsafe.
12319         Change _peek to _borrow,_return & _steal_borrowed.
12320         Change disconnect callback to event.
12321         Make dbus_connection_dispatch_messages reentrant.
12322
12323         * dbus/dbus-transport.c:
12324         Don't ref the connection on calls to the transport
12325         implementation.
12326
12327         * dbus/dbus-message-handler.c:
12328         Make threadsafe.
12329
12330         * glib/dbus-gmain.c:
12331         Don't use peek_message anymore
12332
12333         * test/Makefile.am:
12334         * test/debug-thread.c:
12335         * test/debug-thread.h:
12336         Simple thread implementation that asserts() on deadlocks in
12337         single-threaded code.
12338
12339         * test/bus-test.c:
12340         (main) Call debug_threads_init.
12341
12342         * test/watch.c:
12343         Use disconnect message instead of disconnect callback.
12344
12345         * bus/connection.c:
12346         * bus/connection.h:
12347         Don't call dbus_connection_set_disconnect_function. Instead export
12348         bus_connection_disconnect.
12349
12350         * bus/dispatch.c:
12351         Call bus_connection_disconnect when we get a disconnected message.
12352
12353 2003-02-15  Havoc Pennington  <hp@pobox.com>
12354
12355         * dbus/dbus-message.c (dbus_message_new): fool around with the
12356         docs
12357
12358 2003-02-14  Havoc Pennington  <hp@pobox.com>
12359
12360         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12361
12362         * dbus/dbus-memory.c: fail if the debug functions indicate we
12363         should
12364
12365         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12366         (_dbus_decrement_fail_alloc_counter): debug functions to
12367         simulate memory allocation failures
12368
12369 2003-02-14  Havoc Pennington  <hp@pobox.com>
12370
12371         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12372         to DBusError
12373
12374 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12375
12376         * bus/driver.c: (bus_driver_handle_hello):
12377         * bus/driver.h:
12378         * bus/services.c: (bus_service_lookup):
12379         Reorder message sending so we get a more sane order.
12380
12381         * test/bus-test.c: (message_handler):
12382         Fix tyop.
12383
12384 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12385
12386         * bus/driver.c: (bus_driver_send_service_deleted),
12387         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12388         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12389         (bus_driver_send_welcome_message),
12390         (bus_driver_handle_list_services),
12391         (bus_driver_handle_acquire_service),
12392         (bus_driver_handle_service_exists):
12393         * dbus/dbus-bus.c: (dbus_bus_register_client),
12394         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12395         * dbus/dbus-errors.c: (dbus_result_to_string):
12396         * dbus/dbus-errors.h:
12397         * dbus/dbus-message.c: (dbus_message_append_args),
12398         (dbus_message_append_args_valist), (dbus_message_get_args),
12399         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12400         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12401         (dbus_message_iter_get_byte_array),
12402         (dbus_message_iter_get_string_array), (message_iter_test),
12403         (check_message_handling), (_dbus_message_test):
12404         * dbus/dbus-message.h:
12405         * test/bus-test.c: (main):
12406         Change fields to arguments in messages, so that they won't be
12407         confused with header fields.
12408
12409         * glib/test-dbus-glib.c: (main):
12410         Remove append_fields from hello message.
12411
12412 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12413
12414         * dbus/dbus-errors.c:
12415         * dbus/dbus-message.c:
12416         * dbus/dbus-string.c:
12417         Documentation fixes.
12418
12419 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12420
12421         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12422         (remove_timeout):
12423         Implement support for timeouts in dbus-glib.
12424
12425 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12426
12427         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12428         * dbus/dbus-message.c: (process_test_subdir):
12429         * test/break-loader.c: (find_breaks_based_on):
12430         Plug some memory leaks.
12431
12432 2003-02-13  Richard Hult  <rhult@codefactory.se>
12433
12434         * bus/main.c: Fix build.
12435
12436         * dbus/dbus-errors.h:
12437         * dbus/dbus-errors.c: Fix copyright for Anders.
12438
12439 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12440
12441         * bus/Makefile.am:
12442         Add utils.[ch]
12443
12444         * bus/connection.c: (bus_connection_foreach):
12445         Fix a warning.
12446
12447         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12448         (unescape_string), (new_section), (parse_section_start),
12449         (parse_key_value), (report_error), (bus_desktop_file_load),
12450         (bus_desktop_file_get_string):
12451         * bus/desktop-file.h:
12452         Use DBusError for error reporting.
12453
12454         * bus/dispatch.c: (send_one_message),
12455         (bus_dispatch_message_handler):
12456         * bus/driver.c: (bus_driver_send_service_deleted),
12457         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12458         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12459         (bus_driver_send_welcome_message),
12460         (bus_driver_handle_list_services),
12461         (bus_driver_handle_acquire_service),
12462         (bus_driver_handle_service_exists):
12463         * bus/loop.c: (bus_loop_run):
12464         * bus/main.c:
12465         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12466
12467         * bus/utils.c: (bus_wait_for_memory):
12468         * bus/utils.h:
12469         New files with general utility functions.
12470
12471         * dbus/dbus-internals.h:
12472         Remove _DBUS_HANDLE_OOM.
12473
12474 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12475
12476         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12477         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12478         * dbus/dbus-errors.h:
12479         Add DBusError structure.
12480
12481 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12482
12483         * test/data/valid-messages/standard-acquire-service.message:
12484         * test/data/valid-messages/standard-hello.message:
12485         * test/data/valid-messages/standard-list-services.message:
12486         * test/data/valid-messages/standard-service-exists.message:
12487         Add some standard messages.
12488
12489 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12490
12491         * bus/driver.c: (bus_driver_send_welcome_message),
12492         (bus_driver_handle_list_services),
12493         (bus_driver_handle_acquire_service),
12494         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12495         Update for API changes in libdbus.
12496
12497         * dbus/dbus-message.c: (dbus_message_new_reply):
12498         * dbus/dbus-message.h:
12499         Remove the name argument. The spec states that replies shouldn't
12500         have a name.
12501
12502 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12503
12504         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12505         (report_error), (bus_desktop_file_load), (lookup_section),
12506         (lookup_line), (bus_desktop_file_get_raw),
12507         (bus_desktop_file_get_string):
12508         * bus/desktop-file.h:
12509         Some fixes, and new functions for getting a key value from a section.
12510
12511 2003-02-13  Havoc Pennington  <hp@pobox.com>
12512
12513         * test/data/auth/fail-after-n-attempts.auth-script: new test
12514
12515         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12516         reject the client.
12517
12518 2003-02-13  Havoc Pennington  <hp@pobox.com>
12519
12520         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12521         dbus_credentials_match were backward
12522
12523         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12524         NO_CREDENTIALS and ROOT_CREDENTIALS
12525
12526         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12527         into here. Never process more commands after we've reached an
12528         end state; store further data as unused bytes.
12529
12530         * test/data/auth/*: add more auth tests
12531
12532         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12533         command to match exact string and EXPECT_UNUSED to match unused
12534         bytes
12535
12536         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12537
12538 2003-02-12  Havoc Pennington  <hp@pobox.com>
12539
12540         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12541         \r off of popped lines
12542
12543         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12544         scripts
12545
12546         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12547         SEND, append \r\n
12548
12549 2003-02-12  Havoc Pennington  <hp@pobox.com>
12550
12551         * dbus/Makefile.am: remove break-loader from the build, since it
12552         moved.
12553
12554         * configure.in: add --enable-gcov to turn on coverage profiling
12555         flags and disable optimization
12556
12557 2003-02-10  Havoc Pennington  <hp@pobox.com>
12558
12559         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12560         initial cut at test framework for DBusAuth from laptop.
12561         Doesn't quite work yet but it compiles and I need to get
12562         it off the 266mhz laptop. ;-)
12563
12564         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12565         fix a memleak in error case
12566
12567 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12568
12569         * bus/Makefile.am:
12570         * bus/desktop-file.c:
12571         * bus/desktop-file.h:
12572         Add a desktop file parser.
12573
12574 2003-02-11  Zack Rusin  <zack@kde.org>
12575
12576         * qt/message.[h|cpp]: sample implementation
12577         of the KDE wrapper for DBusMessage
12578
12579 2003-02-09  Zack Rusin  <zack@kde.org>
12580
12581         * test/bus-test.c: make_it_compile
12582         * doc/dbus-specification.sgml: minimal semantic fix
12583
12584 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12585
12586         Release 0.3
12587
12588         * NEWS: Update
12589
12590 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12591
12592         * dbus/Makefile.am:
12593         * dbus/dbus-break-loader.c:
12594         * test/Makefile.am:
12595         * test/break-loader.c:
12596         Move dbus-break-loader to test/ and rename it to break-loader.
12597
12598 2003-02-02  Havoc Pennington  <hp@pobox.com>
12599
12600         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12601         for code to manage cookies in your home directory
12602
12603         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12604
12605         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12606         to authenticate, then disconnect the client.
12607
12608 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12609
12610         * dbus/dbus-message.c (dbus_message_append_fields):
12611         Correct docs.
12612
12613 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12614
12615         * doc/dbus-specification.sgml:
12616         Update address format section.
12617
12618 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12619
12620         * test/Makefile.am:
12621         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12622         (message_handler), (new_connection_callback), (loop_quit),
12623         (loop_run), (main):
12624         Add bus test.
12625
12626 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12627
12628         * bus/driver.c: (bus_driver_handle_service_exists):
12629         Simplify the code a bit.
12630
12631         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12632         Fix a silly.
12633
12634 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12635
12636         * bus/Makefile.am:
12637         Add libdbus-daemon.la and link to it.
12638
12639 2003-02-01  James Willcox  <jwillcox@gnome.org>
12640
12641         * bus/driver.c: (bus_driver_handle_own_service):
12642         Actually include the service reply code in the message.
12643
12644 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12645
12646         * bus/driver.c: (bus_driver_handle_service_exists):
12647         Don't unref the incoming message.
12648
12649 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12650
12651         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12652
12653 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12654
12655         * dbus/dbus-server.c: (dbus_server_listen):
12656         * dbus/dbus-transport.c: (_dbus_transport_open):
12657         ifdef out the calls to the debug transport and server.
12658
12659 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12660
12661         * dbus/dbus-watch.c (dbus_watch_get_flags):
12662         Add note in the docs that ERROR or HANGUP won't be returned
12663         and are assumed always on.
12664
12665         * glib/dbus-gmain.c (add_watch):
12666         Always add IO_ERR | IO_HUP
12667
12668         * dbus/dbus-message.h:
12669         Add semicolon after dbus_message_iter_get_string_array().
12670         Makes qt code build again
12671
12672 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12673
12674         * bus/driver.c: (create_unique_client_name),
12675         (bus_driver_handle_hello):
12676         Don't take a name, just use a numeric id to identify
12677         each client.
12678
12679         * dbus/Makefile.am:
12680         * dbus/dbus-bus.c: (dbus_bus_register_client),
12681         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12682         * dbus/dbus-bus.h:
12683         Add new convenience functions for communicating with the bus.
12684
12685         * dbus/dbus-message.h:
12686
12687         * dbus/dbus-protocol.h:
12688         Fix a typo.
12689
12690 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12691
12692         * dbus/dbus-message.c (dbus_message_append_fields):
12693         Add some more doc comments.
12694
12695 2003-02-01  Havoc Pennington  <hp@pobox.com>
12696
12697         * dbus/dbus-break-loader.c (randomly_modify_length): change
12698         a 4-byte value in the message as if it were a length
12699
12700         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12701         execute bit on saved files
12702
12703 2003-02-01  Havoc Pennington  <hp@pobox.com>
12704
12705         * dbus/dbus-break-loader.c (main): new program to find messages
12706         that break the loader.
12707
12708         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12709         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12710
12711         * dbus/dbus-string.c (_dbus_string_set_byte): new
12712
12713 2003-01-31  Havoc Pennington  <hp@pobox.com>
12714
12715         * dbus/dbus-message.c: refactor the test code to be more general,
12716         in preparation for writing a "randomly permute test cases to
12717         try to break the loader" program.
12718
12719 2003-01-31  Havoc Pennington  <hp@pobox.com>
12720
12721         * doc/dbus-specification.sgml: work on the specification
12722
12723         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12724         the protocol version of the message.
12725
12726         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12727         no longer specifies that.
12728         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12729         1/2/3/4)
12730
12731         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12732         "break" for DBUS_TYPE_NIL, remove @todo
12733
12734 2003-01-31  Havoc Pennington  <hp@pobox.com>
12735
12736         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12737         just set_is_error/get_is_error as this is a commonly-used
12738         function, and write docs.
12739
12740 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12741
12742         * dbus/dbus-address.c: (dbus_address_entry_free):
12743         Free key and value lists.
12744
12745         * dbus/dbus-internals.c: (_dbus_type_to_string):
12746         Add the types we didn't have.
12747
12748         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12749         (_dbus_marshal_validate_arg):
12750         Add NIL types.
12751
12752         * dbus/dbus-message.c: (dbus_message_set_sender):
12753         Remove todo about being able to set sender to NULL.
12754
12755         (dbus_message_set_is_error_reply),
12756         (dbus_message_get_is_error_reply):
12757         * dbus/dbus-message.h:
12758         New functions.
12759
12760         * dbus/dbus-protocol.h:
12761         Add error reply flag.
12762
12763         * test/data/valid-messages/opposite-endian.message:
12764         Add NIL type to test.
12765
12766 2003-01-31  Havoc Pennington  <hp@pobox.com>
12767
12768         * doc/dbus-specification.sgml: fully specify the header.  Add
12769         flags and major protocol version, and change header/body len to
12770         unsigned.
12771
12772         * dbus/dbus-message-builder.c (append_saved_length): append length
12773         as uint32
12774
12775         * dbus/dbus-message.c (dbus_message_create_header): change header
12776         length and body length to unsigned. Add the new fields from the
12777         spec
12778         (_dbus_message_loader_return_buffer): unsigned header/body len
12779
12780 2003-01-30  Havoc Pennington  <hp@pobox.com>
12781
12782         * dbus/dbus-auth.c: rework to use only REJECTED, no
12783         MECHANISMS
12784
12785         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12786         use REJECTED, suggested by Mark McLoughlin
12787
12788 2003-01-30  Havoc Pennington  <hp@pobox.com>
12789
12790         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12791         a better way to report errors here. e.g.  "unix address lacks
12792         path" or something. also "no such file" when the path doesn't
12793         exist, etc.
12794
12795         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12796         leaking list nodes
12797         (dbus_parse_address): add @todo about documenting address format,
12798         and allowing , and ; to be escaped
12799
12800 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12801
12802         * dbus/Makefile.am:
12803         Add dbus-address.[ch]
12804
12805         * dbus/dbus-address.c: (dbus_address_entry_free),
12806         (dbus_address_entries_free), (create_entry),
12807         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12808         (dbus_parse_address), (_dbus_address_test):
12809         * dbus/dbus-address.h:
12810         New files for dealing with address parsing.
12811
12812         * dbus/dbus-connection.c:
12813         Document timeout functions.
12814
12815         * dbus/dbus-message.c:
12816         Document dbus_message_new_from_message.
12817
12818         * dbus/dbus-server-debug.c:
12819         Document.
12820
12821         * dbus/dbus-server.c: (dbus_server_listen):
12822         Parse address and use correct server implementation.
12823
12824         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12825         * dbus/dbus-string.h:
12826         New function with test.
12827
12828         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12829         * dbus/dbus-test.h:
12830         Add address tests.
12831
12832         * dbus/dbus-transport-debug.c:
12833         Document.
12834
12835         * dbus/dbus-transport.c: (_dbus_transport_open):
12836         Parse address and use correct transport implementation.
12837
12838 2003-01-30  Havoc Pennington  <hp@pobox.com>
12839
12840         * dbus/dbus-message.c: use message->byte_order instead of
12841         DBUS_COMPILER_BYTE_ORDER throughout.
12842         (dbus_message_create_header): pad header to align the
12843         start of the body of the message to 8-byte boundary
12844
12845         * dbus/dbus-marshal.h: make all the demarshalers take const
12846         DBusString arguments.
12847
12848         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12849         validate message args here, so we don't have to do slow validation
12850         later, and so we catch bad messages as they are incoming. Also add
12851         better checks on header_len and body_len. Also fill in
12852         message->byte_order
12853
12854         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12855         implemented properly)
12856         (_dbus_string_validate_nul): new function to check all-nul
12857
12858         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12859         get_arg_end_pos and remove all validation
12860         (_dbus_marshal_validate_arg): actually do validation here.
12861
12862 2003-01-29  Havoc Pennington  <hp@pobox.com>
12863
12864         * dbus/dbus-message.c (check_message_handling): fix assertion
12865         failure on set_client_serial
12866
12867 2003-01-28  Havoc Pennington  <hp@pobox.com>
12868
12869         * dbus/dbus-server-debug.c: Add doc section comments
12870
12871         * dbus/dbus-transport-debug.c: add doc section comments
12872
12873 2003-01-28  Havoc Pennington  <hp@redhat.com>
12874
12875         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12876         the reverse order from how I had it
12877         (_dbus_string_base64_encode): reverse encoding order. I was
12878         basically byteswapping everything during encoding.
12879
12880 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12881
12882         * dbus/dbus-connection-internal.h:
12883         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12884         (_dbus_connection_remove_timeout):
12885         Add functions for adding and removing timeouts.
12886
12887         * dbus/dbus-message.c: (dbus_message_new_from_message):
12888         Add new function that takes a message and creates an exact
12889         copy of it, but with the refcount set to 1.
12890         (check_message_handling):
12891         Fix build error.
12892
12893         * dbus/dbus-server-protected.h:
12894         * dbus/dbus-server.c: (_dbus_server_init_base),
12895         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12896         (dbus_server_set_timeout_functions):
12897         (_dbus_server_remove_timeout):
12898         New functions so that a server can add and remove timeouts.
12899
12900         (dbus_server_listen):
12901         Add commented out call to dbus_server_debug_new.
12902
12903         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12904         Actually set the handler, doh.
12905
12906         * dbus/dbus-transport.c: (_dbus_transport_open):
12907         Add commented out call to dbus_transport_debug_client_new.
12908
12909         * dbus/Makefile.am:
12910         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12911
12912 2003-01-28  Havoc Pennington  <hp@pobox.com>
12913
12914         * dbus/dbus-message.c (check_message_handling): function to check
12915         on the loaded message, iterates over it etc.
12916
12917 2003-01-28  Havoc Pennington  <hp@pobox.com>
12918
12919         * test/Makefile.am (dist-hook): fix make distdir
12920
12921         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12922
12923 2003-01-27  Havoc Pennington  <hp@pobox.com>
12924
12925         * dbus/dbus-mempool.c (time_for_size): replace printf with
12926         _dbus_verbose
12927
12928         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12929         empty lines; fix the SAVE_LENGTH stuff to be
12930         START_LENGTH/END_LENGTH so it actually works; couple other
12931         bugfixes
12932
12933         * test/Makefile.am (dist-hook): add dist-hook for .message files
12934
12935         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12936         can be constant or locked.
12937         (_dbus_string_free): allow freeing a const string as
12938         documented/intended
12939
12940         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12941
12942         * dbus/dbus-test-main.c (main): take an argument which is the
12943         directory containing test data
12944
12945         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12946         argument to this and load all the messages in test/data/
12947         checking that they can be loaded or not loaded as appropriate.
12948
12949 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12950
12951         * bus/dispatch.c: (bus_dispatch_message_handler):
12952         Dispatch messages sent to services.
12953
12954         * bus/driver.c: (bus_driver_send_service_deleted),
12955         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12956         (bus_driver_send_service_acquired):
12957         Add helper functions for sending service related messages.
12958
12959         (bus_driver_send_welcome_message):
12960         Send HELLO_REPLY instead of WELCOME.
12961
12962         (bus_driver_handle_list_services):
12963         Send LIST_SERVICES_REPLY instead of SERVICES.
12964
12965         (bus_driver_handle_own_service),
12966         (bus_driver_handle_service_exists):
12967         New message handlers.
12968
12969         (bus_driver_handle_message):
12970         Invoke new message handlers.
12971
12972         (bus_driver_remove_connection):
12973         Don't remove any services here since that's done automatically
12974         by bus_service_remove_owner now.
12975
12976         * bus/driver.h:
12977         New function signatures.
12978
12979         * bus/services.c: (bus_service_add_owner):
12980         Send ServiceAcquired message if we're the only primary owner.
12981
12982         (bus_service_remove_owner):
12983         Send ServiceAcquired/ServiceLost messages.
12984
12985         (bus_service_set_prohibit_replacement),
12986         (bus_service_get_prohibit_replacement):
12987         Functions for setting prohibit replacement.
12988
12989         (bus_service_has_owner):
12990         New function that checks if a connection is in the owner queue of
12991         a certain service.
12992
12993         * bus/services.h:
12994         Add new function signatures.
12995
12996         * dbus/dbus-list.c: (_dbus_list_test):
12997         Add tests for _dbus_list_remove_last and traversing the list backwards.
12998
12999         * dbus/dbus-list.h:
13000         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13001         go any further, so return NULL then.
13002
13003         * dbus/dbus-protocol.h:
13004         Add new messages, service flags and service replies.
13005
13006 2003-01-26  Havoc Pennington  <hp@pobox.com>
13007
13008         * dbus/dbus-message-builder.c: implement, completely untested.
13009
13010         * test/data/*: add data to be used in testing.
13011         ".message" files are our simple loadable text format.
13012         ".message-raw" will be binary dumps of messages.
13013
13014         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13015
13016 2003-01-26  Havoc Pennington  <hp@pobox.com>
13017
13018         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13019
13020         * dbus/dbus-errors.c (dbus_result_to_string): add
13021         file errors
13022
13023         * dbus/dbus-message-builder.c: new file, will contain code to load
13024         up messages from files. Not implemented yet.
13025
13026 2003-01-26  Havoc Pennington  <hp@pobox.com>
13027
13028         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13029         the sender by setting to NULL
13030
13031 2003-01-26  Havoc Pennington  <hp@pobox.com>
13032
13033         The unit tests pass, but otherwise untested.  If it breaks, the
13034         tests should have been better. ;-)
13035
13036         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13037         the connection.
13038
13039         * dbus/dbus-message.c: redo everything so we maintain
13040         message->header as the only copy of the various fields.
13041         This avoids the possibility of out-of-memory in some cases,
13042         for example dbus_message_lock() can't run out of memory anymore,
13043         and avoids extra copying. Figured I may as well go ahead and do
13044         this since it was busted for dbus_message_lock to not return
13045         failure on OOM, and dbus_message_write_header was totally
13046         unchecked for OOM. Also fixed some random other bugs.
13047
13048         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13049         that strings are nul-terminated. Also, end_pos can be equal
13050         to string length just not greater than, I think.
13051         (_dbus_marshal_set_int32): new function
13052         (_dbus_marshal_set_uint32): new function
13053         (_dbus_marshal_set_string): new function
13054
13055         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13056         a warning, init timeout_list to NULL
13057         (dbus_connection_send_message): don't use uninitialized variable
13058         "serial"
13059
13060         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13061
13062 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13063
13064         * bus/driver.c: (bus_driver_handle_hello),
13065         (bus_driver_send_welcome_message):
13066         Plug leaks
13067
13068 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13069
13070         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13071         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13072         (dbus_connection_unref):
13073         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13074         * dbus/dbus-message.c: (dbus_message_unref),
13075         Plug memory leaks.
13076
13077         (dbus_message_get_fields):
13078         Remove debugging printout.
13079
13080         (_dbus_message_loader_return_buffer):
13081         Don't store the header string.
13082
13083         (_dbus_message_test):
13084         Plug leaks.
13085
13086 2003-01-26  Richard Hult  <rhult@codefactory.se>
13087
13088         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13089         the file descriptor list, since it can change under us.
13090
13091 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13092
13093         * glib/dbus-gmain.c: (dbus_connection_prepare),
13094         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13095         (remove_watch), (dbus_connection_hookup_with_g_main):
13096         Rewrite the glib handling to use its own GSource instead of a
13097         GIOChannel so we can catch messages put in the queue while waiting
13098         for a reply.
13099
13100 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13101
13102         * bus/Makefile.am:
13103         * bus/connection.c: (connection_disconnect_handler),
13104         (connection_watch_callback), (bus_connection_setup):
13105         * bus/dispatch.c: (send_one_message),
13106         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13107         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13108         * bus/dispatch.h:
13109         * bus/driver.c: (bus_driver_send_service_deleted),
13110         (bus_driver_send_service_created), (bus_driver_handle_hello),
13111         (bus_driver_send_welcome_message),
13112         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13113         (bus_driver_handle_message):
13114         * bus/driver.h:
13115         Refactor code, put the message dispatching in its own file. Use
13116         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13117         is disconnected.
13118
13119 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/dbus-internals.h:
13122         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13123
13124         * dbus/dbus-message.c: (dbus_message_get_sender):
13125         * dbus/dbus-message.h:
13126         Implement dbus_message_get_sender.
13127
13128         * dbus/dbus-protocol.h:
13129         Add message and service defines.
13130
13131 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13132
13133         * dbus/dbus-connection.c: (dbus_connection_send_message):
13134         * dbus/dbus-message-internal.h:
13135         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13136         (dbus_message_write_header):
13137         Remove _dbus_messag_unlock and don't set the client serial on a
13138         message if one already exists.
13139
13140 2003-01-24  Havoc Pennington  <hp@pobox.com>
13141
13142         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13143         list_pool
13144
13145         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13146         on OOM
13147
13148 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13149
13150         * dbus/dbus-list.c: (alloc_link), (free_link):
13151         Use a memory pool for the links.
13152
13153 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13154
13155         * bus/connection.c: (bus_connection_foreach):
13156         * bus/connection.h:
13157         Add new bus_connection_foreach function.
13158
13159         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13160         Add function that broadcasts a message to all clients.
13161
13162         (bus_driver_send_service_created), (bus_driver_handle_hello),
13163         (bus_driver_send_welcome_message),
13164         (bus_driver_handle_list_services), (bus_driver_message_handler):
13165         Implement functions that take care of listing services, and notifying
13166         clients when new services are created.
13167
13168         * bus/services.c: (bus_services_list):
13169         * bus/services.h:
13170         Add new function that returns an array of strings with the currently
13171         registered services.
13172
13173         * glib/dbus-glib.h:
13174         * glib/dbus-gmain.c:
13175         Update copyright year.
13176
13177 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13178
13179         * dbus/dbus-connection.c: (dbus_connection_send_message):
13180         Unlock the message in case it was sent earlier.
13181
13182         (dbus_connection_send_message_with_reply_and_block):
13183         Remove the reply message from the list.
13184
13185         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13186         Set array_len and new_pos correctly.
13187
13188         (_dbus_marshal_test):
13189         Remove debug output.
13190
13191         * dbus/dbus-message-internal.h:
13192         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13193         New function that returns the reply serial.
13194
13195         (_dbus_message_unlock):
13196         New function that unlocks a message and resets its header.
13197
13198         (dbus_message_append_string_array),
13199         (dbus_message_get_fields_valist),
13200         (dbus_message_iter_get_field_type),
13201         (dbus_message_iter_get_string_array),
13202         (dbus_message_get_fields),
13203         (dbus_message_append_fields_valist):
13204         Handle string arrays.
13205
13206         (dbus_message_set_sender):
13207         Make this function public since the bus daemon needs it.
13208
13209         (decode_header_data):
13210         Set the reply serial to -1 initially.
13211
13212         * dbus/dbus-message.h:
13213         Add dbus_message_set_sender.
13214
13215 2003-01-24  Havoc Pennington  <hp@pobox.com>
13216
13217         * doc/dbus-specification.sgml: add some stuff
13218
13219 2003-01-22  Havoc Pennington  <hp@pobox.com>
13220
13221         * doc/dbus-specification.sgml: Start to document the protocol.
13222
13223 2003-01-22  Havoc Pennington  <hp@pobox.com>
13224
13225         * dbus/dbus-connection.c
13226         (dbus_connection_send_message_with_reply_and_block): add some @todo
13227
13228         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13229
13230 2003-01-21  Havoc Pennington  <hp@pobox.com>
13231
13232         (patch untested because can't compile)
13233
13234         * bus/driver.c (create_unique_client_name): make this function
13235         never recycle client names. Also, caller should initialize
13236         the DBusString.
13237
13238         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13239
13240 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13241
13242         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13243         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13244         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13245         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13246         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13247         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13248         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13249         * dbus/dbus-marshal.h:
13250         * dbus/dbus-protocol.h:
13251         Add support for marshalling and demarshalling integer, double
13252         and string arrays.
13253
13254 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13255
13256         * bus/Makefile.am:
13257         Add driver.[ch]
13258
13259         * bus/connection.c: (connection_disconnect_handler):
13260         Remove the connection from the bus driver's list.
13261
13262         (connection_watch_callback): Dispatch messages.
13263
13264         (free_connection_data): Free connection name.
13265
13266         (bus_connection_setup): Add connection to the bus driver's list.
13267         (bus_connection_remove_owned_service):
13268         (bus_connection_set_name), (bus_connection_get_name):
13269         Add functions for setting and getting the connection's name.
13270
13271         * bus/connection.h:
13272         Add function headers.
13273
13274         * bus/driver.c: (create_unique_client_name),
13275         (bus_driver_handle_hello_message),
13276         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13277         (bus_driver_add_connection), (bus_driver_remove_connection):
13278         * bus/driver.h:
13279         * bus/main.c:
13280         * bus/services.c: (bus_service_free):
13281         * bus/services.h:
13282         New file that handles communication and registreation with the bus
13283         itself.
13284
13285 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13286
13287         * dbus/dbus-connection.c: (dbus_connection_send_message):
13288         Add a new client_serial parameter.
13289
13290         (dbus_connection_send_message_with_reply):
13291         Remove a @todo since we've implemented the blocking function.
13292
13293         (dbus_connection_send_message_with_reply_and_block):
13294         New function that sends a message and waits for a reply and
13295         then returns the reply.
13296
13297         * dbus/dbus-connection.h:
13298         Add new functions.
13299
13300         * dbus/dbus-errors.c: (dbus_result_to_string):
13301         * dbus/dbus-errors.h:
13302         Add new DBUS_RESULT.
13303
13304         * dbus/dbus-message-internal.h:
13305         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13306         (_dbus_message_set_sender), (dbus_message_write_header),
13307         (dbus_message_new_reply), (decode_header_data),
13308         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13309         * dbus/dbus-message.h:
13310         Add new functions that set the reply serial and sender.
13311         Also marshal and demarshal them correctly and add test.
13312
13313         * dbus/dbus-protocol.h:
13314         Add new DBUS_MESSAGE_TYPE_SENDER.
13315
13316         * glib/dbus-glib.h:
13317         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13318         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13319         (dbus_connection_hookup_with_g_main):
13320         * glib/test-dbus-glib.c: (main):
13321         Rewrite to use GIOChannel and remove the GSource crack.
13322
13323         * test/echo-client.c: (main):
13324         * test/watch.c: (check_messages):
13325         Update for changed APIs
13326
13327 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13328
13329         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13330
13331         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13332         Create a DBusTimeoutList.
13333         (dbus_connection_set_timeout_functions): Add new function to
13334         set timeout callbacks
13335
13336         * dbus/dbus-connection.h: Add public DBusTimeout API.
13337
13338         * dbus/dbus-message.c: (dbus_message_get_service):
13339         * dbus/dbus-message.h:  New function.
13340
13341         * dbus/dbus-server.c: Fix small doc typo.
13342
13343         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13344
13345 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13346
13347         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13348         of the string, just as long as specified.
13349
13350 2003-01-19  Havoc Pennington  <hp@pobox.com>
13351
13352         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13353         new function
13354
13355         * dbus/dbus-server.c (dbus_server_set_max_connections)
13356         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13357         keep track of current number of connections, and add API for
13358         setting a max (but haven't implemented enforcing the max yet)
13359
13360 2003-01-18  Havoc Pennington  <hp@pobox.com>
13361
13362         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13363         reading/writing if read_watch != NULL or write_watch != NULL.
13364
13365         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13366         the message loader code to actually load message->header and
13367         message->body into the newly-created message.
13368
13369         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13370         in OOM case
13371
13372         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13373         (dbus_connection_get_max_message_size)
13374         (dbus_connection_set_max_live_messages_size)
13375         (dbus_connection_get_max_live_messages_size): implement some
13376         resource limitation functions
13377
13378         * dbus/dbus-resources.c: new file implementing some of the
13379         resource limits stuff
13380
13381         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13382         missing docs, add @todo to handle OOM etc.
13383
13384         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13385         docs
13386
13387 2003-01-18  Havoc Pennington  <hp@pobox.com>
13388
13389         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13390         connection if it hasn't been already.
13391
13392         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13393         replace with DisconnectFunction.
13394
13395 2003-01-18  Havoc Pennington  <hp@pobox.com>
13396
13397         Building --disable-verbose-mode --disable-asserts --disable-tests
13398         cuts the library from 112K to 45K or so
13399
13400         * configure.in: check for varargs macro support,
13401         add --enable-verbose-mode, --enable-asserts.
13402
13403         * dbus/dbus-internals.h (_dbus_assert): support
13404         DBUS_DISABLE_ASSERT
13405         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13406
13407 2003-01-18  Havoc Pennington  <hp@pobox.com>
13408
13409         * dbus/dbus-test.c: include config.h so that tests actually run
13410
13411         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13412         so the failure mode when that assumption fails will be plenty
13413         obvious.
13414
13415 2003-01-18  Havoc Pennington  <hp@pobox.com>
13416
13417         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13418
13419         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13420         the distribution
13421
13422         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13423         since we don't want to use those in make check
13424
13425 2003-01-15  Havoc Pennington  <hp@redhat.com>
13426
13427         Release 0.2
13428
13429         * NEWS: update
13430
13431 2003-01-15  Havoc Pennington  <hp@redhat.com>
13432
13433         * test/Makefile.am: fix so that test source code ends up in the
13434         distribution on make distcheck
13435
13436 2003-01-15  Havoc Pennington  <hp@redhat.com>
13437
13438         Release 0.1.
13439
13440         * NEWS: update
13441
13442 2003-01-15  Havoc Pennington  <hp@redhat.com>
13443
13444         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13445         fix build when --disable-tests
13446
13447         * Makefile.am (EXTRA_DIST): put HACKING in here
13448
13449         * HACKING: document procedure for making a tarball release.
13450
13451 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13452
13453         * bus/connection.c: (connection_error_handler),
13454         (bus_connection_setup):
13455         * bus/main.c: (main):
13456         Make sure that the DBusConnectionData struct is NULLed
13457         out to prevent a segfault.
13458
13459         * dbus/dbus-errors.c: (dbus_result_to_string):
13460         * dbus/dbus-errors.h:
13461         * dbus/dbus-message.c: (dbus_message_get_fields),
13462         (dbus_message_get_fields_valist), (_dbus_message_test):
13463         * dbus/dbus-message.h:
13464         Make dbus_message_get_fields return a result code so we can
13465         track invalid fields as well as oom.
13466
13467 2003-01-11  Havoc Pennington  <hp@pobox.com>
13468
13469         * configure.in: change --enable-test/--enable-ansi action-if-given
13470         to enable_foo=$enableval instead of enable_foo=yes
13471
13472 2003-01-08  Havoc Pennington  <hp@pobox.com>
13473
13474         * dbus/dbus-string.c (_dbus_string_align_length): new function
13475
13476         * dbus/dbus-test-main.c: move main() for test app here
13477         * dbus/dbus-test.c
13478         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13479         symbol to run tests, because dbus-test isn't in the main
13480         library
13481
13482         Code review nitpicks.
13483
13484         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13485         for people with narrow emacs ;-). Assert client_serial was filled
13486         in. Assert message->name != NULL.
13487         (dbus_message_append_fields): have "first_field_type" arg separate
13488         from va list, needed for C++ binding that also uses varargs IIRC
13489         and helps with type safety
13490         (dbus_message_new): add @todo about using DBusString to store
13491         service/name internally
13492         (dbus_message_new): don't leak ->service and ->name on OOM later
13493         in the function
13494         (dbus_message_unref): free the service name
13495         (dbus_message_get_fields): same change to varargs
13496         i.e. first_field_type
13497         (_dbus_message_loader_return_buffer): assert that the message data
13498         is aligned (if not it's a bug in our code). Put in verbose griping
13499         about why we set corrupted = TRUE.
13500         (decode_header_data): add FIXME that char* is evil.  Was going to
13501         add FIXME about evil locale-specific string.h strncmp, but just
13502         switched to wacky string-as-uint32 optimization. Move check for
13503         "no room for field name" above get_const_data_len() to avoid
13504         assertion failure in get_const_data_len if we have trailing 2
13505         bytes or the like. Check for service and name fields being
13506         provided twice. Don't leak service/name on error. Require field
13507         names to be aligned to 4 bytes.
13508
13509         * dbus/dbus-marshal.c: move byte swap stuff to header
13510         (_dbus_pack_int32): uscore-prefix
13511         (_dbus_unpack_int32): uscore-prefix
13512         (_dbus_unpack_uint32): export
13513         (_dbus_demarshal_string): add @todo complaining about use of
13514         memcpy()
13515         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13516         handling allowing corrupt data to go unchecked
13517
13518 2003-01-08  Havoc Pennington  <hp@redhat.com>
13519
13520         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13521         to the select() as needed for authentication. (should be using
13522         _dbus_poll() not select, but for another day)
13523
13524         * dbus/dbus.h: include dbus/dbus-protocol.h
13525
13526 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13527
13528         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13529         dbus-connection.h
13530
13531 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13532
13533         * dbus/dbus-internals.c: (_dbus_type_to_string):
13534         New function that returns a string describing a type.
13535
13536         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13537         * dbus/dbus-marshal.h:
13538         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13539         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13540         (dbus_message_iter_get_byte_array):
13541         * dbus/dbus-message.h:
13542         Add new convenience functions for appending and getting message fields.
13543         Also add demarshalling routines for byte arrays.
13544
13545 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13546
13547         * dbus/dbus-connection-internal.h:
13548         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13549         (_dbus_connection_get_next_client_serial),
13550         (dbus_connection_send_message):
13551         * dbus/dbus-internals.h:
13552         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13553         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13554         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13555         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13556         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13557         (_dbus_verbose_bytes), (_dbus_marshal_test):
13558         * dbus/dbus-marshal.h:
13559         * dbus/dbus-message-internal.h:
13560         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13561         (dbus_message_write_header), (_dbus_message_lock),
13562         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13563         (dbus_message_get_name), (dbus_message_append_int32),
13564         (dbus_message_append_uint32), (dbus_message_append_double),
13565         (dbus_message_append_string), (dbus_message_append_byte_array),
13566         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13567         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13568         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13569         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13570         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13571         (decode_header_data), (_dbus_message_loader_return_buffer),
13572         (message_iter_test), (_dbus_message_test):
13573         * dbus/dbus-message.h:
13574         * dbus/dbus-protocol.h:
13575         * dbus/dbus-test.c: (main):
13576         * dbus/dbus-test.h:
13577         * glib/test-dbus-glib.c: (message_handler), (main):
13578         * test/echo-client.c: (main):
13579         * test/watch.c: (check_messages):
13580         Make messages sendable and receivable for real.
13581
13582 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13583
13584         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13585         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13586         * dbus/dbus-message.c: (dbus_message_append_int32),
13587         (dbus_message_append_uint32), (dbus_message_append_double),
13588         (dbus_message_append_string), (dbus_message_append_byte_array):
13589         Handle OOM restoration.
13590
13591 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13592
13593         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13594         (_dbus_demarshal_string), (_dbus_marshal_test):
13595         * dbus/dbus-marshal.h:
13596         * dbus/dbus-message.c: (dbus_message_get_name),
13597         Document these functions.
13598
13599         (dbus_message_append_int32), (dbus_message_append_uint32),
13600         (dbus_message_append_double), (dbus_message_append_string),
13601         (dbus_message_append_byte_array):
13602         * dbus/dbus-message.h:
13603         Add functions for adding message fields of different types.
13604
13605         * dbus/dbus-protocol.h:
13606         Add the different types.
13607
13608 2003-01-05  Havoc Pennington  <hp@pobox.com>
13609
13610         * bus/connection.c: implement routines for handling connections,
13611         first thing is keeping a list of owned services on each connection
13612         and setting up watches etc.
13613
13614         * bus/services.c: implement a mapping from service names to lists
13615         of connections
13616
13617         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13618
13619         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13620         to use static mutexes for global data
13621
13622         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13623         collection of functions to set/get application-specific data
13624         on the DBusConnection.
13625
13626 2003-01-04  Havoc Pennington  <hp@pobox.com>
13627
13628         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13629         (_dbus_poll): new function
13630
13631         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13632         copied from GLib
13633
13634         * bus/loop.c: initial code for the daemon main loop
13635
13636 2003-01-04  Havoc Pennington  <hp@pobox.com>
13637
13638         * test/watch.c (error_handler): make it safe if the error handler
13639         is called multiple times (if we s/error handler/disconnect
13640         handler/ we should just guarantee it's called only once)
13641
13642         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13643         error handler on disconnect (it's quite possible we should
13644         just change the error handler to a "disconnect handler," I'm
13645         not sure we have any other meaningful errors)
13646
13647         * configure.in: check for getpwnam_r
13648
13649         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13650         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13651         mechanism as in SASL spec, using socket credentials
13652
13653         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13654         (_dbus_send_credentials_unix_socket): new function
13655
13656         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13657         dbus_accept()
13658         (_dbus_write): only check errno if <0 returned
13659         (_dbus_write_two): ditto
13660
13661 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13662
13663         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13664         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13665         (_dbus_marshal_test):
13666         * dbus/dbus-marshal.h:
13667         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13668         to _dbus_marshal_utf8_string. Also fix some tests.
13669
13670 2002-12-28  Harri Porten  <porten@kde.org>
13671
13672         * configure.in: added check for C++ compiler and a very cheesy
13673         check for the Qt integration
13674
13675         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13676
13677         * qt/Makefile.am: added
13678
13679         * qt/.cvsignore: added
13680
13681         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13682         latter, added #ifdef QT_THREAD_SUPPORT guard.
13683
13684         * dbus/Makefile.am: added missing headers for make dist
13685
13686 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13687
13688         * dbus/Makefile.am: fixup export-symbols-regex.
13689
13690 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13691
13692         * acinclude.m4: Add this file and put the
13693         PKG_CHECK_MODULE macro in it.
13694
13695 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13698         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13699         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13700         (_dbus_marshal_test):
13701         Make the demarshalling routines align the pos argument.
13702         Add string marshalling tests and fix the obvious bugs
13703         discovered.
13704
13705 2002-12-26  Havoc Pennington  <hp@pobox.com>
13706
13707         * dbus/dbus-auth.c: fixes fixes fixes
13708
13709         * dbus/dbus-transport-unix.c: wire up support for
13710         encoding/decoding data on the wire
13711
13712         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13713         (_dbus_auth_decode_data): append to target string
13714         instead of nuking it.
13715
13716 2002-12-26  Havoc Pennington  <hp@pobox.com>
13717
13718         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13719         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13720         doh
13721
13722         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13723         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13724         now). Main point is because I wanted unpack_uint32 to implement
13725         _dbus_verbose_bytes
13726         (_dbus_verbose_bytes): new function
13727
13728         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13729
13730         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13731         mechanism to handle a corrupt message stream
13732         (_dbus_message_loader_new): fix preallocation to only prealloc,
13733         not prelengthen
13734
13735         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13736         (_dbus_string_test): enhance tests for copy/move and fix the
13737         functions
13738
13739         * dbus/dbus-transport-unix.c: Hold references in more places to
13740         avoid reentrancy problems
13741
13742         * dbus/dbus-transport.c: ditto
13743
13744         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13745         leak reference count in no-message case
13746
13747         * test/watch.c (do_mainloop): handle adding/removing watches
13748         during iteration over the watches. Also, ref the connection/server
13749         stored on a watch, so we don't try to mangle a destroyed one.
13750
13751         * dbus/dbus-transport-unix.c (do_authentication): perform
13752         authentication
13753
13754         * dbus/dbus-auth.c (get_state): add a state
13755         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13756         (_dbus_auth_get_unused_bytes): append the unused bytes
13757         to the passed in string, rather than prepend
13758
13759         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13760         the auth conversation DBusAuth
13761
13762         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13763         (_dbus_transport_new_for_domain_socket): when creating a
13764         transport, pass in whether it's a client-side or server-side
13765         transport so we know which DBusAuth to create
13766
13767 2002-12-03  Havoc Pennington  <hp@pobox.com>
13768
13769         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13770         _after_ finalizing the derived members
13771         (unix_connection_set): unref watch if we fail to add it
13772
13773         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13774         transport first, so that the connection owned by the
13775         transport will be valid as the transport finalizes.
13776
13777         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13778         if necessary, and remove watches from the connection.
13779
13780         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13781
13782 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13783
13784         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13785         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13786         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13787         (_dbus_marshal_test):
13788         * dbus/dbus-marshal.h:
13789         Add string marshal functions and have the demarshal functions
13790         return the new position.
13791
13792 2002-12-25  Havoc Pennington  <hp@pobox.com>
13793
13794         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13795         it is a simple protocol that just maps directly to SASL.
13796
13797         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13798         initial implementation, not actually used yet.
13799
13800         * dbus/dbus-string.c (_dbus_string_find): new function
13801         (_dbus_string_equal): new function
13802         (_dbus_string_base64_encode): new function
13803         (_dbus_string_base64_decode): new function
13804
13805 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13806
13807         * dbus/Makefile.am:
13808         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13809         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13810         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13811         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13812         * dbus/dbus-marshal.h:
13813         * dbus/dbus-protocol.h:
13814         * dbus/dbus-test.c: (main):
13815         * dbus/dbus-test.h:
13816         Add un-optimized marshalling/demarshalling routines.
13817
13818 2002-12-25  Harri Porten  <porten@kde.org>
13819
13820         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13821
13822 2002-12-24  Zack Rusin  <zack@kde.org>
13823
13824         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13825         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13826         main loop stuff
13827
13828 2002-12-24  Havoc Pennington  <hp@pobox.com>
13829
13830         * glib/dbus-gthread.c: fix include
13831
13832         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13833         I think glib API needs to change, though, as you don't
13834         want to use DBusMessageFunction, you want to use the
13835         DBusMessageHandler object. Probably
13836         dbus_connection_open_with_g_main_loop()
13837         and dbus_connection_setup_g_main_loop() or something like that
13838         (but think of better names...) that just create a connection
13839         that has watch/timeout functions etc. already set up.
13840
13841         * dbus/dbus-connection.c
13842         (dbus_connection_send_message_with_reply): new function just to
13843         show how the message handler helps us deal with replies.
13844
13845         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13846
13847         * dbus/dbus-string.c (_dbus_string_test): free a string that
13848         wasn't
13849
13850         * dbus/dbus-hash.c: use memory pools for the hash entries
13851         (rebuild_table): be more paranoid about overflow, and
13852         shrink table when we can
13853         (_dbus_hash_test): reduce number of sprintfs and write
13854         valid C89. Add tests for case where we grow and then
13855         shrink the hash table.
13856
13857         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13858
13859         * dbus/dbus-connection.c (dbus_connection_register_handler)
13860         (dbus_connection_unregister_handler): new functions
13861
13862         * dbus/dbus-message.c (dbus_message_get_name): new
13863
13864         * dbus/dbus-list.c: fix docs typo
13865
13866         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13867         an object representing a handler for messages.
13868
13869 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13870
13871         * glib/dbus-glib.h:
13872         * glib/dbus-gthread.c: (dbus_gthread_init):
13873         Don't use the gdbus prefix for public functions.
13874
13875 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13876
13877         * Makefile.am:
13878         * configure.in:
13879         Add GLib checks and fixup .pc files
13880
13881         * glib/Makefile.am:
13882         * glib/dbus-glib.h:
13883         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13884         (gdbus_connection_check), (gdbus_connection_dispatch),
13885         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13886         (dbus_connection_gsource_new):
13887         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13888         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13889         * glib/test-dbus-glib.c: (message_handler), (main):
13890         Add GLib support.
13891
13892 2002-12-15  Harri Porten  <porten@kde.org>
13893
13894         * autogen.sh: check for libtoolize before attempting to use it
13895
13896         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13897         struct.
13898
13899         * .cvsignore: ignore more stamp files
13900
13901         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13902
13903         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13904         without make install.
13905
13906 2002-12-15  Havoc Pennington  <hp@pobox.com>
13907
13908         * dbus/dbus-threads.c: add thread stubs that a higher library
13909         layer can fill in. e.g. the GLib wrapper might fill them in with
13910         GThread stuff. We still need to use this thread API to
13911         thread-safe-ize the library.
13912
13913 2002-12-12  Havoc Pennington  <hp@pobox.com>
13914
13915         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13916         below new interfaces and include fewer system headers.
13917
13918         * dbus/dbus-sysdeps.c (_dbus_read): new function
13919         (_dbus_write): new function
13920         (_dbus_write_two): new function
13921         (_dbus_connect_unix_socket): new function
13922         (_dbus_listen_unix_socket): new function
13923
13924         * dbus/dbus-message-internal.h: change interfaces to use
13925         DBusString
13926
13927 2002-12-11  Havoc Pennington  <hp@pobox.com>
13928
13929         * dbus/dbus-types.h: add dbus_unichar
13930
13931         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13932
13933         * dbus/dbus-connection.c (dbus_connection_send_message): return
13934         TRUE on success
13935
13936         * dbus/dbus-transport.c: include dbus-watch.h
13937
13938         * dbus/dbus-connection.c: include dbus-message-internal.h
13939
13940         * HACKING: add file with coding guidelines stuff.
13941
13942         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13943         handling here, for security purposes (as in vsftpd). Not actually
13944         using this class yet.
13945
13946         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13947         system/libc usage here, as in vsftpd, for ease of auditing (and
13948         should also simplify portability). Haven't actually moved all the
13949         system/libc usage into here yet.
13950
13951 2002-11-25  Havoc Pennington  <hp@pobox.com>
13952
13953         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13954         always print the first verbose message.
13955
13956 2002-11-24  Havoc Pennington  <hp@pobox.com>
13957
13958         * test/echo-client.c, test/echo-server.c: cheesy test
13959         clients.
13960
13961         * configure.in (AC_CHECK_FUNCS): check for writev
13962
13963         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13964         function
13965
13966         * dbus/dbus-list.c (_dbus_list_foreach): new function
13967
13968         * dbus/dbus-internals.c (_dbus_verbose): new function
13969
13970         * dbus/dbus-server.c, dbus/dbus-server.h: public object
13971         representing a server that listens for connections.
13972
13973         * dbus/.cvsignore: create
13974
13975         * dbus/dbus-errors.h, dbus/dbus-errors.c:
13976         public API for reporting errors
13977
13978         * dbus/dbus-connection.h, dbus/dbus-connection.c:
13979         public object representing a connection that
13980         sends/receives messages. (Same object used for
13981         both client and server.)
13982
13983         * dbus/dbus-transport.h, dbus/dbus-transport.c:
13984         Basic abstraction for different kinds of stream
13985         that we might read/write messages from.
13986
13987 2002-11-23  Havoc Pennington  <hp@pobox.com>
13988
13989         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
13990         _DBUS_INT_MAX
13991
13992         * dbus/dbus-test.c (main): add list test, and include
13993         dbus-test.h as intended
13994
13995         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
13996         (_dbus_hash_table_remove_int): return value indicates
13997         whether the entry existed to remove
13998
13999         * dbus/dbus-list.c: add linked list utility class,
14000         with docs and tests
14001
14002         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14003         array sometimes.
14004
14005 2002-11-23  Havoc Pennington  <hp@pobox.com>
14006
14007         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14008         DBUS_END_DECLS to nothing, that should fix this once and for all
14009
14010         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14011
14012         * dbus/dbus-message.c, dbus/dbus-hash.c:
14013         add some missing @brief
14014
14015 2002-11-23  Havoc Pennington  <hp@pobox.com>
14016
14017         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14018         to avoid confusing Doxygen
14019
14020         * dbus/dbus-hash.c: @} not }@
14021
14022         * dbus/dbus-message.c (struct DBusMessage): split out
14023         internals docs
14024
14025 2002-11-23  Havoc Pennington  <hp@pobox.com>
14026
14027         * configure.in: pile on more warning flags if using gcc
14028
14029         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14030         to document static functions
14031
14032         * configure.in: add summary to end of configure so it
14033         looks nice and attractive
14034
14035         * dbus/dbus-hash.c: finish implementation and write unit
14036         tests and docs
14037
14038         * configure.in: add --enable-tests to enable unit tests
14039
14040         * dbus/dbus-test.c: test program to run unit tests
14041         for all files in dbus/*, initially runs a test for
14042         dbus-hash.c
14043
14044         * dbus/dbus-internals.h: file to hold some internal utility stuff
14045
14046 2002-11-22  Havoc Pennington  <hp@redhat.com>
14047
14048         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14049         "ported" away from Tcl
14050
14051         * dbus/dbus-types.h: header for types such as dbus_bool_t
14052
14053 2002-11-22  Havoc Pennington  <hp@redhat.com>
14054
14055         * dbus/dbus.h: fixups for doc warnings
14056
14057         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14058         macros
14059         (QUIET): make it quiet so we can see warnings
14060
14061         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14062
14063 2002-11-22  Havoc Pennington  <hp@redhat.com>
14064
14065         * Makefile.am: include "Doxyfile" target in all-local
14066
14067         * configure.in: generate the Doxyfile
14068
14069         * Doxyfile.in: move Doxyfile here, so we can use
14070         configure to generate a Doxyfile with the right
14071         version number etc.
14072
14073 2002-11-22  Havoc Pennington  <hp@redhat.com>
14074
14075         * dbus/dbus-message.c: move inline docs into .c file
14076
14077         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14078         so all docs are under doc/
14079         (MAN_EXTENSION): generate man pages. Use extension
14080         ".3dbus" which matches ".3qt" on my system,
14081         I guess this is OK, I don't know really.
14082         (FILE_PATTERNS): look for .c files not .h, makes sense
14083         for plain C I think
14084
14085 2002-11-22  Havoc Pennington  <hp@pobox.com>
14086
14087         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14088         because any app can be a server, and any app can be a client,
14089         the bus is a special kind of server.
14090
14091 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14092
14093         * Doxyfile : adding. Still needs Makefile rules to be generated
14094         automatically (just run "doxygen" in the toplevel dir for now to
14095         generate docs)
14096
14097         * dbus/dbus-message.h : Adding sample docs (javadoc since
14098         resembles gtk-doc a little more)
14099
14100         * dbus/dbus.h : Adding sample docs
14101
14102 2002-11-21  Havoc Pennington  <hp@redhat.com>
14103
14104         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14105         so we can allow ourselves to include files directly,
14106         instead of having to use dbus.h
14107
14108         * dbus/dbus.h: fill in
14109
14110         * dbus/dbus-message.h: sketch out a sample header file.
14111         Include griping if you include it directly instead of
14112         via dbus.h
14113
14114         * dbus/dbus-macros.h: new file with macros for extern "C",
14115         TRUE/FALSE, NULL, etc.
14116
14117         * doc/file-boilerplate.c: put include guards in here
14118
14119 2002-11-21  Havoc Pennington  <hp@redhat.com>
14120
14121         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14122
14123         * COPYING: include the GPL as well, and license code
14124         under both AFL and GPL.
14125
14126 2002-11-21  Havoc Pennington  <hp@redhat.com>
14127
14128         * acconfig.h: get rid of this
14129
14130         * autogen.sh (run_configure): add --no-configure option
14131
14132         * configure.in: remove AC_ARG_PROGRAM to make
14133         autoconf complain less. add AC_PREREQ.
14134         add AC_DEFINE third arg.
14135
14136 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14137
14138         * doc/Makefile.am:
14139         Fix references so we can distcheck.
14140
14141 2002-11-21  Havoc Pennington  <hp@redhat.com>
14142
14143         * Initial module creation
14144