* configure.in: Check for no-common compiler flag (OS-X fix from
[platform/upstream/dbus.git] / ChangeLog
1 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
2
3         * configure.in: Check for no-common compiler flag (OS-X fix from
4         Benjamin Reed <ranger at befunk dot com>)
5
6 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
7
8         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
9         <fcrozat at mandriva dot com>)
10
11 2006-08-29  Havoc Pennington  <hp@redhat.com>
12
13         * test/test-service.c (path_message_func): fix lack of return value
14
15         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
16         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
17         any more sense than on anything else in this file.
18         (_dbus_get_tmpdir): add const to return value, and keep the
19         results of the various getenv around in a static variable.
20
21 2006-08-29  Havoc Pennington  <hp@redhat.com>
22
23         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
24         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
25
26 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
27
28         * test/Makefile.am: change find to use syntax that works with non
29         gnu versions of find
30
31 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
32
33         * dbus/dbus-transport.c: fix invalid deref when checking if
34         a vtable method exists (Patch from Christian Ehrlicher 
35         <ch dot ehrlicher at gmx dot de>)
36
37 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
38
39         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
40         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
41         to build with builddir != srcdir (Taken from a patch by Bernard Leak
42         <bernard at brenda-arkle dot demon dot co dot uk>)
43
44 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
45
46         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
47         default case
48
49 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
50
51         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
52         it works on any system providing this interface, not only FreeBSD.
53         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
54
55 2006-08-20  Havoc Pennington  <hp@redhat.com>
56
57         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
58         the docs
59
60 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
61
62         * Released 0.92 
63
64 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
65
66         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
67         to reflect the init late change
68
69         * bus/bus.c (bus_context_new): Check user before we fork so we can
70         print out an error message a user will be able to see
71
72 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
73
74         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
75
76         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
77         Add two more global locks for use on windows platforms.  These are
78         unused on non-windows platforms but are not ifdefed out to avoid
79         potential bugs (i.e. the few bytes lost does not warrent the extra
80         maintanence and complexity that having seperate sets of locks would
81         cause)
82
83 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
84
85         * bus/services.c (bus_registry_acquire_service): Return an error
86         when an application tries to register the org.freedesktop.DBus Bus Name
87
88         * bus/services.c (bus_registry_release_service): Return an error
89         when an application tries to release the org.freedesktop.DBus Bus Name
90
91 2006-08-17  Alp Toker  <alp@atoker.com>
92
93         * doc/dbus-specification.xml: Fix some minor typos.
94
95 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
96
97         * configure.in: use $with_init_scripts instead of $operating_system
98         to determine where to store the pid since the init scripts manipulate 
99         the pid file (patch from Marcelo Ricardo Leitner 
100         <marcelo dot leitner at terra dot com dot br>.  
101
102 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
103
104         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
105         static DBusList *uninitialized_condvar_list to support new late 
106         initialization threading model.  In this model threads can be initialized
107         even after the D-Bus API has been used but still needs to be initialized 
108         before the second thread has been started.  Mutexes and condvar addresses
109         are stored in the two static lists and are replaced with actuall locks
110         when threads are initalized.
111         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
112         the location into the static list
113         (_dbus_mutex_free_at_location): New method for removing a mutex location 
114         from the static list and freeing the mutex
115         (_dbus_condvar_new_at_location): New method for creating a conditional 
116         variable and placing the location into the static list
117         (_dbus_condvar_free_at_location): New method for removing a conditional
118         variable location from the static list and freeing the conditional variable 
119         (init_uninitialized_locks): Atomic method which goes through the static 
120         lists of mutex and condvar location and updates them with actuall locks
121         (init_global_locks): changed to init_locks
122         
123         * dbus/dbus-connection.c:
124         (_dbus_connection_test_get_locks): New method for tests to check connections
125         (_dbus_connection_new_for_transport): Use the new at_location mutex and
126         condvar API
127         (dbus_connection_allocate_data_slot): Pass in the global lock address
128         to _dbus_data_slot_allocator_alloc
129
130         * dbus/dbus-dataslot.c:
131         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
132         instead of the mutex itself
133
134         * dbus/dbus-message.c:
135         (dbus_message_allocate_data_slot): Pass in the global lock address
136         to _dbus_data_slot_allocator_alloc
137
138         * dbus/dbus-pending-call.c:
139         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
140         to _dbus_data_slot_allocator_alloc
141
142         * dbus/dbus-server.c:
143         (_dbus_server_init_base): Use the new at_location mutex API
144         (dbus_server_allocate_data_slot): Pass in the global lock address
145         to _dbus_data_slot_allocator_alloc
146
147         * test/name-test/test-threads-init.c: New test case for late thread
148         initialization
149
150 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
151
152         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
153         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
154         causes compile problems when asserts are turned off
155         Keeping _dbus_warn for printing out the message so even if
156         asserts are turned off the user gets the messages that something is 
157         wrong 
158
159 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
160
161         Patches by Kjartan Maraas <kmaraas at gnome dot org>
162
163         * bus/services.c (bus_service_list_queued_owners):
164         Add a pointer cast to fix compiler warning
165
166         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
167         return a NULL instead of FALSE since the return type
168         is not expecting a boolean
169
170         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
171         Remove unused variable
172
173         * dbus/dbus-marshal-recursive-util.c (node_new):
174         return a NULL instead of FALSE since the return type
175         is not expecting a boolean
176
177         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
178         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
179         because we are expecting a pointer not a boolean
180
181         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
182         add void as the parameter so some compilers
183         don't complain
184
185         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
186           _dbus_transport_new_for_tcp_socket):
187         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
188         because we are expecting a pointer not a boolean
189
190         * test/shell-test.c (test_command_line):
191         cast the second argument to _dbus_list_append to avoid compiler
192         warnings
193
194         * test/test-names.c (main): remove unused variable
195
196         * test/test-service.c (check_hello_from_self_reply):
197         Initialize echo_message and echo_reply to NULL
198         
199         * test/test-shell-service.c (handle_echo):
200         Remove unused variable and cast the third parameter passed to
201         dbus_connection_get_object_path_data to avoid compiler warrnings
202
203         * test/name-test/test-names.c (clear_message_queue):
204         Remove unused function
205
206         * test/name-test/test-pending-call-dispatch.c:
207         Fix format string in printf
208
209
210 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
211
212         * dbus/dbus-bus.c:
213         * test/name-test/test-names.c:
214         Remove test method dbus_bus_connection_get_unique_name because 
215         we already have public method dbus_bus_get_unique_name that 
216         does the exact same thing
217
218 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
219
220         * dbus/dbus-signature.c:
221         fix typos in Julio's previous patch which cause make check to fail
222
223 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
224
225         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
226         In any case it was wrong since this is a test checking to see if
227         address parsing is correct.  There was no need to get the true
228         tmp directory.  
229
230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
231
232         * dbus/dbus-macros.h: Revert the addition of stddef.h
233         as we should not be adding it to library headers 
234
235 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
236
237         * dbus/dbus-signature.c:
238         Fix the unit tests so that they work if assertions are not enabled.
239         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
240
241 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
242
243         * tools/run-with-tmp-session-bus.sh:
244         * test/name-test/run-test.sh:
245         Remove bashisms (patch from Julio M. Merino Vidal
246         <jmmv at NetBSD dot org>)
247
248 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
249
250         * configure.in: add a version (>= 2.6.0) check for libxml2
251
252 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
253
254         * configure.in: make sure the compiler supports -Wfloat-equal
255         
256         * bus/dir-watch-dnotify.c: move functional code after 
257         variable declerations (C99 fix)  (patches from Jens Granseuer
258         <jensgr at gmx dot net>
259
260 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
261
262         * dbus/dbus-macros.h:
263         add #include <stddef.h> so that Sun compilers don't complain about
264         the defining NULL
265
266 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
267
268         * dbus/dbus-sysdeps.c:
269         * dbus/dbus-address.c:
270         * bus/activation.c:
271         * test/shell-test.c:
272         don't hardcode tmp directory (patch from Dave Meikle 
273         <dmk at davemeikle dot co dot uk>)
274
275 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
276
277         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
278         Change an assert to a detailed warning and abort.  
279         When allocator->lock != mutex it indicates that the user has failed
280         to initalize threads before using the D-Bus library.  This warning
281         helps the user identify the issue and fix their app.
282
283 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
284
285         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
286         with cleanups of bugs found from Coverity reports:
287
288         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
289         close the file on error to avoid a leak
290
291         * bus/expirelist.c (bus_expire_list_test):
292         Check for NULL on dbus_new0
293
294         * bus/activation.c (update_directory):
295         remove dead code
296
297         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
298         Fix some leaks
299
300         * bus/bus.c (process_config_every_time):
301         Fixed a leak
302
303         * bus/desktop-file.c (parse_key_value):
304         Fixed leak
305
306         * bus/selinux.c (bus_selinux_id_table_insert):
307         Fixed leak
308
309 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
310
311         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
312         remove dead code
313
314 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
315
316         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
317         #!/bin/bash
318
319 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
320
321         * Doxyfile.in: fix the INPUT line so we can generate docs 
322         when sourcedir != builddir (patch from Cygwin Ports maintainer
323         <yselkowitz at users dot sourceforge dot net>
324
325 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
326
327         * dbus/dbus-sysdeps.h:
328         * dbus/dbus-sysdeps.c: 
329         * dbus/dbus-string.c: 
330         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
331         GLib's function which does the same thing
332
333         * configure.in:
334         * bus/Makefile.am:
335         * bus/dir-watch-default.c:
336         * bus/dir-watch-dnotify.c:
337         * bus/dir-watch-kqueue.c:
338         Add kqueue directory watching for freebsd and split the directory
339         watching code into seperate files per method/arch
340         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
341
342 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
343
344         * configure.in:
345         * tools/Makefile.am:
346         * tools/dbus-launch.c:
347         * bus/Makefile.am:
348         allow --with-dbus-daemondir switch to be used to make the
349         daemon install to a seperate bindir like /usr/libexec
350         (patch from Brian Cameron <brian dot cameron at sun dot com)
351
352 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
353
354         * bus/Makefile.am (install-data-hook): removed the slash after 
355         $(DESTDIR) so we don't get the double slash which does not work
356         in windows (patch from Andras Porjesz 
357         <andras dot porjesz at siemens dot com>)
358
359 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
360
361         * dbus/dbus-sysdeps.h:
362         * dbus/dbus-sysdeps.c: 
363           add _dbus_printf_length (patch from Peter Kümmel 
364           <syntheticpp at gmx dot net>)
365
366 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
367
368         * dbus/dbus-internals.c: unistd.h is not used 
369         (_dbus_verbose_real): only enable verbose printing 
370         if DBUS_VERBOSE environment var is set to '1'
371         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
372
373 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
374
375         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
376         so we still compile on older gcc (patch from Frederic Peters 
377         <fpeters at 0d dot be>
378
379 2006-08-04  Havoc Pennington  <hp@redhat.com>
380
381         * configure.in: add -Wdeclaration-after-statement
382
383         * dbus/dbus-connection.c: change all the pending call stuff to
384         reflect the fact that pending call operations use the connection
385         lock
386
387         * dbus/dbus-pending-call.c: add locking here
388
389         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
390         field const consistent with how message field is done
391
392 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
393
394         * s/D-BUS/D-Bus/g
395
396 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
397
398         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
399         <in7y118 at public.uni-hamburg dot de> - fix invalid
400         read/write reported by valgrind
401
402 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
403
404         * Released 0.91
405
406 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
407
408         * dbus/dbus-connection.c:
409         (_dbus_connection_attach_pending_call_unlocked):
410         (connection_timeout_and_complete_all_pending_calls_unlocked):
411         Make sure we set timeout_added on pending calls to FALSE when
412         we remove the timeout from the connection
413
414 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
415
416         * Removed some extra bindings stuff lingering around (thanks timo)
417         * dbus-pendingcall.c (_dbus_pending_call_new): 
418         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
419         when we tried to take a lock on an already locked connection
420
421 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
422
423         * Released 0.90
424
425 2006-07-17  Havoc Pennington  <hp@redhat.com>
426
427         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
428         ints, reported by Owen Taylor
429
430 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
431
432         * doc/TODO:
433         * dbus/dbus-bus.c:
434         * dbus-errors.c:
435         * dbus/dbus-marshal-validate.c:
436           Removed TODO items which were fixed or are no longer relevent
437
438 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
439
440         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
441         Remove stray files from the stripped bindings
442
443 2006-07-16  Havoc Pennington  <hp@redhat.com>
444
445         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
446         Improve the error message on reply timeout
447
448 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
449
450         * Remove all bindings
451
452 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
453
454         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
455         and set pending_reply out arg to NULL is connection is disconnected
456         (connection_timeout_and_complete_all_pending_calls_unlocked): New
457         static method for cleaning up pending calls on disconnect
458         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
459         calls queued timeouts on disconnect 
460
461          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
462         Remove 
463
464 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
465
466         * bus/activation.[ch] (bus_activation_list_services): new function to 
467         get the list of services that can be activated
468
469         * bus/dispatch.c: test coverage for the new bus method
470         ListActivatableNames
471
472         * bus/driver.c: new bus method ListActivatableNames to get the list of
473         services that can be activated
474
475         * doc/dbus-specification.xml: ListActivatableNames method documentation
476
477 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
478         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
479         source files
480
481 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
482         * dbus/dbus-message-factory.c:
483         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
484
485 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
486         * dbus/dbus-connection-internal.h:
487         * dbus/dbus-connection.c:
488         * file dbus/dbus-pending-call.c:
489         * dbus/dbus-pending-call.h:
490         Make DBusPendingCall an opaque type even to D-Bus internals
491
492 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
493
494         * dbus/dbus-connection.h: remove connection_disconnect and replace with
495         connection_close
496
497         * dbus/dbus-connection.c: include dbus-bus.h
498         (_dbus_connection_read_write_dispatch): make static
499
500 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
501
502         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
503         function
504         (dbus_connection_dispatch): On disconnect unref any shared connections
505
506         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
507         for cleaning up shared connections on disconnect
508         (internal_bus_get): get a hard refrence to shared connections when
509         they are created
510         
511         * doc/TODO: Remove items which are no longer relevent or have been fixed
512         Split 1.0 todo items with a 0.90 freeze todo list
513  
514 2006-06-14  Ross Burton  <ross@openedhand.com>
515
516         * glib/dbus-gobject.c:
517         Free a leaking GArray (surely not!) in dbus_g_method_return.
518
519 2006-06-14  Ross Burton  <ross@openedhand.com>
520
521         * tools/Makefile.am:
522         * tools/dbus-monitor.c:
523         Don't use the GLib bindings in dbus-monitor (patch from Ralf
524         Habacker).
525         
526 2006-06-14  Ross Burton  <ross@openedhand.com>
527
528         * tools/dbus-print-message.c:
529         Also print the object path when outputting signals or method calls.
530
531 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
532
533         * qt/src/Makefile.am: install the qdbus.h header.
534         This allows people to actually use the installed code.
535
536 2006-06-12  Ross Burton  <ross@openedhand.com>
537
538         * glib/dbus-gproxy.c:
539         Don't leak a GArray when firing signals (thank Rob Taylor for review).
540
541 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
542
543         * Released 0.62
544
545 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
546
547         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
548         break pedantic builds. Closes bug 6043 (patch approved by
549         Havoc back in February).
550
551 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
552
553         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
554         that took a QDBusMessage parameter.
555         * qt/src/qdbusbus.h: Add a default flag for RequestName.
556         * qt/tools/dbus.cpp: Don't use automatic call because we might
557         be calling an async method: request a reply.
558
559 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
560
561         * test/qt/*: Update the testcases, including testing the new
562         functionality of sending null QByteArray and QString over the
563         bus. Add new headertest test and restore the old
564         qdbusxmlparser test.
565
566 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
567
568         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
569         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
570
571         * qt/examples/Makefile.am:
572         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
573         form.
574
575         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
576         QByteArray() (nulls) over the bus.
577         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
578         the one that has the signature suffix stripped.
579         * qt/src/qdbusreply.h: Make some methods const.
580
581 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
582
583         Patch from Timo Hoenig <thoenig@suse.de>.
584
585         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
586         required during build to EXTRA_DIST.
587         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
588         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
589         * configure.in: Fix "make dist", take care that the Makefile for
590         qt/dbus is being generated.
591
592 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
593
594         * bus/bus.c: Fix eavesdropping on method calls
595
596 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
597
598         * configure.in:
599         * dbus/dbus-userdb-util.c:
600         Add Solaris console owner patch from Artem Kachitchkine
601
602 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
603
604         * qt/Makfile.am:
605         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
606         reorganisation. Thanks to Timo Hoenig for pointing this out.
607
608 2006-06-06  Robert McQueen  <robot101@debian.org>
609
610         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
611           call to dbus_g_type_get_struct.
612
613 2006-06-06  Robert McQueen  <robot101@debian.org>
614
615         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
616           pointers were put into a GPtrArray-based specialised collection, and
617           then freed along with the array. GValues which you add into
618           collections or maps which have the NOCOPY flag set are assumed to not
619           belong to the caller, so rather than the existing pointer-stealing
620           semantics, they are copied instead. Given that the main consumers of
621           this abstraction are the bindings themselves, I don't think this is
622           too bad, but others should watch their choice of take vs set_static.
623
624 2006-06-06  Robert McQueen  <robot101@debian.org>
625
626         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
627           of g_slist_prepend not being used. Fixed copying of slist-based
628           specialised collections, then wrote a test case and found that it was
629           all broken. Went on to fix iterating and appending too. Good thing
630           nobody uses this code yet.
631
632 2006-06-06  Robert McQueen  <robot101@debian.org>
633
634         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
635           the iterators use gvalue_take_ptrarray_value (the GValues themselves
636           are discarded without unsetting, so it makes no difference whether
637           we take or set_static). Remove cases for G_TYPE_POINTER because
638           there really is nothing useful we can do with them in our
639           specialised types - we *need* boxed copy/free functions at the very
640           least.
641
642 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
643
644         * qt/dbus: Add directory. I had forgotten to add this
645         yesterday after the move...
646
647         * qt/examples/Makefile.am:
648         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
649
650         * qt/tools/Makefile.am:
651         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
652         Added feature to get and set properties.
653         Added validation of service, object path and interface names.
654
655         * qt/tools/dbusidl2cpp.cpp: Two new features:
656         1) Allow specifying both the header and the source file names,
657         by separating them with a colon.
658         2) Don't write an interface output if the -p switch wasn't
659         given, but the -a was.
660
661         * qt/src/*: Fix usage of Iterators and ConstIterators.
662         Fix shadowing of variables by other variables (-Wshadow).
663         Fix keyword-cleanliness in headers.
664         Fix ASCII-cast (QLatin1String, QLatin1Char).
665         Fix validation of member names.
666         Add extra checking of introspection data during XML parsing.
667         Various bug fixes.
668
669 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
670
671         * dbus/Makefile.am:
672         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
673         qt/dbus/qdbus.h now.
674
675 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
676
677         * configure.in: Make --disable-qt actually do
678           something. Patch inspired by Zack Rusin.
679
680 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
681
682         * qt/: Update to Subversion r548032.
683         This includes a big reorganisation of the files inside the
684         subdir.
685
686 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
687
688         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
689         clear:  
690         "Failed to connect to socket <host>:<port> <error>" instead of
691         "Failed to connect to socket <host>: <error>:<port>"
692
693         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
694         for a tcp transport. 
695
696 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
697
698         * qt/*: Update the QtDBus bindings up to revision 546310 in
699         Subversion.
700         This adds the dbuscpp2xml tool, that parses a C++ header and
701         outputs a D-BUS Introspection XML.
702
703 2006-05-21  Havoc Pennington  <hp@redhat.com>
704
705         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
706         is not NULL when it shouldn't be. Also a couple of possible fixes
707         for #4637 though I don't understand why the bug happens, to be
708         honest... also the object constructor has an assert name != NULL
709         and the name is only currently NULL for peer-to-peer proxies that 
710         I don't think anyone uses? So it should be asserting.
711         Anyway, for now at least see if we get an earlier assertion failure.
712
713         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
714         apparently broken code to be sure the tests fail and someone 
715         will fix them...
716
717 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
718
719         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
720         and arrays when they had a single element: has_next returns
721         false, even before you read the element. So, instead, check
722         the array length.
723
724 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
725
726         * qt/qdbusmessage.cpp:
727         * qt/qdbustypehelper_p.h:
728         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
729         the list is a const-reference
730
731 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
732
733         * Adding old doc patch that never got applied
734         
735         * dbus/bus.c (dbus_bus_add_match): Add documentation
736
737         * doc/dbus-specification.xml: Add documentation for the match rules
738           and the AddMatch and RemoveMatch methods
739
740 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
741
742         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
743         call (r535506)
744
745         * qt/dbusidl2cpp.cpp:
746         * qt/qdbusabstractadaptor.cpp:
747         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
748         sibling of the QDBusAbstractAdaptor objects instead of the
749         parent. (r535848)
750
751         * qt/dbusidl2cpp.cpp:
752         * qt/qdbusabstractinterface.cpp:
753         * qt/qdbusabstractinterface.h:
754         * qt/qdbusabstractinterface_p.h:
755         * qt/qdbusinterface.cpp: Make properties in interfaces
756         actually work. The code that was generated would not compile,
757         due to moc calls to functions that did not exist. They now
758         shall. (r536571)
759
760 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
761
762         * Makefile.am:
763         * configure.in:
764         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
765         Thanks to Brad Hards for providing the patch
766
767 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
768
769         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
770         call. (r535506)
771
772 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
773
774         * qt/examples/dbus.cpp: Enhance error messages and use
775         QDBusInterfacePtr.
776
777 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
778
779         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
780         and disable the copy operators. (r533772, r534746)
781
782         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
783
784         * qt/qdbusabstractinterface.cpp:
785         * qt/qdbusabstractinterface.h: Change the default call mode to
786         not use the event loop. Add convenience call() methods that
787         take a CallMode parameter. (r534042)
788
789         * qt/qdbusconnection.h: Change the default call mode to not
790         use the event loop. (r534042)
791
792         * qt/qdbusinterface.cpp:
793         * qt/qdbusinterface.h: Add a method to tell us if the
794         interface is valid (since we don't return a null pointer
795         anymore) (r534099)
796
797         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
798         (r534101)
799
800         * qt/qdbusinternalfilters.cpp: Decouple the introspection
801         function in two so taht we get the chance to introspect
802         without having a QDBusMessage (r534102)
803
804         * qt/qdbusbus.h:
805         * qt/qdbusconnection.cpp:
806         * qt/qdbusconnection_p.h:
807         * qt/qdbusintegrator.cpp: Keep a list of our own names to
808         avoid a round-trip to the server when attempting to introspect
809         one of our own objects. Also make sure the filter functions
810         match the empty interface as well. (r534108)
811         Don't keep the connection names. Instead, trust the unique
812         connection name (r534111)
813         Remove event loop usage (r534112)
814
815 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
816
817         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
818         Brad Hards.
819
820 2006-04-28  Robert McQueen  <robot101@debian.org>
821
822         * glib/dbus-gproxy.c: Fix properties so that they can be given in
823         any order, making it easier for people who inherit from this
824         object.
825
826 2006-04-28  Robert McQueen  <robot101@debian.org>
827
828         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
829         of memory from within pointer arrays and lists. Fixes bug #6300.
830
831 2006-04-28  Robert McQueen  <robot101@debian.org>
832
833         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
834         generating struct signatures. Fixes bug #6083.
835
836 2006-04-28  Robert McQueen  <robot101@debian.org>
837
838         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
839         to qdbusconnection_p.moc.
840
841 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
842
843         * README, INSTALL: Doc fixes
844         Patch from Brad Hards <bradh at frogmouth.net>
845
846 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
847
848         * qt/examples/dbus.cpp: Use the new merged-interface mode for
849         the dynamic meta object. No need to guess which interface to
850         call.
851
852 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
853
854         * qt/qdbusconnection_p.h:
855         * qt/qdbusmetaobject.cpp:
856         * qt/qdbusmetaobject_p.h:
857         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
858         for the dynamic meta object. No need to guess which
859         interface to call.
860         * qt/qdbusabstractinterface_p.h:
861         * qt/qdbusconnection.cpp:
862         * qt/qdbusintegrator.cpp:
863         * qt/qdbusinterface.cpp:
864         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
865         Add a QDBusRef that looks and behaves like DCOPRef.
866
867 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
868
869         * dbus/dbus-connection.c: Interfaces are optional in method
870         calls, so don't give up if the interface parameter is NULL.
871         Patch reviewed by Havoc Pennington.
872
873 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
874
875         * qt/qdbusreply.h: Add default constructor and operator=
876           (r532625)
877         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
878           in public headers (r532952)
879         * qt/qdbusabstractinterface.cpp:
880         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
881           make it the default (r532951)
882
883 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
884
885         * dbus/dbus-connection.c: Fix asserts
886         Patch from Tim Moloney <t.moloney at verizon.net>
887
888 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
889
890         * mono/Connection.cs, mono/Message.cs: Check Target type
891         Patch from Aaron Bockover (abockover at novell.com)
892
893 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
894
895         * INSTALL: fine-tune the requirements for the Qt4 binding.
896
897 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
898
899         * tools/dbus-print-message.c: Added support for printing of all 
900           remaining data types. Fixed logic for indentation of compound
901           data types.
902         
903 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
904
905         * INSTALL: fill out content of file providing DBus specific
906           build installations, followed by generic Auto* INSTALL file
907           content
908         
909 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
910
911         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
912           Patch by Stefan Eilers. (r529537)
913
914 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
915
916         * qt/qdbusinternalfilters.cpp: Don't show the parent's
917           contents (r528208)
918
919 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
920
921         * qt/Makefile.am: fix the dependency for
922           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
923           not in qdbusconnection.cpp.
924           Thanks to Jakub Stachowski <stachowski@hypair.net> for
925           spotting this.
926
927 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
928
929         * qt/examples/listnames.cpp:
930         * qt/examples/Makefile.am: Three ways to list the names on the
931           bus.
932
933 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
934
935         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
936           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
937
938 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
939
940         Merge from Subversion:
941         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
942           something that exists (r526315)
943         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
944           slots/signals (r526316)
945         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
946           also return an unknown-method error if the parameters don't
947           match for org.freedesktop.DBus.Properties. (r526842)
948         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
949         * qt/qdbusintegrator.cpp: Restore the proper order of
950           delivery: don't make method returns be delivered on priority
951           (r528150)
952
953 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
954
955         * configure.in qt/Makefile.am: add qt/examples
956         * qt/examples: Add QtDBus example programs:
957           - hello: Hello, World
958           - ping: Simple method-calling program
959           - pong: Simple object-exporting program (not using adaptors)
960           - complexping: Interactive method-calling program 
961                 (also gets and sets properties).
962           - complexpong: Sample program exporting methods, signals and
963                 properties, using adaptors.
964           - dbus: Simple implementation of a generic method-calling
965                 program, similar to 'dbus-send', but with semantics
966                 similar to 'dcop'.
967           - chat: Simplistic chat program, implemented using signals
968                 and the system bus. Looks like IRC.
969
970 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
971
972         * configure.in: Detect QtGui (necessary for one of the
973           example programs). Note: this increases the minimum required
974           version of Qt to 4.1.3.
975
976 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
977
978         * test/qt/*: Sync with KDE Subversion revision 523647.
979         Update the testcases to the new API. Remove testcases for
980         classes that are no longer public or have been removed.
981
982 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
983
984         * qt/*: 
985         * dbus/qdbus.h: Sync with KDE Subversion revision
986         523647. Hopefully, this will be the last of the
987         source-incompatible changes. Documentation has been improved;
988         support for QList<basic-types> has been added; QDBusObject is
989         gone; QDBus(Abstract)Interface is now a QObject with
990         auto-generated meta-object; QDBusIntrospection is marked
991         private, since QMetaObject can be used now; lots of bugfixes.
992
993 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
994
995         Patch from Milosz Derezynski <internalerror at gmail.com>
996         
997         * configure.in:
998         Output the service directory in the configure summary
999
1000         * dbus-1.pc.in:
1001         Add session_bus_services_dir
1002
1003 2006-03-10  Ross Burton  <ross@openedhand.com>
1004
1005         * tools/dbus-print-message.c:
1006         Add support for object paths and signatures.
1007
1008 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1009
1010         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1011         config reload.
1012         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1013         information caches
1014         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1015         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1016         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1017         * dbus/dbus-userdb.h: Add function to flush all user/group information
1018         caches.
1019
1020 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1021
1022         * qt/dbusidl2cpp.cpp:
1023         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1024         for dcopidl2cpp, found in the KDE installations (or the more
1025         modern kalyptus): generate Qt4 C++ code for the input XML
1026         introspection. Currently no IDL parsing.
1027
1028 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1029
1030         * test/qt/*: Update the self-tests.
1031
1032 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1033
1034         * qt/*: 
1035         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1036         represents the first feature-complete version of the Qt4
1037         bindings since I took ove maintainership.
1038
1039 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1040
1041         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1042         dir. This is C++, so we can't use the DBus ones.
1043
1044 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1047         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1048
1049 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * dbus/dbus-connection.c: 
1052         (_dbus_connection_block_pending_call):
1053         Check to see if our data has already been read off the connection
1054         by another blocking pending call before we block in poll.
1055         (check_for_reply_and_update_dispatch_unlocked):
1056         Code taken from _dbus_connection_block_pending_call - checks for
1057         an already read reply and updates the dispatch if there is one.
1058
1059         * test/name-test/test-pending-call-dispatch.c:
1060         New test for making sure we don't get stuck polling a 
1061         dbus connection which has no data on the socket when
1062         blocking out of order on two or more pending calls.
1063
1064 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1065
1066         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1067         make/automake don't detect that we're talking about the same
1068         .lo file if I specify the full path to the source files.
1069
1070 2006-02-26  Havoc Pennington  <hp@redhat.com>
1071
1072         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1073
1074         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1075         session bus variable is unset, suggest "man dbus-launch" and "man
1076         dbus-daemon" to figure out how to fix the problem
1077
1078 2006-02-25  Havoc Pennington  <hp@redhat.com>
1079
1080         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
1081         should make this thing use the new glib options parser
1082
1083 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
1084
1085         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
1086         .lo files taking moc sources.
1087
1088 2006-02-25  Havoc Pennington  <hp@redhat.com>
1089
1090         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
1091         and install it as a public header
1092
1093 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1094
1095         * Released 0.61
1096
1097 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
1098         
1099         * proxies.py: Fix the callchain
1100
1101 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
1102         
1103         * patch from Sjoerd Simons <sjoerd at debian.org>:      
1104
1105         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
1106         dbus/dbus-sysdeps.c
1107
1108         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
1109         call _dbus_group_info_free_allocated which causes infinite loop,
1110         correctly call _dbus_group_info_free
1111
1112 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
1113
1114         * qt/qdbusinterface_p.h:
1115         * qt/qdbusinterface.cpp: Use the standard
1116         org.freedesktop.DBus.Method.NoReply annotation for the "async"
1117         calls instead of creating one for us.
1118
1119         * qt/qdbusconnection_p.h:
1120         * qt/qdbusintegrator.cpp: Remove debugging code.
1121
1122         * qt/qdbusintegrator.cpp:
1123         * qt/qdbusmessage.cpp:
1124         * qt/qdbusmessage_p.h:
1125         * qt/qdbusmessage.h: Change the behaviour of automatic
1126         reply-sending: now a reply is always sent, unless the caller
1127         didn't request one or if the user slot has already sent one.
1128
1129 2006-02-16  Robert McQueen  <robot101@debian.org>
1130
1131         * configure.in: Patch from Debian packages by Sjoerd Simons
1132         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
1133         arguments so it's possible to build both bindings in the
1134         same tree.
1135
1136         * qt/Makefile.am: Fix truncated value so that make dist works.
1137
1138 2006-02-16  Robert McQueen  <robot101@debian.org>
1139
1140         * acinclude.m4, configure.in: Patch from Brad Hards
1141         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
1142         improving quoting, re-ordering a few checks, and a few other
1143         aesthetic tidy-ups.
1144
1145 2006-02-16  Robert McQueen  <robot101@debian.org>
1146
1147         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
1148         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
1149         assertion that the next element to read from the iter is fixed in
1150         size. This is not the case when you are at the end of the iter,
1151         because the next element type is INVALID.
1152
1153         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
1154         a bogus assert which means that you may not initialise a 0-length
1155         string unless you provide a non-NULL pointer. This prevented
1156         you from marshalling messages containing zero-length arrays in
1157         some cases.
1158
1159         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
1160         from Rob to correct bogus asserts when trying to demarshal an
1161         array and get_fixed_array got you 0 elements. Append nothing to
1162         the GArray in this case.
1163
1164         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
1165         an empty array via the glib bindings. Without all of the above
1166         patches, this new test fails.
1167
1168 2006-02-16  Robert McQueen  <robot101@debian.org>
1169
1170         * glib/dbus-gmain.c: Make the previous commit compile.
1171
1172         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
1173         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
1174         specify sender_keyword="foo", path_keyword="bar" when adding
1175         a signal listener, so that you can bind to signals generically
1176         but still do something useful in your callback.
1177
1178         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
1179         chars so that they're not cast to chars and made negative. Thanks
1180         to Jakub Stachowski for reporting this and testing the fix.
1181
1182 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
1183
1184         * dbus/dbus-glib.h:
1185         * glib/dbus-gmain.h:
1186         (dbus_g_connection_open): new method for openning
1187         a connection to an arbitrary address in the glib bindings
1188
1189         * ChangeLog: checkin last entry which doesn't seem to be commited
1190
1191 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * tools/dbus-launch.c: Fixed sh syntax output
1194
1195 2006-02-13  Robert McQueen  <robot101@debian.org>
1196
1197         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
1198         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
1199         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
1200         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
1201         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
1202         missing piece of the glib bindings jigsaw puzzle. This modifies
1203         the existing specialised types to have N type parameters (rather
1204         than the current 1 or 2 for arrays and dictionaries respectively).
1205         You can then use this to get a glib type to represent any arbitrary
1206         D-Bus struct type using dbus_g_type_get_struct. The only
1207         implementation of these types is with GValueArrays as before,
1208         but it's now possible to store these in arrays, emit them in
1209         signals, etc.
1210
1211 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1212
1213         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
1214         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
1215         <thiago.macieira at trolltech.com>
1216
1217 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1218
1219         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
1220         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
1221
1222 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1223
1224         * bus/connection.c (bus_connections_expect_reply): Make
1225         pending reply limit not common to all connections (Bug #5416)
1226         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
1227
1228 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
1231
1232 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
1233
1234         * gcj/Makefile.am: point to correct jar command (Bug #4529)
1235         patch from Doug Goldstein <cardoe at gentoo.org>
1236
1237 2006-02-09  Joe Shaw  <joeshaw@novell.com>
1238
1239         * mono/Arguments.cs: Fix a magic number in the mono bindings
1240         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
1241
1242 2006-01-27  Robert McQueen  <robot101@debian.org>
1243
1244         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
1245         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
1246         when generating the client-side methods, instead of overloading
1247         CSymbol which broke everything horribly. My apologies.
1248
1249 2006-01-27  Robert McQueen  <robot101@debian.org>
1250
1251         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
1252         by me and Rob Taylor to add a simple_free function to D-Bus map
1253         and collection types, which allows those types which can be freed
1254         with a GDestroyNotify (such as GHashTables and GArrays, but not
1255         GPtrArrays) to be stored as the values in hashtables.
1256
1257         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
1258         Patch by Rob Taylor to add nested dicts to the glib tests to check
1259         the above code works, and appears not to leak when called repeatedly.
1260
1261 2006-01-27  Robert McQueen  <robot101@debian.org>
1262
1263         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
1264         to free a D-Bus allocated string with dbus_free () instead of
1265         g_free ().
1266
1267 2006-01-27  Iain Holmes  <iain@openedhand.com>
1268
1269         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
1270         method from being called multiple times.
1271
1272 2006-01-19  Robert McQueen  <robot101@debian.org>
1273
1274         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
1275         <rob.taylor@collabora.co.uk> to add support for generating bindings
1276         to arrays that are represented as GPtrArrays rather than GArrays (ie
1277         size-variable things, such as strings, objects, structs, etc).
1278
1279 2006-01-05  Robert McQueen  <robot101@debian.org>
1280
1281         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
1282         <ricardo.kekki@movial.fi> to make it possible to inherit from
1283         DBusGProxy, by splitting the DBusGProxy struct into a public part and
1284         a private part, and moving the setting of the DBusGProxyManager into a
1285         connection property, allowing proper GObject construction.
1286
1287 2006-01-05  Robert McQueen  <robot101@debian.org>
1288
1289         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
1290         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
1291         annotations when generating glib client bindings.
1292
1293 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1294
1295         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
1296
1297         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
1298
1299 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
1300
1301         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
1302
1303 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
1304
1305         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
1306
1307 2005-12-19  Ross Burton  <ross@openedhand.com>
1308
1309         * doc/dbus-tutorial.xml:
1310         Document the Glib client-side bindings, and list all possible annotations.
1311
1312 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
1313
1314         * dbus/bus.c (dbus_bus_release_name): Add documentation
1315
1316 2005-12-06  Robert McQueen  <robot101@debian.org>
1317
1318         * python/service.py: s/sucessful/successful/ so we're allocating to
1319         and reading from the same variable. Oops.
1320
1321 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * Released 0.60
1324
1325 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * test/qt/Makefile.am: build from srcdir
1328
1329         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
1330         Note - this code is wrong and needs to be fixed by the Qt binding
1331         developers.  The flags should be treated as bitfields and not enums.
1332
1333         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
1334
1335 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1336
1337         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
1338           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
1339           in production code
1340
1341 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
1344         method for getting messages off the bus in the absence of a
1345         mainloop.  This method is much like 
1346         dbus_connection_read_write_dispatch except it does not dispatch
1347         the messages to a registered filter function.  Instead it
1348         allows a developer to process messages by directly popping
1349         them off the bus.
1350
1351 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1352
1353         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
1354         the parser to continue instead of returning error
1355         (bus_desktop_file_load): Do not free parser data when
1356         parse_section_start or parse_key_value fails because it was 
1357         already freed by parser_free (patch from Carlos Garcia Campos  
1358         <carlosgc at gnome.org>)
1359
1360 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
1363         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
1364         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
1365         test/test-segfault.c, test/test-utils.c,
1366         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
1367         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
1368         Various cleanup of dead code and compiler warnings (patch from
1369         Kjartan Maraas <kmaraas at gnome.org>) 
1370
1371 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
1374         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
1375
1376 2005-11-27  Robert McQueen  <robot101@debian.org>
1377
1378         * python/dbus_bindings.pyx: Repair my previous commit which reverted
1379         part of the preceding one. Oops. Merge patch by Johan Hedberg
1380         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
1381         on big-endian platforms.
1382
1383         * test/python/test-client.py: Add some 16-bit integers to the test
1384         values.
1385
1386 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
1387
1388         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
1389         method return message for property getters
1390
1391 2005-11-27  Robert McQueen  <robot101@debian.org>
1392
1393         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
1394         with type v of an instance of dbus.Variant(foo, type='x') caused
1395         it to be boxed twice before sending over the bus.
1396
1397         * python/dbus_bindings.pyx, python/service.py,
1398         test/python/test-client.py: Update the constants for the new
1399         request_name flags, and update comments/test cases now that queueing
1400         is the default action.
1401
1402 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1403
1404         * configure.in:
1405         - Change version to 0.60 for impending release
1406         - upped the sonames because of ABI and API breakage
1407
1408 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
1409
1410         * configure.in: Add test/name-test/Makefile to the generated
1411         Makefile list
1412
1413         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
1414         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
1415         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
1416         not to queue an ower if it can't be the primary owner
1417
1418         * bus/bus.h: Add new internal BusOwner struct
1419
1420         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
1421         to bus_registry_ensure and don't set the prohibit_replacement flag
1422         since they are now set per BusOwner and not per name.
1423         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
1424         that returns the list of connections in a name's connection queue
1425         
1426         * bus/services.c (struct BusService): remove prohibit_replacement field
1427         (struct BusOwner): new struct for keeping track of queued connections
1428         and their associated flags for the queue
1429         (struct BusRegistry): add a BusOwner memory pool
1430         (bus_registry_new): initialize the BusOwner memory pool
1431         (bus_registry_unref): free the BusOwner memory pool
1432         (_bus_service_find_owner_link): new internal method for
1433         searching the queue for a specific connection
1434         (bus_owner_set_flags): new method for adding setting the flags on a
1435         bus owner
1436         (bus_owner_new): new method that creates a BusOwner object from the
1437         pool and sets its flags
1438         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
1439         (bus_registry_ensure): Add the flags parameter
1440         (bus_registry_acquire_service): Switch from using raw connections to
1441         using the BusOwner struct
1442         Add new state machine for dealing with the new set of flags
1443         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
1444         cancel_ownership, free_ownership_cancel_data, 
1445         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
1446         restore_ownership, free_ownership_restore_data, 
1447         add_restore_ownership_to_transaction): Switch to using BusOwner 
1448         instead of raw connections
1449         (bus_service_add_owner): Add flags parameter
1450         Switch to using BusOwner instead of raw connections
1451         Add state machine for dealing with the new set of flags
1452         (bus_service_swap_owner): Swaps the first and second owners in the
1453         queue.  Used to make sure proper signals are sent when a service looses 
1454         or gains primary ownership.  We never insert an owner at the top of the
1455         queue.  Instead we insert it in the second position and then swap.
1456         (bus_service_remove_owner): Remove the owner from the queue sending
1457         out the NameLost and NameOwnerChanged signals if the we were the 
1458         primary owner
1459         (bus_service_get_primary_owners_connection): New method that extracts
1460         the connection from the primary owner
1461         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
1462         connection
1463         (bus_service_get_allow_replacement): Changed from the old 
1464         bus_service_get_prohibit_replacement method.  Checks the flags of the 
1465         primary owner and returns if it can be replaced or not
1466         (bus_service_set_prohibit_replacement): removed
1467         (bus_service_has_owner): returns TRUE if and owner with
1468         the specified connection exists in the queue
1469         
1470         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
1471         method that only compiles if tests are enabled.  Allows us to get the 
1472         unique name of a connection so we can check it against the queue when
1473         doing regression tests
1474
1475         * bus/activation.c (bus_activation_send_pending_auto_activate),
1476         bus/dispatch.c (bus_dispatch),  
1477         bus/driver.c (bus_driver_handle_get_service_owner, 
1478         bus_driver_handle_get_connection_unix_user, 
1479         bus_driver_handle_get_connection_unix_process_id,
1480         bus_driver_handle_get_connection_selinux_security_context),
1481         bus/signals.c (connection_is_primary_owner): 
1482         use bus_service_get_primary_owners_connection instead of
1483         bus_service_get_primary_owner
1484
1485         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
1486         _dbus_listen_unix_socket): Calculate the length of the socket
1487         path and use that instead of using a fixed length which was
1488         causing socket names to contain many trailing Nul bytes.
1489
1490         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
1491         (dbus_g_method_get_sender): New method for extracting the sender 
1492         from a DBusGMethodInvocation
1493         (dbus_g_method_return_get_reply): changed name to 
1494         dbus_g_method_get_reply
1495         (dbus_g_method_return_send_reply): changed name to
1496         dbus_g_method_send reply
1497
1498         * doc/dbus-specification.xml: New docs that describe how the new
1499         queueing system works and talks about the changes to the how
1500         we specify socket names
1501
1502         * glib/examples/example-service.c, 
1503         glib/examples/example-signal-emitter.c,
1504         glib/examples/statemachine/statemachine-server.c:
1505         Changed the RequestName flags to the new system
1506
1507         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
1508         regression test suite for testing various states of the new
1509         queueing system
1510         
1511 2005-11-15  Robert McQueen  <robot101@debian.org>
1512
1513         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
1514         Taylor to add two methods, dbus_g_method_return_get_reply and
1515         dbus_g_method_return_send_reply, to allow you to get the reply
1516         message from a DBusGMethodInvocation, append arbitrary stuff to it,
1517         and send it. The GLib bindings can't marshal a return value of
1518         something like a(s) if the array is empty - ultimately they should be
1519         made to heed the signature of the out arguments as the Python bindings
1520         now can, but this is a workable interim solution which might have
1521         other applications.
1522
1523 2005-11-15  Robert McQueen  <robot101@debian.org>
1524
1525         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
1526         method to org.freedesktop.DBus to release a bus name or give up
1527         waiting in the queue for it.
1528
1529         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
1530         dbus_bus_release_name method to send the ReleaseName method calls.
1531         Add constants for the return values to dbus/dbus-shared.h.
1532
1533         * doc/dbus-specification.xml: Document the new ReleaseName method
1534         in the specification.
1535
1536         * python/dbus_bindings.pyx: Add a low-level python binding for the
1537         release name method.
1538
1539         * python/exceptions.py, python/service.py: Make freeing BusName
1540         objects release the name. Add a NameExistsException, and fix a
1541         bug with creating UnknownMethodException.
1542
1543         * test/python/test-client.py: Add tests for freeing BusName
1544         objects causing names to be released.
1545
1546 2005-11-14  Robert McQueen  <robot101@debian.org>
1547
1548         * python/service.py: Include the traceback in the error reply when we
1549         send an exception over the bus. _BEST_ _PATCH_ _EVER_
1550
1551 2005-11-14  David Zeuthen  <davidz@redhat.com>
1552
1553         Patch from Timo Hoenig <thoenig@suse.de>.
1554
1555         * bus/bus.c: I've recently investigated why the automatic reload
1556         of configuration files does not work as expected.
1557
1558         Currently, reloading configuration files does only work when
1559         running dbus-daemon with --nodaemon.  If we are running as daemon
1560         we're hitting a dnotify bug once we fork the process.
1561
1562         We're initializing the dnotify fds before calling fork().  Once
1563         the child process forked it does still have the fds (and they
1564         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
1565         getting SIGIO as changes are made to the configuration files.
1566
1567         The attached patch moves the initialization of the dnotify fds to
1568         process_config_postinit().  This is safe for all current code
1569         paths and solves the dnotify disfunction.  If we're running
1570         dbus-daemon as daemon the fds for dnotify are now being
1571         initialized after fork() for the child process.
1572
1573         * configure.in: The current configure.in check for dnotify probes
1574         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
1575         match for 'xlinux', too. Additionally I have adapted the configure
1576         option's style to match with the others.
1577
1578 2005-11-14  Robert McQueen  <robot101@debian.org>
1579
1580         * python/decorators.py, python/service.py: Add a new argument to the
1581         dbus.service.method decorator called sender_keyword, which if set,
1582         specifies the name of an argument which will be provided the bus
1583         name of the method caller.
1584
1585         * test/python/test-client.py, test/python/test-service.py: Add a
1586         method and test to check the sender_keyword functionality.
1587
1588 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
1589
1590         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
1591         empty reply so blocking calls don't block forever (Patch from Sjoerd 
1592         Simons <sjoerd at luon.net>)
1593
1594         * AUTHORS: Add Robert McQueen for his work on the Python
1595         Bindings and other parts of D-Bus
1596
1597 2005-11-07  Robert McQueen  <robot101@debian.org>
1598
1599         * python/decorators.py: Change emit_signal function to use the
1600         signature annotation of the signal when marhsalling the arguments from
1601         the service. Fix a bug where the code checking signature length
1602         against argument length referenced the wrong variable.
1603
1604         * python/introspect_parser.py: Avoid adding the type signature of
1605         signal arguments to any methods which occur after them in the
1606         introspection data (!) by making the parser a little more careful
1607         about its current state.
1608
1609         * python/service.py: Remove debug prints from last commit (again :D).
1610
1611         * test/python/test-client.py, test/python/test-service.py: Add test
1612         signals with signature decorators to test the strict marshalling code
1613         gives errors at the right time. Could do with checking the signals
1614         actually get emitted too, given that the test does nothing with
1615         signals at the moment...
1616
1617 2005-11-07  Robert McQueen  <robot101@debian.org>
1618
1619         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
1620         instances to stop madness of creating new instances representing
1621         the same bus connection all the time, rendering any tracking of
1622         match rules and bus names quite meaningless. Caught a bug where
1623         the private argument to SessionBus() and friends was being passed
1624         in as use_default_mainloop by mistake. Still some problems with
1625         multiple dbus_binding.Connection instances representing the same
1626         low-level connection (eg when you use both SessionBus() and
1627         StarterBus() in same process), but it's a lot better now than it
1628         was.
1629
1630         * python/dbus_bindings.pyx: Add constants with the return values
1631         for bus_request_name().
1632
1633         * python/service.py: Store bus name instances in a per-dbus.Bus cache
1634         and retrieve the same instances for the same name, so deletion can be
1635         done with refcounting. Also now throws some kind of error if you
1636         don't actually get the name you requested, unlike previously...
1637
1638         * test/python/test-client.py: Add tests for instance caching of buses
1639         and bus name objects.
1640
1641 2005-11-04  Robert McQueen  <robot101@debian.org>
1642
1643         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
1644         marshalling of boolean values. Add some booleans to the values in
1645         the test client.
1646
1647         * python/decorators.py, python/service.py: Add an 'async_callbacks'
1648         argument to the dbus.service.method decorator, which allows you to
1649         name arguments to take two callback functions for replying with
1650         return values or an exception.
1651
1652         * test/python/test-client.py, test/python/test-service.py: Add test
1653         case using asynchronous method reply functions, both return values and
1654         errors, and from within both the function itself and from a mainloop
1655         callback.
1656
1657         * python/decorators.py, python/service.py: Perform checking that the
1658         number of method/signal arguments matches the number of types in the
1659         signature at class loading time, not when you first introspect the
1660         class.
1661
1662         * python/service.py: Remove debug print left by the last commit.
1663
1664 2005-11-03  Robert McQueen  <robot101@debian.org>
1665
1666         * python/service.py: Heavy refactoring of method invocation, with
1667         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
1668         in favour of a new _message_cb that uses seperate functions for
1669         looking up the method to call, marshalling the return values, and
1670         sending exceptions as errors, and is easier to follow as a
1671         consequence.  Fixes some corner cases about returning things that
1672         don't match your declared out_signature, allows exceptions to define
1673         _dbus_error_name and have it be sent over the bus as the error name,
1674         and paves the way for cool stuff like heeding the message no reply
1675         flag, asynchronous method implementations, informing the method of the
1676         sender, and including backtraces in the error messages.
1677
1678         * test/python/test-client.py: Catch and print exceptions thrown in the
1679         async callback tests, rather than passing them to the low-level
1680         bindings to be ignored in a noisy and frustrating manner.
1681
1682 2005-11-03  Robert McQueen  <robot101@debian.org>
1683
1684         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
1685         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
1686         tweak others to be consistent.
1687
1688         * test/python/test-client.py: Tweak output of testInheritance.
1689
1690 2005-10-29  Robert McQueen  <robot101@debian.org>
1691
1692         * python/service.py: Major changes to allow multiple inheritance
1693         from classes that define D-Bus interfaces:
1694         
1695          1. Create a new Interface class which is the parent class of
1696             Object, and make the ObjectType metaclass into InterfaceType.
1697         
1698          2. Patch written with Rob Taylor to replace use of method_vtable
1699             with code that walks the class's __MRO__ (method resolution order)
1700             to behave like Python does when invoking methods and allow
1701             overriding as you'd expect. Code is quite tricky because
1702             we have to find two methods, the one to invoke which has the
1703             right name and isn't decorated with the /wrong/ interface,
1704             and the one to pick up the signatures from which is decorated
1705             with the right interface.
1706         
1707             The same caveats apply as to normal multiple inheritance -
1708             this has undefined behaviour if you try and inherit from two
1709             classes that define a method with the same name but are
1710             decorated with different interfaces. You should decorate
1711             your overriding method with the interface you want.
1712         
1713          3. Replace grungy introspection XML generation code in the metaclass
1714             with dictionaries that cope correctly with multiple inheritance
1715             and the overriding of methods. This also uses the signature
1716             decorations to provide correct introspection data, including
1717             the debut appearance of the types of your return values. :D
1718
1719         * test/python/test-client.py, test/python/test-service.py: Add a test
1720         case to try invoking an method that overrides one inherited from a
1721         D-Bus interface class.
1722
1723 2005-10-29  Robert McQueen  <robot101@debian.org>
1724
1725         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
1726         Add checking for the end of struct character when marshalling a
1727         struct in MessageIter.append_strict.
1728
1729         * python/examples/example-service.py,
1730         python/examples/gconf-proxy-service.py,
1731         python/examples/gconf-proxy-service2.py: Update to use gobject
1732         mainloop directly rather than appearing to depend on gtk.
1733
1734         * python/test/test-client.py, python/test/test-server.py: Remove
1735         obsolete and broken test scripts for old bindings. We have up to date
1736         and working tests in test/python/.
1737
1738 2005-10-29  Robert McQueen  <robot101@debian.org>
1739
1740         * python/decorators.py: Add optional arguments to the method and
1741         signal decorators to allow you to specify the signature of arguments
1742         and return values. Preserve the doc strings of signal functions in the
1743         decorated version, for pydoc and friends.
1744
1745         * python/dbus_bindings.pyx, python/proxies.py: Replace the
1746         parse_signature_block function with an iterable dbus.Signature()
1747         type. Fix a bug in MessageIter.append_strict where you could append
1748         anything by claiming it was a string.
1749
1750         * python/service.py: Use the out_signature decoration on methods to
1751         marshal return values, meaning you no longer require dbus.Array()
1752         or dbus.Dictionary() to indicate the type when returning empty
1753         arrays or dictionaries. Fix a bug where exceptions which are defined
1754         in __main__ are not turned into error replies.
1755
1756         * test/python/test-client.py, test/python/test-service.py: Add test
1757         for correct marshalling of return values according to out_signature.
1758         Fix a bug in the async call test where the error_handler is missing a
1759         self argument.
1760
1761 2005-10-29  Robert McQueen  <robot101@debian.org>
1762
1763         * glib/Makefile.am, glib/examples/Makefile.am,
1764         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
1765         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
1766
1767         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
1768
1769         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
1770         from Ubuntu by Daniel Silverstone to allow specifying match rules on
1771         the command line.
1772
1773 2005-10-27  Ross Burton  <ross@openedhand.com>
1774
1775         * dbus/dbus-marshal-header.c:
1776         Remove dead code.
1777
1778         * glib/dbus-gobject.c:
1779         Stop compiler warning.
1780
1781 2005-10-25  Ross Burton  <ross@openedhand.com>
1782
1783         * dbus/dbus-auth.c:
1784         * dbus/dbus-server-unix.c:
1785         * dbus/dbus-transport-unix.c:
1786         * glib/dbus-gmain.c:
1787         * glib/dbus-gobject.c:
1788         Add some const keywords.
1789
1790 2005-10-25  Ross Burton  <ross@openedhand.com>
1791
1792         * doc/dbus-specification.xml:
1793         Document the NoReply annotation.
1794
1795         * glib/dbus-binding-tool-glib.h:
1796         * glib/dbus-binding-tool-glib.c:
1797         Respect the NoReply annotation.
1798
1799 2005-10-24  Robert McQueen <robot101@debian.org>
1800
1801         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
1802         derive from unicode instead of str, and encode/decode UTF-8 when
1803         marshalling/unmarshalling bus messages
1804
1805         * python/introspect_parser.py: encode introspection data as UTF-8
1806         before passing the buffer into libxml2
1807
1808         * test/python/test-client.py: add unicode test strings
1809
1810         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
1811         ignore generated python test files
1812
1813 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
1814
1815         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
1816         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
1817         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
1818
1819         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
1820         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
1821         when constructing struct signatures
1822
1823         * python/_dbus.py (Bus): handle private connections using the
1824         private keyword in the constructor. defaults to private=False
1825         (Bus::close): new method to close a connection to the bus
1826
1827         * python/dbus_bindings.pyx (Connection::close): renamed method
1828         was previously called disconnect
1829         (bus_get): now supports getting a private connection
1830
1831         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
1832         keyword is set to True.  if it is, execute the method without waiting
1833         for a reply
1834         (ProxyObject::_introspect_execute_queue): new method for executing
1835         all the pending methods that were waiting for the introspect to
1836         finish.  this is called when introspect either succeeds or fails
1837         (ProxyObject::_introspect_error_handler): call queued methods
1838
1839 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
1840
1841         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
1842         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
1843
1844         * python/service.py (Object::_message_cb): handle exceptions correctly
1845         by sending them over the wire to the calling app.  This makes sure
1846         the client returns immediately instead of waiting the 15 seconds to
1847         timeout.
1848
1849         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
1850         Add a test to benchmark how long it takes to introspect a service and 
1851         call a method which returns a large element (pretty fast)
1852
1853         * test/python/test-service.py (TestObject::GetComplexArray): new test 
1854         method which pushes a lot of data
1855
1856 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1857
1858         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
1859         reclaim memory outside of the loop and use del istead of just setting
1860         the key to None
1861
1862 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1863
1864         * python/service.py (ObjectType::_reflect_on_signal): Always close
1865         signal tag even when there are no arguments
1866
1867 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
1868
1869         * configure.in: Set mono, mono-docs and Qt3 to default
1870         to no instead of auto when building.  These bindings do not
1871         have full time maintainers and will not be supported for the
1872         1.0 release.
1873
1874 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
1875
1876         patches from Michael Krivoruchko <misha at sun.com>: 
1877         
1878         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
1879         _dbus_connection_message_sent, 
1880         _dbus_connection_send_preallocated_unlocked_no_update, 
1881         _dbus_connection_pop_message_link_unlocked): handle the case when path 
1882         is NULL when calling _dbus_verbose
1883
1884         * configure.in: check for functions getpeerucred and getpeereid
1885
1886         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
1887         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
1888         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
1889         Patch was only tested on Solaris 10 x86 so it might be issues
1890         with other platforms (i.e. BSDs and MacOSX)
1891         
1892
1893 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
1894
1895         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
1896         instead of marshal basic so we can handle recursive types in a variant
1897
1898         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
1899         in variants
1900
1901         * test/glib/test-service-glib.c, test-service-glib.xml
1902         (my_object_echo_variant [EchoVariant], 
1903         my_object_process_variant_of_array_of_ints123
1904         [ProcessVariantOfArrayOfInts123]): 
1905         Add two test methods
1906
1907         * python/introspect_parser.py: New module for parsing introspect
1908         data.
1909
1910         * python/dbus_bindings.pyx:
1911         (various places): when throwing errors fix to use errormsg instead 
1912         of message local variable because Pyrex can get confused with other 
1913         message variables (initial patch by Robert McQueen 
1914         <robert.mcqueen at collabora.co.uk>)
1915         (MessageIter::parse_signature_block): new method for getting the next
1916         block in a signiture.
1917         (MessageIter::append_strict): new method for appending values strictly
1918         using the passed in signature instead of guessing at the type
1919         (MessageItter:: append_dict, append_struct, append_array): use 
1920         signatures to marshal children if the signature is available
1921         
1922         * python/exceptions.py (IntrospectionParserException): new exception
1923
1924         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
1925         introspected signatures if available, else we fall back to the
1926         old way of doing things.
1927         (ProxyObject::_introspect_reply_handler ): parse introspection data
1928         
1929         * python/service.py (ObjectType::_reflect_on_method): Properly
1930         terminate <method> if there are no args in the reflection data
1931
1932         * test/python/test-client.py: add tests for talking with the GLib
1933         test server.  This gives us better coverage for introspection since
1934         python to python will always generate arguments as variants.  It also
1935         allows us to test the robustness of the GLib bindings and interlanguage
1936         communications.
1937
1938         
1939 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
1940
1941         * bus/driver.c (bus_driver_handle_introspect): Add signals
1942         to the introspect data. (patch from Daniel P. Berrange 
1943         <dan at berrange.com>)
1944
1945         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
1946         
1947         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
1948         _dbus_connection_run_builtin_filters): Changed these to
1949         be unlock_no_update functions and call 
1950         _dbus_connection_send_unlocked_no_update instead of
1951         dbus_connection_send to avoid locking errors.
1952         
1953         * doc/TODO: Removed the make Ping test TODO
1954         
1955 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1956
1957         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
1958         We now copy the message from a DBusError and then free 
1959         the error object befor throwing the error
1960
1961         * glib/dbus-glib-tool.c: removed extra comma at the end of the
1962         DBusBindingOutputMode enum which was causing a warning.
1963         #include <time.h> so using time_t is explicitly defined
1964
1965 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
1966
1967         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
1968         - dbus/dbus-bus.c
1969         (internal_bus_get): new method that take over the heavy lifting
1970         of dbus_bus_get and adds the ability to get a private connection
1971         to the bus
1972         (dbus_bus_get): wrapper to internal_bus_get that provides the same
1973         interface as in previous versions
1974         (dbus_bus_get_private): new method that is a wrapper to 
1975         internal_bus_get to get a private connection to the bus
1976
1977         - dbus/dbus-bus.h
1978         (dbus_bus_get_private): add as a public libdbus interface
1979
1980         - dbus-1.pc.in: output system_bus_default_address and 
1981         sysconfdir variables so apps can use them when compiling
1982
1983 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
1984         * dbus/qt: New Qt bindings
1985
1986 2005-09-12  Waldo Bastian  <bastian@kde.org>
1987
1988         * dbus/dbus-marshal-validate.c,
1989         doc/dbus-specification.xml, test/Makefile.am,
1990         test/test-names.c: allow hyphens in bus names.
1991
1992 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1993
1994         * test/data/auth/fallback.auth-script: we don't
1995         retry the EXTERNAL method when we know its going
1996         to fail anymore.
1997
1998 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
1999
2000         * dbus/dbus-connection-internal.h: rename
2001         (add|remove|toggle)_(watch|timeout) to unlocked()
2002         
2003         * dbus/dbus-connection.c: ditto.
2004         
2005         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2006         Update some callers for the renaming.
2007
2008 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2009
2010         * dbus/dbus-auth.c: (record_mechanisms): don't
2011         retry the first auth mechanism because we know
2012         we're just going to get rejected again.
2013         
2014         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2015         Fix thinko ... and what a nasty little bugger to
2016         track down you were ...
2017
2018         * dbus/dbus-connection.c:
2019         (_dbus_connection_add_watch),
2020         (_dbus_connection_remove_watch): add note about
2021         these needing the connection to be locked.
2022         (_dbus_connection_get_dispatch_status_unlocked):
2023         set status to DATA_REMAINS when we queue the
2024         disconnected message.
2025         
2026         * bus/dispatch.c:
2027         (bus_dispatch): fix warning.
2028         (check_existent_service_no_auto_start):
2029         Expect ChildSignaled error too.
2030         (check_existent_hello_from_self): fix another
2031         couple of warnings.
2032         
2033 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2034
2035         Patches from James Willcox <snorp@snorp.net>
2036
2037         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2038
2039         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2040         support array "out" parameters.
2041
2042         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2043         for 16-bit int support.
2044
2045 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2046
2047         * Released 0.50
2048
2049         * Patch from Steve Grubb:
2050         - bus/activation.c (bus_activation_service_reload_test): clean up
2051         some indentation
2052         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2053         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2054         buffer overflows in the test suite.  This is non critical because
2055         it can not be exploited and this code is only run when doing a 
2056         make check.
2057
2058         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2059         - configure.in: Don't check and link against kdecore, only qt headers
2060         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2061         - gcj/org/freedesktop/dbus/Makefile.am:
2062         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2063         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2064         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2065         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2066         - tools/Makefile.am: Add platform extentions to binaries 
2067         (i.e. .exe on windows)
2068
2069         * configure.in: 
2070         - Make it so if no suitable version of python is found we only 
2071         disable building python instead of exiting the configure script
2072         - Require version 2.4 of glib for glib bindings
2073         - Up version to 0.50
2074
2075         * python/__init__.py: Sync version with libdbus to (0,50,0)
2076         
2077 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2078
2079         * dbus/dbus-object-tree.c (find_subtree_recurse):
2080         a couple of optimizations (bug #710):
2081         - do a binary search in the tree
2082         - insert a new child at the right place directly, no need for
2083           qsort anymore
2084         - do the "double alloc" thing when allocating children
2085
2086 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
2087
2088         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
2089
2090         * python/dbus_bindings.pyx: Memory management foo
2091         (global): remove hacky _user_data_references global list
2092         (GIL_safe_cunregister_function_handler): userdata now stuffed into
2093         tuples. Unref user_data
2094         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
2095         (Connection::__del__): Remove and replace with __dealloc__ method
2096         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
2097         to keep tuple from being deallocated instead of the global var hack
2098         (Connection::register_object_path): Stuff user_data into a tuple.
2099         Use Py_INCREF to keep tuple from being deallocated instead of the 
2100         global var hack
2101         (Connection::register_fallback): Stuff user_data into a tuple.
2102         Use Py_INCREF to keep tuple from being deallocated instead of the 
2103         global var hack
2104         (GIL_safe_pending_call_notification): Don't unref the message
2105         because it gets unreffed when going out of scope.  Py_XDECREF
2106         the user_data
2107         (PendingCall::__del__): Remove and replace with __dealloc__ method
2108         (PendingCall::set_notify): ref the pending call because we will
2109         need it to stick around for when the notify callback gets called
2110         (Message::__del__): Remove and replace with __dealloc__ method
2111
2112         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
2113         gthreads_init to match up with the dbus call
2114
2115         * python/glib.py (init_threads): Changed to threads_init to match
2116         up with gobject.threads_init().  init_threads is kept for backwards
2117         compat but will most likely be deprecated in the future
2118
2119         * test/python/test-client.py: 
2120         - revamp to use Python's unittest functionality
2121         - add async call tests
2122         - setup threads in glib and dbus so we make sure locks are working
2123         
2124 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2125
2126         * python/dbus_bindings.pyx 
2127         (_pending_call_notification, cunregister_function_handler, 
2128         cmessage_function_handler): All callback functions have been rearranged 
2129         to workaround a bug in Pyrex when working with the GIL which is Python's 
2130         global lock when dealing with threads.  They have been split into
2131         a wrapper function (which assumes the name of the old function) and
2132         a _GIL_safe_<function name> function which contains the functionality
2133         of the old function.  This ensures that Pyrex does not write code
2134         the lock is released.
2135         
2136
2137 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
2138
2139         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
2140         GIL global lock when calling back into Python
2141
2142 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
2143
2144         * Release 0.36.2
2145
2146         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
2147
2148         * bus/policy.c (bus_policy_allow_user): change default "user is
2149         allowed" to be "user has same uid as the bus itself"; any
2150         allow/deny rules will override.
2151
2152         * bus/session.conf.in: don't allow all users, since now by default
2153         the user that ran the bus can connect.
2154
2155 2005-08-26  Colin Walters  <walters@verbum.org>
2156
2157         * tools/dbus-print-message.c (print_message): Flush stdout
2158         after printing a message, so that redirecting to a file, then
2159         hitting Ctrl-C works.
2160
2161 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
2162
2163         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
2164         (EmptyMessage): new class that subclasses Message.  This is a workaround
2165         to a Pyrex bug that fails to call __del__ when the Message object goes out
2166         of scope.  For some reason subclassing Message fixes this bug
2167         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
2168         - s/Message(_create=0)/EmptyMessage everywhere else
2169         
2170         * test/python/test-{server|client}.py: add the python/.libs directory
2171         to the lookup path so dbus_bindings and dbus_glib_bindings don't
2172         get picked up from the system
2173
2174 2005-08-25  Colin Walters  <walters@verbum.org>
2175
2176         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
2177         to Ryan Lortie for the suggestion.
2178
2179 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2180
2181         * test/python: Add python regression test
2182
2183         * configure.in: Add test/python/Makefile
2184
2185         * test/Makefile.am: Add the python directory to SUBDIRS
2186
2187 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
2188
2189         * Release 0.36.1
2190
2191         * python/_dbus.py: 
2192         (Interface::connect_to_signal): propigate keywords for match on args
2193         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
2194
2195         * python/proxies.py (ProxyObject::connect_to_signal):
2196         propigate keywords for match on args
2197
2198         * Makefile.am: point everything to pyexecdir since python borks
2199         on multilib
2200
2201 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2202
2203         * Release 0.36
2204
2205 2005-08-23  Colin Walters  <walters@verbum.org>
2206
2207         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
2208
2209 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
2210
2211         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
2212         to fix some wranings. We now use dbus_bindings.DBusConnection instead
2213         of defining DBusConnection ourselves.
2214
2215 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
2216
2217         * python/dbus.pth: New path file to fix up problems when installing
2218         c libraries to lib64 and python files to lib.
2219
2220         * python/Makefile.am: install dbus.pth in the correct spot
2221
2222 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
2223         * ChangeLog: clean up my last entry a bit
2224
2225         * doc/introspect.xsl: New stylesheet for converting introspection data
2226         into browser renderable xhtml. Contributed by Lennart Poettering.
2227
2228         * doc/introspect.dtd: Fixups in the introspect format from Lennart
2229         Poettering.
2230
2231         * doc/dbus-tutorial.xml: 
2232         - Add Colin Walter to the Authors section for authoring the GLib
2233         section
2234         - Add descriptions of the new signature and type functionality
2235         in the Python complex type mapping section
2236         - Add a sidenote on the new args matching functionality in 
2237         the Python bindings
2238         - Fixed up some of the examples to use the gobject.MainLoop
2239         instead of gtk.main
2240         
2241         * python/_dbus.py:
2242         (Bus::_create_args_dict): New. Converts a hash of arg matches
2243         to a more useable format
2244         (Bus::add_signal_receiver): add a **keywords parameter for catching
2245         arg match parameters
2246         (Bus::remove_signal_receiver): add a **keywords parameter for catching
2247         arg match parameters
2248         
2249         * python/matchrules.py:
2250         (MatchTree::exec_matches): Check for arg matches
2251         (SignalMatchRule::add_args_match): New method
2252         (SignalMatchRule::execute): Added args_list parameter as an optimization
2253         so we don't have to marshal the args more than once
2254         (SignalMatchRule::match_args_from_list): New method that checks to see
2255         if the rule's arg matches match an argument list.  Only arguments
2256         set in the rule are checked.
2257         (SignalMatchRule::match_args_from_rule): New method that checks to see
2258         if the rule's arg matches match another rule's.  All args have to match
2259         in order for this method to return true.  If either rule has more args
2260         then it is not a match.
2261         (SignalMatchRule::is_match): Add args match
2262         (SignalMatchRule::repr): Add args to the final output if they exist
2263
2264 2005-08-17  Ross Burton  <ross@burtonini.com>
2265
2266         * glib/dbus-gproxy.c:
2267         (dbus_g_proxy_call_no_reply): unref the message once sent.
2268         (dbus_g_proxy_call): protect against NULL proxy.
2269
2270 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
2271
2272         * python/__init__.py: Version updated (0, 43, 0)
2273         
2274         * python/dbus_bindings.pyx: 
2275         - Fixed type objects to have self passed into __init__
2276         - Added the Variant type
2277         - Add the ability to specify types or signatures for Array, Variant 
2278         and Dictionary
2279         (Connection::send_with_reply_handlers): return a PendingCall object
2280         (_pending_call_notification): handle the case when an error is returned 
2281         without an error message in the body
2282         (MessageIter::get_boolean): return True or False instead of an integer
2283         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
2284         and add checks for objects with embeded signatures or types (Array, 
2285         Variant and Dictionary)
2286         (MessageIter::append_byte): handle case when the value is a dbus.Byte
2287         (MessageIter::append_dict): handle embeded types or signatures
2288         (MessageIter::append_array): handle embeded types or signatures
2289         (MessageIter::append_variant): new method
2290         
2291         * python/proxies.py:
2292         (DeferedMethod): New. Dummy executable object used when queuing calls 
2293         blocking on introspection data
2294         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
2295         or shorter timeouts for method calls
2296         (ProxyObject): Add first pass at an introspection state machine
2297         (ProxyObject::__init__): Add introspect keyword for turing off an on 
2298         introspection. 
2299         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
2300         the usual mechanisms for sending messages.  This is to avoid a deadlock
2301         where the Intospect call would be queued waiting for the Introspect 
2302         call to finish ;-)
2303         (ProxyObject::_introspect_reply_handler): New.  This method is called 
2304         when introspection returns with no error
2305         (ProxyObject::_introspect_error_handler): New.  This method is called 
2306         when introspection encounters an error
2307         (ProxyObject::__getattr__): Code to handle different introspection 
2308         states.  Queue async calls or block blocking calls if we are 
2309         introspecting.  Pass through as normal if we are not or are done with 
2310         introspecting.
2311         
2312         * python/service.py: Import signal and method from decorators.py
2313
2314         * python/types.py: Add Variant type
2315
2316 2005-08-16  Colin Walters  <walters@verbum.org>
2317
2318         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
2319         DBusError message is NULL.
2320
2321 2005-08-09  Havoc Pennington  <hp@redhat.com>
2322
2323         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
2324         malloc'd copy of the name parameter
2325
2326 2005-08-09  Havoc Pennington  <hp@redhat.com>
2327
2328         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
2329         warning if the reply serial is set to 0
2330
2331 2005-08-04  Colin Walters  <walters@verbum.org>
2332
2333         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
2334         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
2335         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
2336         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
2337         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
2338         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
2339         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
2340         * glib/dbus-gvalue.h (dbus_g_value_types_init)
2341         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
2342         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
2343         
2344         Prefix name with _ to ensure they're not exported.  All callers
2345         updated.
2346
2347         * glib/dbus-gvalue.c (typecode_to_gtype)
2348         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
2349         (signature_iter_to_g_type_dict)
2350         (signature_iter_to_g_type_array)
2351         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
2352         (dbus_gtypes_from_arg_signature):
2353         Move to dbus-gsignature.c.
2354
2355         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
2356         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
2357         (dbus_binding_tool_output_glib_client): Ditto.
2358
2359         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
2360         and dbus-gsignature.h
2361
2362         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
2363         unused variable.
2364
2365 2005-08-03  Colin Walters  <walters@verbum.org>
2366
2367         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
2368         catch any incompatible changes accidentally made.
2369
2370 2005-08-03  Havoc Pennington  <hp@redhat.com>
2371
2372         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
2373         typo, from Julien Puydt
2374
2375         * bus/connection.c (bus_connection_disconnected): we were always
2376         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
2377
2378 2005-08-01  Colin Walters  <walters@verbum.org>
2379
2380         Patch from Joe Markus Clarke:   
2381         
2382         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
2383         use-after-free.
2384
2385 2005-08-01  Colin Walters  <walters@verbum.org>
2386         
2387         Patch from Joe Markus Clarke:   
2388         
2389         * tools/dbus-send.c (main): 
2390         
2391         Don't use C99 style initializers (bug #3933).
2392         
2393 2005-08-01  Colin Walters  <walters@verbum.org>
2394
2395         Patch from Joe Markus Clarke:   
2396
2397         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
2398         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
2399         * glib/dbus-gobject.c (write_interface):
2400
2401         Don't use C99 style initializers (bug #3933).
2402
2403 2005-07-31  Havoc Pennington  <hp@redhat.com>
2404
2405         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
2406         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
2407
2408 2005-07-30  Havoc Pennington  <hp@redhat.com>
2409
2410         * fix a bunch of Doxygen warnings and mistakes
2411
2412 2005-07-30  Havoc Pennington  <hp@redhat.com>
2413
2414         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
2415         DBUS_BUILD_TESTS since it's now used in production code
2416
2417 2005-07-29  Havoc Pennington  <hp@redhat.com>
2418
2419         * test/glib/test-profile.c (write_junk): initialize the junk
2420         buffer so valgrind doesn't have a breakdown
2421
2422 2005-07-29  Havoc Pennington  <hp@redhat.com>
2423
2424         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
2425         (match_rule_matches): remove unused arg
2426         (test_matching): add tests for match_rule_matches()
2427
2428         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
2429         do arg0='foo' arg5='bar' in the match rules
2430         (match_rule_matches): don't match if the arg0='foo' doesn't match.
2431
2432         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
2433
2434 2005-07-29  Ross Burton  <ross@openedhand.com>
2435
2436         * dbus/dbus-connection.c:
2437         Don't create a DBusCondVar which is never used.
2438
2439 2005-07-27  Ross Burton  <ross@openedhand.com>
2440
2441         * dbus/dbus-message.c:
2442         Reduce the size of the maximum cached message to 10K.
2443
2444 2005-07-25  Ross Burton  <ross@openedhand.com>
2445
2446         * glib/dbus-gproxy.c:
2447         Remove matches when all proxies are unregistered.
2448
2449 2005-07-24  Colin Walters  <walters@verbum.org>
2450
2451         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
2452         typedata; recursive arrays won't have it.
2453
2454         * test/glib/test-dbus-glib.c:
2455         * test/glib/test-service-glib.c:
2456         * test/glib/test-service-glib.xml: Add recursive arrays tests.
2457         
2458 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
2459
2460         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
2461         proxies.py, service.py: Cleanup of code after running it through the
2462         pyflakes code checker mostly dealing with undefined names.  
2463         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
2464
2465 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2466
2467         * NEWS: Update to 0.35.2
2468
2469 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
2470
2471         * python/_dbus.py: Remove import of the dbus.services
2472         module as it no longer exists (patch from Dimitur Kirov)
2473
2474         * python/service.py (Object::__init__): Fixed typo
2475         s/name/bus_name (patch from Dimitur Kirov)
2476
2477         * python/examples/example-signal-emitter.py: import dbus.glib
2478         to get the main loop and use glib mainloop instead of gtk so
2479         X doesn't have to be running.
2480
2481         * python/examples/example-signal-recipient.py: import dbus.glib
2482         to get the main loop and use glib mainloop instead of gtk so
2483         X doesn't have to be running. Import the decorators module
2484         directly.
2485
2486         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
2487         didn't pick up on but are needed to build
2488
2489         * configure.in: upped version to 0.35.2
2490
2491         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
2492         added Colin Walters' SELinux API rename patch from head 
2493         s/unix sercurity context/selinux security context/
2494
2495 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
2496
2497         * python/Makefile.am: dbus_binding.pxd.in should be included 
2498         in EXTRA_DIST not dbus_binding.pxd
2499         fix up $(srcdir) hopefully for the last time
2500
2501         * NEWS: Update to 0.35.1
2502
2503 2005-07-16  Colin Walters  <walters@verbum.org>
2504
2505         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
2506         from bus_driver_handle_get_connection_unix_security_context.  Update for
2507         error usage.
2508         (message_handlers): Update for renames.
2509
2510         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
2511         _dbus_string_init failure correctly.
2512         (bus_selinux_append_context): Convert SID to context.  Append it
2513         as a byte array.
2514         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
2515         hasn't been called.
2516
2517         * bus/selinux.h: Update prototype.
2518
2519         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
2520         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
2521
2522 2005-07-15  Colin Walters  <walters@verbum.org>
2523
2524         * doc/TODO: Add note about convenience wrappers.
2525
2526 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2527
2528         * NEWS: Update to 0.35
2529
2530 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
2533         so distcheck doesn't fail
2534
2535         * glib/examples/Makefile.am: Add example-service.xml and 
2536         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
2537
2538         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
2539         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
2540
2541         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
2542         compiler looks in the right places during distcheck
2543
2544 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2545
2546         * glib/example/Makefile.am: Fix a typo which cause make distcheck
2547         to fail
2548
2549 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * python/examples/example-service.py,
2552         python/examples/example-signal-emitter.py: Fixed up examples
2553         for API changes
2554
2555 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2556
2557         * python/__init__.py: Upped to version (0,42,0) because of
2558         the API change
2559
2560 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2561
2562         * ChangeLog: fix date in last entry
2563
2564         * configure.in, bus/system.conf.in: add the ability to configure 
2565         the system bus user at compiletime with the --with-dbus-user flag
2566         (patch from Kristof Vansant)
2567
2568 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
2569
2570         * bus/dispatch.c, test/test-service.c: Add testcase
2571         for sending messages to oneself (TODO item).
2572
2573         * python/service.py (class Object): Swap ordering of bus_name 
2574         and object_path parameters to better support inheritance.
2575
2576         * doc/dbus-tutorial.xml: change Python docs to reflect change
2577         in parameter ordering and fix the inheritance section.
2578
2579         * doc/TODO: remove sending message to oneself TODO item
2580
2581 2005-07-15  Ross Burton  <ross@openedhand.com>
2582
2583         * glib/dbus-gproxy.c:
2584         Fix a leak when calling methods via the proxy.
2585
2586 2005-07-15  Colin Walters  <walters@verbum.org>
2587
2588         * bus/selinux.c (bus_selinux_append_context): Wrap in
2589         HAVE_SELINUX.
2590
2591 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2592
2593         * python/_dbus.py (Bus::remove_signal_receiver):
2594         don't add a callback to the match if none has been passed in
2595         
2596         * python/matchrules.py (SignalMatchTree::remove): if the rule
2597         being matched does not have a callback treat it as a wildcard
2598         fix matching logic
2599
2600         * doc/dbus-tutorial.xml: Add Python tutorial
2601
2602 2005-07-14  Colin Walters  <walters@verbum.org>
2603
2604         * bus/driver.c
2605         (bus_driver_handle_get_connection_unix_security_context): New function.
2606         (message_handlers): Add.
2607
2608         * bus/selinux.c (bus_selinux_append_context): New function; appends
2609         security context to message.
2610
2611         * bus/selinux.h: Prototype.
2612
2613         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
2614
2615 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
2616
2617         * bus/activation.c: clean up all tabs to be 8 spaces 
2618         (bus_activation_activate_service): make sure we clean up
2619         if activation fails
2620
2621         * bus/dispatch.c: clean up all tabs to be 8 spaces 
2622         (check_shell_fail_service_auto_start): New function
2623         tests to make sure we get fail properly when trying to auto start a service
2624         with a faulty command line
2625         (check_shell_service_success_auto_start): New function tests to make sure
2626         auto started services get the arguments on the command line
2627
2628         * test/test-shell-service.c: Added service for testing auto-starting with 
2629         command line arguments
2630
2631         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
2632         test/data/valid-service-files/debug-shell-echo-success.service.in:
2633         Added service files for testing auto-starting with command line arguments
2634
2635         * */.cvsignore: added a bunch of generated files to various .cvsignore files
2636
2637 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
2638
2639         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
2640         
2641         * dbus/Makefile.am: added new files to build.
2642
2643         * bus/activation.c (bus_activation_activate_service): support
2644         activation commands with parameters.
2645
2646         * test/shell-test.c: added test program for the shell parsing
2647         code.
2648
2649 2005-07-13  David Zeuthen  <davidz@redhat.com>
2650
2651         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
2652         64 bit signed and unsigned parameters
2653
2654 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
2655
2656         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
2657
2658         * python/service.py (class Name): renamed BusName to make it clearer
2659         what the object is for (a name on the bus)
2660
2661         * python/examples/example-service.py,
2662         python/examples/example-signal-emitter.py: change the Name object to
2663         BusName
2664
2665 2005-07-12  Colin Walters  <walters@verbum.org>
2666
2667         Patch from Jim Gettys <Jim.Gettys@hp.com>.
2668
2669         * tools/dbus-launch.c: Include sys/select.h.
2670
2671 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
2672         * python/dbus_bindings.pyx.in: removed
2673
2674         * python/dbus_bindings.pyx: Added.
2675         - Fixed some memleaks (patch from 
2676         Sean Meiners <sean.meiners@linspireinc.com>)
2677         - Broke out the #include "dbus_h_wrapper.h" and put it in its
2678         own pxd file (Pyrex definition)
2679         - Broke out glib dependancies into its own pyx module
2680         
2681         * python/dbus_bindings.pdx: Added.
2682         - Defines C class Connection for exporting to other modules
2683
2684         * python/dbus_glib_bindings.pyx: Added.
2685         - New module to handle lowlevel dbus-glib mainloop integration
2686
2687         * python/glib.py: Added.
2688         - Registers the glib mainloop when you import this module
2689
2690         * python/services.py: Removed (renamed to service.py)
2691         
2692         * python/service.py: Added.
2693         - (class Server): renamed Name
2694
2695         * python/__init__.py: Bump ro version (0,41,0)
2696         -don't import the decorators or service module
2697         by default.  These now reside in the dbus.service namespace
2698
2699         * python/_dbus.py (Bus::__init__): Add code run the main loop 
2700         setup function on creation 
2701
2702         * python/examples/example-service.py,
2703         python/examples/example-signal-emitter.py: update examples
2704
2705         * python/examples/gconf-proxy-service.py,
2706         python/examples/gconf-proxy-service2.py: TODO fix these up
2707
2708         * doc/TODO: Addition
2709         - Added a Python Bindings 1.0 section
2710         - added "Add match on args or match on details to match rules"
2711
2712
2713 2005-07-12  Colin Walters  <walters@verbum.org>
2714
2715         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
2716         (statemachine-glue.h): 
2717         * glib/examples/Makefile.am (example-service-glue.h) 
2718         (example-signal-emitter-glue.h): 
2719         * glib/Makefile.am (dbus-glib-error-switch.h): 
2720         Add libtool --mode=execute so we use the built library instead
2721         of any installed one.
2722
2723 2005-07-11  Colin Walters  <walters@verbum.org>
2724
2725         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
2726         (dbus_g_value_types_init): Remove assertion.
2727         (dbus_g_value_get_g_type, dbus_g_value_open)
2728         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
2729         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
2730         functions related to DBusGValue.  Now we marshal/demarshal
2731         structures as GValueArray.
2732         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
2733         structures.
2734         (signature_iter_to_g_type_array): Don't call
2735         signature_iter_to_g_type_struct.
2736         (signature_iter_to_g_type_struct): Delete.
2737         (dbus_gvalue_to_signature): Delete.
2738         (dbus_gvalue_to_signature): New function with same name as other
2739         one; we can convert structures to signatures.
2740         (demarshal_valuearray): New function.
2741         (get_type_demarshaller): Use it.
2742         (demarshal_recurse): Delete.
2743         (marshal_proxy): New function.
2744         (marshal_map): Warn if we can't determine signature from type.
2745         (marshal_collection_ptrarray): Ditto.
2746         (marshal_collection_array): Ditto.
2747         (get_type_marshaller): Use marshal_valuearray.
2748         (marshal_recurse): Delete.
2749         (_dbus_gvalue_test): Add some tests.
2750
2751         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
2752         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
2753         (dbus_g_value_open, dbus_g_value_iterator_get_value)
2754         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2755         (dbus_g_value_free): Remove prototypes.
2756
2757         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
2758         G_TYPE_VALUE_ARRAY.
2759
2760         * glib/examples/example-service.c:
2761         * glib/examples/example-client.c: Implement GetTuple.
2762
2763         * test/glib/test-dbus-glib.c:
2764         * test/glib/test-service-glib.c:
2765         * test/glib/test-service-glib.xml: Add structure tests.
2766
2767 2005-07-10  Colin Walters  <walters@verbum.org>
2768
2769         * doc/TODO: Knock off some GLib items with this patch.
2770
2771         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
2772         (_dbus_gvalue_signals_error): New functions.
2773
2774         * glib/dbus-gvalue-utils.h: Prototype them.
2775
2776         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
2777         and change to not output const/retval flags for input args.  All
2778         callers updated.
2779         (invoke_object_method): Refactor to handle return values.  Add
2780         some more comments in various places.  Remove debug g_print.
2781
2782         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
2783
2784         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
2785         Handle G_TYPE_NONE.
2786         (compute_gsignature): New function; refactored from code from
2787         compute_marshaller and compute_marshaller_name.  Enhance to
2788         handle return values and async ops more cleanly.  Update for
2789         async ops returning NONE instead of BOOLEAN.
2790         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
2791         and output appropriate string.
2792         (generate_glue): Handle return value annotation.  Also don't dump
2793         constness flag for input arguments.
2794
2795         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
2796         files shared between installed library and utilities.
2797         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
2798         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
2799         binding tool can access gtype utility functions.
2800
2801         * test/glib/test-service-glib.c: 
2802         * test/glib/test-service-glib.xml: 
2803         * test/glib/test-dbus-glib.c: Add some tests for return values.
2804
2805 2005-07-09  Colin Walters  <walters@verbum.org>
2806
2807         * glib/dbus-gparser.c (parse_annotation): Add annotations to
2808         argument if available, not method.
2809
2810         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
2811         (invoke_object_method): First, remove some redundant
2812         GValues (object_value, error_value) in favor of working on
2813         array directly.  Second, rework constness to be less buggy.
2814         Now we iterate directly over the argument metadata instead
2815         of parallel iterating over output signature and metadata.
2816
2817         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
2818
2819         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
2820         annotation on input args.
2821         
2822 2005-07-09  Colin Walters  <walters@verbum.org>
2823
2824         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
2825         Define.
2826
2827         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
2828         annotation.
2829
2830         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
2831         (method_dir_signature_from_object_info): Handle arg_iterate change.
2832         (write_interface): Ditto.
2833         (lookup_object_info): Don't barf if format_version is > 0.
2834         (invoke_object_method): Handle arg constness.
2835
2836         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
2837         (arg_info_new): Create.
2838         (arg_info_unref): Destroy.
2839         (arg_info_get_annotations, arg_info_get_annotation) 
2840         (arg_info_add_annotation): New functions.
2841
2842         * glib/dbus-gidl.h: Prototype them.
2843
2844         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
2845         args, disallow them in properties.
2846         (parse_annotation): Handle arg annotations.
2847
2848         * test/glib/test-service-glib.xml: 
2849         * test/glib/test-service-glib.c: Update to make some methods
2850         const.
2851
2852 2005-07-08  Colin Walters  <walters@verbum.org>
2853
2854         * test/glib/test-service-glib.xml: 
2855         * test/glib/test-service-glib.c:
2856         * test/glib/test-dbus-glib.c: Test a{sv}.
2857
2858         * glib/examples/statemachine/statemachine.c:
2859         * glib/examples/statemachine/statemachine-server.c:
2860         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
2861         add progress bar, etc.
2862
2863         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
2864         needed anymore due to generic array/map marshalling.
2865         (dbus_g_value_types_init): Don't register basic arrays or the
2866         string/string hash.
2867         (dbus_gtype_from_signature_iter): Don't try to recurse into
2868         variants.
2869         (dbus_gtype_to_signature): Check collection/map before type
2870         metadata.
2871         (demarshal_garray_basic): Renamed to demarshal_collection_array.
2872         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
2873         generic map creation/append functions instead of hash table
2874         specifically.
2875         (get_type_demarshaller): Handle maps.
2876         (demarshal_collection): Dispatch on collection type to either
2877         demarshal_collection_ptrarray or demarshal_collection_array.
2878         (get_type_marshaller): Handle maps.
2879         (marshal_collection): Dispatch collection type to either
2880         marshal_collection_ptrarray or marshal_collection_array.
2881         (_dbus_gvalue_test): New test.
2882
2883         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
2884         (hash_free_from_gtype): Use it to free GValues.
2885         (hashtable_append): New function.
2886         (ptrarray_append): Fix prototype.
2887         (slist_append): Ditto.
2888         (_dbus_gvalue_utils_test): Extend tests.
2889
2890         * glib/dbus-gtype-specialized.c
2891         (dbus_g_type_specialized_init_append): Renamed from
2892         dbus_g_type_specialized_collection_init_append.  Remove const from
2893         value, since we steal it.
2894         (dbus_g_type_specialized_map_append): New function.
2895
2896         * glib/dbus-gtype-specialized.h: Update prototypes.
2897         Add DBusGTypeSpecializedMapAppendFunc.
2898
2899         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
2900         _dbus_gvalue_test.
2901         
2902         * glib/dbus-gtest.h: Prototype it.
2903
2904 2005-07-08  Ross Burton  <ross@openedhand.com>
2905
2906         * dbus/dbus-glib.h:
2907         Add DBysGAsyncData for the async bindings.
2908
2909         * glib/dbus-binding-tool-glib.c:
2910         Re-enable the async bindings.
2911
2912         * test/glib/test-dbus-glib.c:
2913         Add a test for the generated async bindings.
2914
2915 2005-07-08  Colin Walters  <walters@verbum.org>
2916
2917         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
2918         connection concept.
2919         
2920 2005-07-08  Colin Walters  <walters@verbum.org>
2921         
2922         * tools/Makefile.am: Kill of print-introspect in favor of using
2923         dbus-send --print-reply=literal.
2924
2925         * test/glib/test-service-glib.xml: 
2926         * test/glib/test-service-glib.c (my_object_get_objs): New test
2927         for "ao".
2928
2929         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
2930         (main): Test GetObjs.
2931
2932         * glib/examples/statemachine/Makefile.am:
2933         * glib/examples/statemachine/sm-marshal.list:
2934         * glib/examples/statemachine/statemachine-client.c:
2935         * glib/examples/statemachine/statemachine-server.c:
2936         * glib/examples/statemachine/statemachine-server.xml:
2937         * glib/examples/statemachine/statemachine.c:
2938         * glib/examples/statemachine/statemachine.h:
2939         * glib/examples/statemachine/statemachine.xml:
2940
2941         New example.
2942
2943         * glib/examples/example-service.c (main): Move invocation
2944         of dbus_g_object_type_install_info earlier, to emphasize it
2945         should only be done once.
2946
2947         * glib/examples/example-signal-emitter.c (main): Ditto.
2948
2949         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
2950
2951         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
2952         (dbus_gvalue_marshal): Update prototypes.
2953
2954         * glib/dbus-gvalue.c: Update all marshalling functions to take
2955         const GValue instead of GValue.
2956         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
2957         types.
2958         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
2959         change.
2960         (dbus_gtype_to_signature): Handle generic collecitons and maps.
2961         Return a newly-allocated string.
2962         (demarshal_proxy, demarshal_object_path, demarshal_object)
2963         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
2964         we get the wrong types from message.
2965         (get_type_demarshaller): New function, extracted from
2966         dbus_gvalue_demarshal.
2967         (demarshal_collection): New function, demarshals generic
2968         collection.
2969         (dbus_gvalue_demarshal): Just invoke result of
2970         get_type_demarshaller.  Throw error if we don't have one.
2971         (marshal_garray_basic): Abort on OOM.
2972         (get_type_marshaller): New function, extracted from
2973         dbus_gvalue_marshal.
2974         (collection_marshal_iterator, marshal_collection): New functions;
2975         implements generic marshalling for an iteratable specialized
2976         collection.
2977         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
2978
2979         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
2980         G_TYPE_STRING.
2981         (ptrarray_value_from_gvalue): Ditto.
2982         (ptrarray_append, ptrarray_free): New functions.
2983         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
2984         (slist_append, slist_end_append, slist_free): New functions.
2985         (dbus_g_type_specialized_builtins_init): Add append fuctions
2986         for GPtrArray and GSList.  Register GSList.
2987         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
2988
2989         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
2990         New.
2991         (dbus_g_type_specialized_collection_init_append)
2992         (dbus_g_type_specialized_collection_append)
2993         (dbus_g_type_specialized_collection_end_append): Prototype.
2994         (DBusGTypeSpecializedCollectionVtable): Add append_func and
2995         end_append_func.
2996
2997         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
2998         (dbus_g_type_specialized_collection_append) 
2999         (dbus_g_type_specialized_collection_end_append): New functions.
3000         (dbus_g_type_map_value_iterate): Take const GValue.
3001         (dbus_g_type_collection_value_iterate): Ditto.
3002
3003         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3004         _dbus_gvalue_utils_test.
3005         
3006         * glib/dbus-gtest.h: Prototype it.
3007
3008         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3009         using uninitialized owner_list.
3010         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3011         public API.
3012         (dbus_g_proxy_end_call_internal): Update to use error set
3013         from dbus_gvalue_demarshal instead of setting it here.
3014         (dbus_g_proxy_begin_call): Move return_if_fail here.
3015
3016         * glib/dbus-gobject.c (write_interface): Update for
3017         dbus_gtype_to_signature returning new string.
3018
3019         * configure.in: Add glib/examples/statemachine.
3020
3021 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3022
3023         * configure.in: Add a configure option, --with-console-auth-dir
3024         
3025         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3026         new setting.  Patch from Kay Sievers.
3027
3028 2005-07-06  Colin Walters  <walters@verbum.org>
3029
3030         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3031         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3032         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3033         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3034         Delete in favor of dbus_g_proxy_begin_call and
3035         dbus_g_proxy_cancel_call.
3036         (DBusGProxyCall, DBusGProxyCallNotify): New.
3037         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3038         data, and destroy function.  This replaces
3039         dbus_g_pending_call_set_notify.
3040         (dbus_g_proxy_cancel_call): Prototype.
3041         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3042
3043         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3044         pending_calls map.
3045         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3046         internal proxy for calls to the bus. Remove
3047         pending_nameowner_calls, now the internal proxy keeps track.
3048         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3049         pending_nameowner_calls.
3050         (got_name_owner_cb): Update prototype, and use
3051         dbus_g_proxy_end_call.
3052         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3053         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3054         favor of using internal proxy.
3055         (dbus_g_proxy_manager_unregister): Update to use
3056         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3057         (dbus_g_proxy_init): Initialize pending calls map.
3058         (dbus_g_proxy_constructor): New.
3059         (dbus_g_proxy_class_init): Add get/set property functions,
3060         constructor, and add NAME, PATH, and INTERFACE properties.
3061         (cancel_pending_call): New function.
3062         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3063         cancel them.
3064         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3065         (GPendingNotifyClosure): New structure.
3066         (d_pending_call_notify, d_pending_call_free): Moved here from
3067         dbus-glib.c.
3068         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3069         ordering.
3070         (manager_begin_bus_call): New internal function for talking to
3071         internal bus proxy.
3072         (dbus_g_proxy_new): Construct object using GObjet properties.
3073         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3074         Create closure of same, and insert call into map of pending calls.
3075         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3076         call.  Look up pending call in current set.  Remove it when we've
3077         completed.
3078         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3079         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3080         and destroy function directly.
3081         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
3082         (dbus_g_proxy_call): Invoke with NULL callback.
3083         (dbus_g_proxy_cancel_call): New function, replaces
3084         dbus_g_pending_call_cancel.
3085
3086         * glib/dbus-gparser.c (validate_signature): Fix call to
3087         dbus_set_g_error.
3088
3089         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
3090         New quark for attaching metadata to GType.
3091         (info_hash): Delete.
3092         (lookup_object_info): Look up using quark.
3093         (dbus_g_object_type_install_info): Check that a type is classed,
3094         not that it's an object.  Also just install type data using quark
3095         instead of using global hash.
3096
3097         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
3098         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
3099         (GPendingNotifyClosure): Delete.
3100         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
3101         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
3102
3103         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
3104         client method generation until we can fix it...
3105         
3106         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
3107         (load_from_service_thread_func): Ditto.
3108
3109         * tools/dbus-names-model.c (struct NamesModel): Hold
3110         DBusGProxyCall.
3111         (have_names_notify): Update prototype, use
3112         dbus_g_proxy_cancel_call.
3113         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
3114
3115         * tools/dbus-monitor.c (filter_func): Update for print_message
3116         API change.
3117
3118         * test/glib/test-dbus-glib.c: Add more tests for async
3119         invocations.  Update many begin_call/end_call pairs to just use
3120         dbus_g_proxy_call.
3121
3122         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
3123         allows us to dump print-introspect.c.
3124
3125         * tools/dbus-print-message.h (print_message): Add literal argument
3126         to print_message which is intended to allow printing arguments without
3127         metadata like "string=".
3128
3129         * tools/dbus-print-message.c (print_iter): Add literal argument.
3130         (print_message): Allow printing string messages literally.
3131
3132 2005-07-05  Colin Walters  <walters@verbum.org>
3133
3134         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3135         Remove value refcount leak, original patch from Jorn Baayen
3136         <jorn@openedhand.com>.  Also remove useless extra value in favor
3137         of prepending to value array directly.
3138
3139 2005-07-02  Colin Walters  <walters@verbum.org>
3140
3141         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
3142
3143 2005-07-01  Colin Walters  <walters@verbum.org>
3144
3145         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3146         
3147         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
3148         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
3149         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
3150         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
3151
3152 2005-06-30  Colin Walters  <walters@verbum.org>
3153
3154         * test/glib/test-dbus-glib.c:
3155         * test/glib/test-service-glib.c:
3156         * test/glib/test-service-glib.xml: Update tests for new error
3157         setting bits, also add async tests (patch from Ross Burton).
3158
3159         * test/glib/Makefile.am (test_service_glib_LDADD): Add
3160         DBUS_GLIB_THREADS_LIBS.
3161
3162         * glib/dbus-gproxy.c (get_name_owner)
3163         (dbus_g_pending_call_end_valist): Ditto.
3164
3165         * glib/dbus-gobject.c (error_metadata): New mapping from GError
3166         domain (GQuark) to DBusGErrorInfo.  
3167         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
3168         quark in error_metadata.  Take message interface as default
3169         error message interface.
3170         (gerror_to_dbus_error_message): Pass message interface.
3171         (dbus_set_g_error): Resurrected.
3172         (dbus_g_error_info_free): New function.
3173         (dbus_g_object_type_install_info): Use g_type_class_ref instead
3174         of _peek to actually create the object class if it hasn't been
3175         created yet.
3176         (dbus_g_error_domain_register): New function.
3177
3178         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
3179
3180         * glib/dbus-gparser.c (validate_signature): Ditto.
3181
3182         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
3183         (dbus_g_error_domain_register): Prototype.
3184
3185         * glib/dbus-glib.c (dbus_g_error_set): Delete.
3186         Update tests.
3187
3188 2005-06-29  Colin Walters  <walters@verbum.org>
3189
3190         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
3191         DBUS_TYPE_G_OBJECT_PATH.
3192
3193         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
3194         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
3195         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
3196         (dbus_g_object_path_get_g_type): New function.
3197         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
3198         to DBUS_TYPE_G_OBJECT_PATH by default.
3199         (demarshal_proxy): Remove unused name variable.
3200         (demarshal_object_path, marshal_object_path): New functions.
3201         (demarshal_proxy_array, marshal_proxy_array): Delete.
3202         
3203         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
3204         DBUS_TYPE_G_OBJECT_PATH to char *.
3205         (dbus_g_type_get_lookup_function): Map builtin
3206         DBUS_TYPE_G_OBJECT_PATH.
3207
3208         * test/glib/test-dbus-glib.c
3209         * test/glib/test-service-glib.c (my_object_objpath): 
3210         Adapt tests to new object path marshalling.
3211
3212 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
3213
3214         * configure.in: force check for Python >= 2.4
3215
3216 2005-06-29  Colin Walters  <walters@verbum.org>
3217         
3218         Patch from Ross Burton <ross@openedhand.com>
3219         
3220         * glib/dbus-gobject.c (invoke_object_method): Unset object
3221         value in all cases, not only in async case.
3222
3223 2005-06-29  Colin Walters  <walters@verbum.org>
3224
3225         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
3226         name_call for keeping track of any outgoing GetNameOwner call.
3227         Also add for_owner and associated.
3228         (struct _DBusGProxyManager): Add owner_names, which is hash table
3229         that maps a base name to a list of names it owns (that we're
3230         interested in).  Add pending_nameowner_calls which is a list of
3231         all outstanding GetNameOwner; avoids us having to iterate over
3232         every proxy.  Add unassociated_proxies which keeps track of name
3233         proxies with no associated name owner.
3234         (dbus_g_proxy_manager_unref): Destroy owner_names.
3235         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
3236         name refcounts.
3237         (find_name_in_info, name_owner_foreach)
3238         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
3239         (dbus_g_proxy_manager_monitor_name_owner)
3240         (dbus_g_proxy_manager_unmonitor_name_owner)
3241         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
3242         New functions; they manipulate the owner_names mapping.
3243         (got_name_owner_cb): New function.
3244         (get_name_owner): New function, extracted from
3245         dbus_g_proxy_new_for_name_owner.
3246         (dbus_g_proxy_manager_register): For now we need to keep track of
3247         all NameOwnerChanged.  Also if the proxy is for a name, if we
3248         don't already know the name owner, queue a new GetNameOwner
3249         request and add it to our list of unassociated proxies.  Otherwise
3250         inc the refcount.
3251         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
3252         cancel any pending GetNameOwner call, etc.
3253         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
3254         the owner_names mapping to look up the current names for the
3255         signal source, and dispatch to any proxies for that name.
3256         (dbus_g_proxy_new): Initialize new members.
3257         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
3258         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
3259         (dbus_g_pending_call_end_valist): New function, extracted from
3260         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
3261         but want to use the GLib infrastructure.  Also note how many
3262         arguments in reply were over.
3263         (dbus_g_pending_call_end): New function, just call
3264         dbus_g_pending_call_end_valist.
3265         (dbus_g_proxy_end_call_internal): Just call
3266         dbus_g_pending_call_end_valist.
3267
3268         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
3269         of builtin marshaller for STRING_STRING_STRING.
3270
3271         * test/glib/test-dbus-glib.c: 
3272         * test/glib/test-service-glib.c:
3273         * test/glib/test-service-glib.xml:
3274         Extend tests to cover name proxies, destruction of owner proxies,
3275         etc.
3276         
3277         * glib/examples/example-signal-recipient.c
3278         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
3279         
3280         * tools/dbus-send.c (main): Print D-BUS error name in addition
3281         to message.
3282
3283 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
3284
3285         * python/dbus_bindings.pyx.in (cunregister_function_handler,
3286         cmessage_function_handler): Patch from 
3287         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
3288         by using the Py_GILState_Ensure/Release to synchronize with the
3289         python runtime.
3290         
3291 2005-06-28  Ray Strode  <rstrode@redhat.com>
3292
3293         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
3294         babysitter helper process on last unref, bug #2813.
3295
3296 2005-06-27  Colin Walters  <walters@verbum.org>
3297
3298         * test/glib/test-dbus-glib.c: 
3299         * test/glib/test-service-glib.c:
3300         * test/glib/test-service-glib.xml:
3301         Test hash table signal emitting.
3302
3303         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
3304         types to their fundamental basis types, since this is what
3305         marshallers operate on.  Also add an entry for VOID__BOXED.
3306         (dbus_g_object_register_marshaller_array): Convert to fundamental.
3307
3308 2005-06-26  Havoc Pennington  <hp@redhat.com>
3309
3310         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
3311         from Don Park
3312
3313 2005-06-26  Colin Walters  <walters@verbum.org>
3314
3315         * glib/dbus-glib.c (dbus_set_g_error): Delete.
3316         (dbus_g_error_set): New public function from its ashes; used by
3317         both service-side method implementation and GLib bindings
3318         internals.
3319         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
3320         (_dbus_glib_test): Add some tests.
3321
3322         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
3323
3324         * test/glib/test-service-glib.c (my_object_throw_error): Use
3325         dbus_g_error_set.
3326
3327         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
3328         errors thrown by dbus_g_error_set.
3329
3330         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
3331
3332         * glib/dbus-gparser.c (validate_signature): Ditto.
3333
3334         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
3335         (dbus_g_proxy_end_call_internal): Ditto.
3336
3337         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
3338         converts DBUS_ERROR_x to DBUS_GERROR_x.
3339         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
3340
3341         * doc/TODO: Remove error TODO.
3342
3343         * doc/dbus-tutorial.xml: Update with documentation about error
3344         handling.
3345
3346         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
3347         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
3348         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
3349
3350 2005-06-22  Colin Walters  <walters@verbum.org>
3351         
3352         Patch from Ross Burton <ross@openedhand.com>
3353
3354         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
3355
3356 2005-06-20  Colin Walters  <walters@verbum.org>
3357
3358         * configure.in: Add glib/examples.
3359
3360         * glib/Makefile.am: Add examples/
3361
3362         * glib/examples/.cvsignore
3363         * glib/examples/Makefile.am
3364         * glib/examples/example-client.c
3365         * glib/examples/example-service.c
3366         * glib/examples/example-service.xml
3367         * glib/examples/example-signal-emitter.c
3368         * glib/examples/example-signal-emitter.xml
3369         * glib/examples/example-signal-recipient.c:
3370         New files; GLib binding examples, ported from
3371         python/examples.
3372
3373 2005-06-20  Colin Walters  <walters@verbum.org>
3374
3375         * dbus/dbus-glib.h: 
3376         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
3377         dbus_g_proxy_call.
3378
3379         * glib/dbus-binding-tool-glib.c: 
3380         * doc/dbus-tutorial.xml: 
3381         * test/glib/test-dbus-glib.c: Update for rename.
3382         
3383 2005-06-20  Colin Walters  <walters@verbum.org>
3384
3385         Patch suggested by Ross Burton <ross@openedhand.com>
3386
3387         * glib/dbus-gobject.c (export_signals): Free signal name.
3388         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
3389         memory leak.  Add a bit of documentation.
3390         (dbus_g_method_return_error): Free context, and note we do
3391         so.
3392
3393 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
3394
3395         * dbus/dbus-glib.h:
3396         * glib/dbus-gobject.c:
3397         * glib/dbus-gproxy.c:
3398         * glib/dbus-gvalue.c: Predeclare structs as 
3399         typedef struct _Something Something instead of 
3400         typedef struct Something Something, so we can 
3401         redeclare the prototypes. Other GNOME libraries 
3402         do this already.
3403
3404 2005-06-17  Colin Walters  <walters@verbum.org>
3405
3406         * tools/dbus-names-model.c (have_names_notify): Fix call
3407         to dbus_g_proxy_end_call.
3408         
3409 2005-06-17  Colin Walters  <walters@verbum.org>
3410
3411         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
3412         spew warnings if we get malformed remote signals.
3413
3414         * glib/dbus-gobject.c (propsig_iterate): New function.
3415         (lookup_object_info): New function, extracted from
3416         lookup_object_and_method.
3417         (introspect_properties, introspect_signals): Delete; these
3418         are merged into write_interface.
3419         (write_interface): Write out signals and properties here;
3420         dump the org.gtk.object stuff and use the interface given
3421         in the introspection data blob.  Also fix up property XML.
3422         (lookup_values): New function.
3423         (introspect_interfaces): Gather a mapping from interface to a
3424         list of its methods, signals, and properties, then write out
3425         each interface.
3426         (lookup_object_and_method): Use lookup_object_info.
3427         (struct DBusGSignalClosure): Add interface.
3428         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
3429         we can just use the constant data.
3430         (dbus_g_signal_closure_finalize): Don't free signal name.
3431         (signal_emitter_marshaller): Use interface from signal closure.
3432         (export_signals): Only export signals mentioned in introspection
3433         blob.
3434         (dbus_g_connection_register_g_object): Warn if we have no
3435         introspection data for an object.
3436         (funcsig_equal): Remove unused variable.
3437         (dbus_g_object_register_marshaller): Take varargs instead of
3438         list.
3439         (dbus_g_object_register_marshaller_array): New function,
3440         extracted from old dbus_g_object_register_marshaller.
3441
3442         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
3443         signals and property data.
3444         (write_quoted_string): New function, extracted from generate_glue.
3445         (generate_glue): Write signals and properties to introspection
3446         blob.
3447
3448         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
3449         exported_signals and exported_properties.
3450         (dbus_g_object_register_marshaller): Update prototype.
3451         (dbus_g_object_register_marshaller_array): Prototype.
3452         
3453         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
3454
3455         * test/glib/test-service-glib.c: Add new test signals and method
3456         to emit them.
3457
3458         * test/glib/test-service-glib.xml: Add some test signals.
3459
3460         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
3461         and my-object-marshal.h
3462         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
3463         my-object-marshal.c.
3464         (my-object-marshal.c, my-object-marshal.h): Implement.
3465
3466         * test/glib/.cvsignore: Update.
3467
3468         * doc/TODO: Remove two GLib TODO items fixed by this
3469         patch.
3470
3471 2005-06-16  Colin Walters  <walters@verbum.org>
3472
3473         * doc/TODO: Update for GLib bindings.
3474         
3475 2005-06-16  Colin Walters  <walters@verbum.org>
3476
3477         * glib/dbus-binding-tool-glib.c:
3478         * glib/dbus-gobject.c:
3479         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
3480         from Ross Burton, for his GLib bindings work.
3481
3482 2005-06-16  Colin Walters  <walters@verbum.org>
3483
3484         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
3485         to iterate instead of walking to G_TYPE_INVALID.
3486
3487         Patch based on a patch from Ryan Gammon.
3488
3489 2005-06-16  Colin Walters  <walters@verbum.org>
3490
3491         * bus/bus.c (bus_context_new): Set parser to NULL
3492         after we unref it (Patch from Chris Boscolo, #2174).
3493         
3494 2005-06-16  Colin Walters  <walters@verbum.org>
3495
3496         * python/dbus_bindings.pyx.in: Import size_t,
3497         __int64_t, __uint64_t, and __signed.
3498
3499         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
3500         Define cmsg struct, output it.
3501         (_dbus_read_credentials_unix_socket):
3502         Use cmsg struct.
3503         
3504         Patch from Joe Markus Clarke for FreeBSD support.
3505         
3506 2005-06-16  Colin Walters  <walters@verbum.org>
3507
3508         * tools/dbus-send.c (append_array): Use strtok.
3509         (append_dict): New function.
3510         (type_from_name): New function, extracted from main.
3511         (main): Handle sending dicts.
3512
3513         * tools/dbus-print-message.c (print_iter): Print dict
3514         entries.
3515         
3516 2005-06-16  Colin Walters  <walters@verbum.org>
3517
3518         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
3519         values as the empty string (#2948).
3520         
3521 2005-06-16  Colin Walters  <walters@verbum.org>
3522
3523         * dbus/Makefile.am:
3524         * mono/doc/Makefile.am:
3525         * test/glib/Makefile.am:
3526
3527         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
3528
3529 2005-06-16  Colin Walters  <walters@verbum.org>
3530
3531         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
3532         header byte order from expected byte order (Patch from Chris Wilson, #3475).
3533
3534         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
3535         Increment pointer after swapping fixed array.  Add assertion
3536         for array length.
3537                 
3538 2005-06-15  Colin Walters  <walters@verbum.org>
3539
3540         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
3541         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
3542         
3543 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3544
3545         * NEWS: Update to 0.34
3546
3547 2005-06-15  David Zeuthen  <davidz@redhat.com>
3548
3549         * configure.in (LT_CURRENT): Revert back to 1 as the library
3550         hasn't changed and we've certainly not committed to protocol
3551         stability yet.  All this does is to break ABI. See commit note
3552         from hp@redhat.com 2005-05-05 for details.
3553         
3554 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3555
3556         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
3557         (_dbus_connection_run_builtin_filters): New method
3558         (dbus_connection_dispatch): Run the builtin filters which in turn
3559         runs the peer filter which handles Ping messages.
3560
3561         * doc/TODO: 
3562          - Ping isn't handled: This patch fixes it
3563          
3564          - Add a test case for the Ping message: added TODO item
3565
3566 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3567
3568         * dbus/dbus-message.c:
3569         (dbus_message_has_path): New method
3570         (dbus_message_has_interface): New method
3571         (dbus_message_has_member): New method
3572
3573         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
3574         New method
3575
3576         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
3577         the keyring directory is private to the user
3578
3579         * doc/TODO:
3580          - The convenience functions in dbus-bus.h should perhaps have
3581          the signatures that they would have if they were autogenerated
3582          stubs. e.g. the acquire service function. We should also evaluate
3583          which of these functions to include, in light of the fact that
3584          GLib/Qt native stubs will probably also exist.: Punted
3585
3586          - add dbus_message_has_path(), maybe has_member/interface:
3587          fixed in this patch
3588
3589          - in dbus-keyring.c, enforce that the keyring dir is not
3590          world readable/writable: Fixed in this patch
3591
3592 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
3593
3594         * dbus/dbus-marshal-validate.h: Added a new validation
3595         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
3596         out of memory errors when validating signitures
3597
3598         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
3599         in places where we previously used DBUS_VALID and a FALSE return 
3600         value to indicate OOM
3601         
3602         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
3603         Use a stack to track the number of elements inside containers.  The 
3604         stack values are then used to validate that dict entries have only two
3605         elements within them.
3606         (validate_body_helper): check the reason for failure when validating
3607         varients
3608         
3609         * dbus/dbus-message.c (load_message): use 
3610         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
3611         DBUS_VALID and a FALSE return value to indicate OOM
3612
3613         * doc/TODO: remove "- validate dict entry number of fields" as this
3614         patch fixes it
3615
3616 2005-06-14  David Zeuthen  <davidz@redhat.com>
3617
3618         * bus/bus.c (process_config_every_time): Drop existing conf-dir
3619         watches (if applicable) and add new watches
3620
3621         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
3622         (main): Setup SIGIO signal handler if using D_NOTIFY
3623
3624         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
3625
3626         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
3627         (merge_included): Also merge conf_dirs list
3628         (bus_config_parser_unref): Clear conf_dirs list
3629         (include_dir): Add directory to conf_dirs list
3630         (bus_config_parser_get_conf_dirs): New function
3631
3632         * bus/dir-watch.[ch]: New files
3633
3634         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
3635
3636         * configure.in: Add checks for D_NOTIFY on Linux
3637
3638 2005-06-14  Colin Walters  <walters@verbum.org>
3639
3640         * glib/dbus-binding-tool-glib.c:
3641         * glib/dbus-gobject.c:
3642         * glib/dbus-gvalue.c: Fix indentation and brace style.
3643         
3644 2005-06-14  Ross Burton <ross@openedhand.com>.
3645
3646         * glib/dbus-glib.h: Make DBusGMethodInvocation
3647         a private structure.  Rearrange prototypes a bit.
3648         
3649         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
3650         documentation for first_arg_type.
3651         
3652         * glib/dbus-gobject.c: Move DBusGMethodInvocation
3653         here, add documentation.  Move dbus_g_method_return
3654         and dbus_g_method_return_error into public API
3655         section.
3656
3657 2005-06-14  Colin Walters  <walters@verbum.org>
3658
3659         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
3660         Add missing return statements, noticed by Ross Burton.
3661         
3662 2005-06-13  Ross Burton <ross@openedhand.com>.
3663
3664         * glib/dbus-gobject.c: Handle errors on message
3665         demarshalling by sending error message back.
3666         * glib/dbus-gvalue.c: Initialize return variables.
3667
3668 2005-06-13  Colin Walters  <walters@verbum.org>
3669
3670         * glib/Makefile.am: Fix thinko in last patch.
3671
3672 2005-06-13  Colin Walters  <walters@verbum.org>
3673
3674         * glib/Makefile.am: Move dbus-gtype-specialized.c
3675         and dbus-gtype-specialized.h into a _HEADERS variable,
3676         install them.
3677
3678 2005-06-12  Colin Walters  <walters@verbum.org>
3679
3680         Async signals and various bugfixes and testing by
3681         Ross Burton <ross@openedhand.com>.
3682
3683         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
3684         (dbus_gvalue_genmarshal_name_from_type)
3685         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
3686         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
3687         (dbus_g_value_types_init, dbus_gtype_from_signature)
3688         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
3689         (dbus_gtypes_from_arg_signature): New function prototypes.
3690         (dbus_gvalue_demarshal): Take context and error arguments.
3691         (dbus_gvalue_demarshal_variant): New function.
3692         (dbus_gvalue_demarshal_message): New function.
3693         (dbus_gvalue_store): Delete.
3694
3695         * glib/dbus-gvalue.c:
3696
3697         File has been almost entirely rewritten; now we special-case
3698         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
3699         hash tables correctly, etc.  Full support for recursive values
3700         is not yet complete.
3701
3702         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
3703         argument of signal to G_TYPE_POINTER since we now pass a
3704         structure.
3705         (lookup_g_marshaller): Delete in favor of
3706         _dbus_gobject_lookup_marshaller.
3707         (marshal_dbus_message_to_g_marshaller): Use
3708         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
3709         to handle remote signal callbacks.
3710         (dbus_g_proxy_new_from_proxy): New function; creates a new
3711         DBusGProxy by copying an existing one.
3712         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
3713         (dbus_g_proxy_get_path): New functions.
3714         (dbus_g_proxy_marshal_args_to_message): New function;
3715         factored out of existing code.
3716         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
3717         from a varargs array.
3718         (dbus_g_proxy_begin_call_internal): New function.
3719         (dbus_g_proxy_end_call_internal): New function.
3720         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
3721         as arguments; simply invoke dbus_g_proxy_begin_call_internal
3722         after collecting args into value array.
3723         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
3724         invoke dbus_g_proxy_end_call_internal.
3725         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
3726         end_call_internal.
3727         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
3728         types.
3729         (array_free_all): New function.
3730         (dbus_g_proxy_add_signal): Take GTypes.
3731
3732         * glib/dbus-gobject.h:
3733         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3734         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
3735         Prototype.
3736
3737         * glib/dbus-gobject.c: Add a global marshal_table hash which
3738         stores mappings from type signatures to marshallers.  Change lots
3739         of invocations of dbus_gtype_to_dbus_type to
3740         dbus_gtype_to_signature.
3741         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
3742         (introspect_signals): Fix test for query.return_type.
3743         (set_object_property): Update invocation of dbus_gvalue_demarshal.
3744         (invoke_object_method): Many changes.  Handle asynchronous
3745         invocations.  Convert arguments with
3746         dbus_gvalue_demarshal_message.  Handle errors.  Use
3747         DBusSignatureIter instead of strlen on args. Handle all arguments
3748         generically.  Special-case variants.
3749         (dbus_g_method_return, dbus_g_method_return_error): New function.
3750         (DBusGSignalClosure): New structure, closes over signal
3751         information.
3752         (dbus_g_signal_closure_new): New function.
3753         (dbus_g_signal_closure_finalize): New function.
3754         (signal_emitter_marshaller): New function; is special marshaller
3755         which emits signals on bus.
3756         (export_signals): New function; introspects object signals and
3757         connects to them.
3758         (dbus_g_object_type_install_info): Take GType instead of
3759         GObjectClass.
3760         (dbus_g_connection_register_g_object): Invoke export_signals.
3761         (dbus_g_connection_lookup_g_object): New function.
3762         (DBusGFuncSignature) New structure; used for mapping type
3763         signatures to marshallers.
3764         (funcsig_hash): New function; hashes DBusGFuncSignature.
3765         (funcsig_equal): New function; compares DBusGFuncSignature.
3766         (_dbus_gobject_lookup_marshaller): New function.
3767         (dbus_g_object_register_marshaller): New function; used to
3768         register a marshaller at runtime for a particular signature.
3769
3770         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
3771
3772         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
3773         which notes a server method implementation should be
3774         asynchronous.
3775
3776         * glib/dbus-binding-tool-glib.c
3777         (dbus_binding_tool_output_glib_server): Call
3778         dbus_g_value_types_init.
3779         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
3780         variants specially.
3781         (dbus_g_type_get_lookup_function): Turn GType into an invocation
3782         of a lookup function.
3783         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
3784         (write_untyped_out_args): New method; write output arguments.
3785         (write_formal_declarations_for_direction): Function for
3786         writing prototypes.
3787         (write_formal_parameters_for_direction): Function for
3788         writing implementations.
3789         (write_typed_args_for_direction): Function for writing
3790         arguments prefixed with GTypes.
3791         (write_async_method_client): Write out async version
3792         of method.
3793
3794         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
3795         (dbus_g_type_get_marshal_name): Move mapping from GType
3796         to marshal name into here.
3797         (dbus_g_type_get_c_name): Move into here.
3798         (compute_marshaller): Convert signature to type with
3799         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
3800         (compute_marshaller_name): Ditto.
3801         (compute_marshaller): Handle async signal annotations.
3802         (gather_marshallers): Return if we don't have a known
3803         prefix.
3804         (generate_glue): Collect introspection blob here, and
3805         write all of the blob at the end.  This allows an object
3806         with multiple interfaces to work.
3807         Mark async methods in introspection blob.
3808
3809         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
3810         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
3811         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
3812
3813         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
3814         avoids people accidentally using DBUS_TYPE_* which should
3815         not be necessary anymore.
3816         Do include dbus-gtype-specialized.h, which are utilities
3817         for GLib container types.
3818         Add various #defines for types such as
3819         DBUS_TYPE_G_BOOLEAN_ARRAY.
3820         (DBusGValueIterator, DBusGValue): Define, not fully used
3821         yet.
3822         (dbus_g_value_get_g_type): Type for recursive value.
3823         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3824         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3825         (dbus_g_value_free): Prototypes.
3826         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
3827         (dbus_g_proxy_set_interface): Prototype.
3828         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
3829         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
3830         types.
3831         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
3832         Accessors.
3833         (DBusGAsyncData, DBusGMethodInvocation): Structures for
3834         doing async invocations.
3835         (dbus_g_method_return, dbus_g_method_return_error):
3836         Prototypes.
3837         * doc/dbus-tutorial.xml: Update GLib section.
3838         
3839         * tools/dbus-viewer.c (load_child_nodes): Update
3840         for new invocation type of dbus_g_proxy_end_call.
3841         (load_from_service_thread_func): Ditto.
3842
3843         * tools/print-introspect.c (main): Ditto.
3844
3845         * tools/dbus-names-model.c (have_names_notify)
3846         (names_model_reload, names_model_set_connection)
3847         Use GTypes.
3848
3849         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
3850         needed since Python bindings use GLib bindings.
3851
3852         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
3853         Add --prefix argument.
3854
3855         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
3856         unneeded --ignore-unsupported arg.
3857         
3858         * test/glib/test-service-glib.c: 
3859         * test/glib/test-service-glib.xml:
3860         * test/glib/test-dbus-glib.c: Add many more tests.
3861
3862 2005-06-06  David Zeuthen  <davidz@redhat.com>
3863
3864         * doc/TODO: Add item about need to remove deprecated functions.
3865
3866         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
3867
3868         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
3869         to repair the ABI which was broken with the last commit.
3870
3871 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
3872
3873         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
3874         (dbus_connection_disconnect): renamed to dbus_connection_close 
3875         for API symmetry with dbus_connection_open
3876         (_dbus_connection_open_internal): 
3877         s/dbus_connection_disconnect/dbus_connection_close
3878
3879         * dbus/dbus-bus.c (dbus_bus_get):
3880         s/dbus_connection_disconnect/dbus_connection_close
3881
3882         * bus/connection.c (bus_connections_unref, 
3883         bus_connections_setup_connection, bus_connections_expire_incomplete):
3884         s/dbus_connection_disconnect/dbus_connection_close
3885
3886         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
3887         kill_client_connection_unchecked, check_hello_connection):
3888         s/dbus_connection_disconnect/dbus_connection_close
3889
3890         * bus/bus.c (new_connection_callback):
3891         s/dbus_connection_disconnect/dbus_connection_close
3892
3893         * tools/dbus-send.c (main):
3894         s/dbus_connection_disconnect/dbus_connection_close
3895
3896         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
3897         s/dbus_connection_disconnect/dbus_connection_close
3898         
3899         * test/test-service.c (path_message_func, filter_func):
3900         s/dbus_connection_disconnect/dbus_connection_close
3901         
3902         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
3903         
3904 2005-05-25  Colin Walters  <walters@verbum.org>
3905
3906         * dbus/dbus-protocol.h: Move various bus service #defines such
3907           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
3908           dbus/dbus-shared.h.
3909         * dbus/dbus-shared.h: Various defines moved here.
3910         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
3911
3912 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
3913
3914         * python/__init__.py: Python bindings deserve a minor version
3915         update.  Upped to (0, 40, 2)
3916
3917 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
3918
3919         * python/decorators.py: add explicitly_pass_message decorator
3920         for passing in the dbus message as keyword for edge case signal
3921         handling
3922
3923         * python/matchrules.py (SignalMatchRule.__repr__): fix output
3924         to conform with what dbus expects for match rules
3925         (SignalMatchRule.execute): add the dbus message as a keyword
3926         if the signal handler has requested it
3927
3928         * python/examples/example/signal-recipient.py: added some more
3929         examples on how to hook up to signals
3930
3931 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
3932
3933         * python/decorators.py: import dbus_bindings
3934
3935         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
3936         SignalMatchNode): new classes that implement wildcard signal
3937         callback matching using a tree lookup. Heavily modified from a
3938         patch sent by Celso Pinto (fd.o bug #3241)
3939
3940         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
3941         use new match classes to handle signals.
3942
3943 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
3944         
3945         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
3946
3947 2005-05-18  Havoc Pennington  <hp@redhat.com>
3948
3949         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
3950         gettext. Not really worth requiring yet perhaps, but any
3951         production quality 1.0 would require it so we should go ahead and
3952         get things set up. We do have a couple token calls to
3953         bindtextdomain in the code already.
3954
3955 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
3956
3957         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
3958         when using recursive g_main_loops
3959
3960         * python/_dbus.py (class Bus): add the ProxyObjectClass
3961         alias for ProxyObject to make it easier for the Twisted 
3962         networking framework to integrate dbus.
3963
3964         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
3965         alias for ProxyMethod to make it easier for the Twisted 
3966         networking framework to integrate dbus. 
3967
3968 2005-05-11  Ross Burton  <ross@openedhand.com>
3969
3970         * glib/dbus-glib-tool.c: Add --prefix argument.
3971         * glib/dbus-binding-tool-glib.h: Add prefix argument.
3972         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
3973         Add prefix argument.
3974         (generate_glue): Pass prefix argument down.
3975         (dbus_binding_tool_output_glib_server): Pass prefix to
3976         glib-genmarshal.
3977         
3978 2005-05-11  Colin Walters  <walters@verbum.org>
3979
3980         * tools/dbus-send.c (append_array): New function.
3981         (append_arg): Broken out from main.
3982         (main): Add cheesy hack to send arrays and variants.
3983         (usage): Update.
3984         * tools/dbus-print-message.c (print_iter): Broken out
3985         from main.
3986
3987 2005-05-11  Colin Walters  <walters@verbum.org>
3988
3989         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
3990         New function, returns signature string for signature iter.
3991         * dbus/dbus-signature.h: Prototype it.
3992         * dbus/dbus-message.c (dbus_message_iter_get_signature):
3993         New function, returns signature string for message iter.
3994         (dbus_message_iter_get_array_len): New function, returns
3995         length of array.
3996         (dbus_message_iter_get_fixed_array): Fix assertion; this
3997         function should be used when the iter is pointing to the
3998         contents of an array
3999         * dbus/dbus-message.h: Prototypes.
4000         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4001         New function; returns length of an array.
4002         * dbus/dbus-marshal-recursive.h: Prototype it.
4003         
4004 2005-05-11  Colin Walters  <walters@verbum.org>
4005
4006         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4007         compilation error.
4008         
4009 2005-05-08  Havoc Pennington  <hp@redhat.com>
4010
4011         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4012         daemon's pid, not the parent's pid, to the file descriptor.
4013         Reported by Taj Morton.
4014
4015 2005-05-05  Havoc Pennington  <hp@redhat.com>
4016
4017         * configure.in (LT_*): add notes on how the libtool versioning
4018         works to save thinking. Increment soname to indicate protocol
4019         breakage (though really the library interface hasn't changed I
4020         guess)
4021
4022         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4023         verify the GUID received from server matches what we were
4024         expecting, if we had an expectation
4025
4026         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4027         (_dbus_auth_get_guid_from_server): new function
4028         (send_begin): parse the OK args
4029
4030         * doc/dbus-specification.xml: add GUID to the auth protocol
4031
4032 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4033
4034         * Fix my name in previous changelog ;)
4035
4036         * python/proxies.py (ProxyObject.__getattr__): add further patch
4037         from Anthony Baxter to throw an AttributeError when python 
4038         __special__ functions are called instead of marshling them over 
4039         the bus (Bug#1685 comment 3).
4040
4041 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4042
4043         * python/Makefile.am: changed to use pyexecdir for the binding
4044         shared libraries (Bug#2494)
4045
4046         * python/exceptions.py: bring exceptions over from the bindings
4047         so they can be used in applications (Bug#2036)
4048         Make all exceptions derive from DBusException
4049
4050         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4051         of classes so that print obj doesn't throw an exception (Bug #1685)
4052
4053 2005-05-03  Ross Burton  <ross@openedhand.com>
4054
4055         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4056         Return if we get an error during registration.  Set up a
4057         weak reference on object to unregister if object is destroyed.
4058         (unregister_gobject): New function.
4059         
4060 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4061
4062         * python/dbus_bindings.pyx.in: 
4063         - added new type classes for hinting to the marashaler what type 
4064         to send over the wire
4065         - added int16 and uint16 marshalers
4066         - Fixed a bug in the type constants that caused int32 to go out
4067         as uint16 over the wire
4068         * python/dbus.py: split up into different files and renamed _dbus.py
4069         * python/__init__.py, python/_util.py, python/decorators.py, 
4070         python/exceptions.py, python/proxies.py, python/services.py,
4071         python/types.py: new files split off from dbus.py
4072         * python/Makefile.am: Add new files, remove dbus.py and 
4073         install all python files to <python module dir>/dbus
4074         * python/examples/*: Added #!/usr/bin/env python to the top of
4075         every example.  Patch provided by Tatavarty Kalyan
4076
4077 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4078
4079         * NEWS: Update to 0.33
4080
4081 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4082
4083         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
4084         method for doing async calls
4085         (_pending_call_notification): New C function for handling pendning call
4086         callbacks
4087         (set_notify): New method for setting pending call notification
4088         
4089         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
4090         Async capabilities added to remote method calls
4091         (Sender): class removed
4092         (RemoteService): class removed
4093         (ObjectTree): class removed for now
4094         (RemoteObject): Renamed to ProxyObject
4095         (RemoteMethod): Renamed to ProxyMethod
4096         (method): Decorator added for decorating python methods as dbus methods
4097         (signal): Decorator added for decorating python methods as signal emitters
4098         (ObjectType): Metaclass added for generating introspection data and the
4099         method callback vtable
4100         (Interface): Wrapper class added to wrap objects in a dbus interface
4101         (Object): Uses ObjectType as its metaclass and exports Introspect
4102         of the org.freedesktop.DBus.Introspectable interface
4103         (ValidationException, UnknownMethodException): new exceptions
4104
4105         * python/examples/*: Modified to fit with the new bindings
4106
4107 2005-04-23  Havoc Pennington  <hp@redhat.com>
4108
4109         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
4110         reported by Tony Houghton
4111
4112         * test/test-service.c (main): test
4113         dbus_connection_get_object_path_data()
4114
4115         * dbus/dbus-object-tree.c (find_handler): be sure we always init
4116         the exact_match
4117         (_dbus_object_tree_get_user_data_unlocked): new function used by
4118         dbus_connection_get_object_path_data()
4119         (do_register): add assertion test for get_user_data_unlocked
4120         (object_tree_test_iteration): more tests
4121
4122         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
4123         new function from Dan Reed to let you get the user data from 
4124         dbus_connection_register_object_path()
4125
4126 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
4127
4128         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
4129         in numerous places that did not account for the NULL terminator
4130         (signature_from_seed): changed the manual string copy loop to 
4131         just use strcpy instead
4132         make check should now pass
4133
4134 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
4135
4136         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
4137         so that it allows messages that are not signals to pass in 
4138         NULL as the interface.
4139
4140 2005-04-18  David Zeuthen  <davidz@redhat.com>
4141
4142         * glib/dbus-gmain.c (io_handler_destroy_source): 
4143         (timeout_handler_destroy_source, connection_setup_free): 
4144         Also unref the source to avoid memory leaks.
4145
4146 2005-04-13  David Zeuthen  <davidz@redhat.com>
4147
4148         * bus/config-parser.c (bus_config_parser_new): Bump this to a
4149         more reasonable, yet still totally arbitrary, value :-). 
4150
4151 2005-04-13  David Zeuthen  <davidz@redhat.com>
4152
4153         * doc/TODO: Added an "important for 1.0" item about selinux
4154         allow/deny messages
4155
4156 2005-04-13  David Zeuthen  <davidz@redhat.com>
4157
4158         * bus/selinux.c: Add c-file-style to top of file
4159         (log_audit_callback): Don't free the data here anymore
4160         (bus_selinux_check): Don't take spid and tpid since appending
4161         that to auxdata may OOM.
4162         (bus_selinux_allows_acquire_service): Handle OOM and signal back
4163         to the caller if we are OOM by taking an error object.
4164         (bus_selinux_allows_send): -do-
4165
4166         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
4167         and bus_selinux_allows_send
4168
4169         * bus/bus.c (bus_context_check_security_policy): Pass error and
4170         pass on OOM thrown by bus_selinux_allows_send()
4171
4172         * bus/services.c (bus_registry_acquire_service): Pass error and
4173         pass on OOM thrown by bus_selinux_allows_acquire_service()
4174
4175 2005-04-13  Havoc Pennington  <hp@redhat.com>
4176
4177         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
4178         message at a time to avoid monopolizing the main loop, bug 
4179         #2953 from Benjamin Otte
4180
4181 2005-04-09  Havoc Pennington  <hp@redhat.com>
4182
4183         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
4184         possible overlap, fix from Daniel Reed
4185         (fixup_alignment): fix signedness warnings
4186         (_dbus_string_append_unichar): ditto
4187
4188 2005-04-09  Havoc Pennington  <hp@redhat.com>
4189
4190         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
4191
4192         * glib/dbus-glib-tool.c (main): fix warning
4193
4194         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
4195
4196         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
4197         add a new function that can be used in simple applications that
4198         don't have a main loop and are willing to block
4199
4200 2005-04-05  David Zeuthen  <davidz@redhat.com>
4201
4202         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
4203
4204         * glib/dbus-gmain.c:
4205         (io_handler_destroy_source): Remove from list of IO handlers
4206         of the ConnectionSetup object
4207         (timeout_handler_destroy_source): -do- for timeout handlers
4208         (io_handler_source_finalized): Don't remove from list since
4209         we now do that in io_handler_destroy_source(). Renamed from
4210         io_handler_source_destroyed
4211         (timeout_handler_source_destroyed): -do- for timeout handlers
4212         (connection_setup_free): It is now safe to iterate over all
4213         IO and timeout handlers as the _destroy_source removes them
4214         from the list synchronously
4215
4216 2005-03-30  Havoc Pennington  <hp@redhat.com>
4217
4218         * configure.in: change check to gtk 2.4
4219
4220         * tools/dbus-viewer.c (name_combo_changed_callback): remove
4221         gtk_combo_box_get_active_text() usage to decrement GTK requirement
4222         to 2.4
4223
4224 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4225
4226         * News: Update 0.32
4227
4228         * HACKING: Fixed realease instructions.  configure.in should be updated to
4229           the next release by the person who made the last release.
4230
4231 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
4232
4233         * python/lvalue_cast_post_process.py - removed.  Patch has been
4234           submitted to Pyrex maintainers that fixes gcc4.0 errors
4235
4236         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
4237
4238 2005-03-24  Daniel Reed  <n@ml.org>
4239
4240         * tools/Makefile.am: Make print-introspect and
4241         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
4242
4243 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
4244
4245         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
4246
4247         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
4248           had in Red Hat packages for a while but for some reason never 
4249           got merged upstream
4250           (_dbus_is_a_number): New checks if a string
4251           can be converted to a number and does the conversion if it can
4252           (_dbus_user_database_lookup): Add check to see if the given username
4253           is a udi.  This allows udi's to be used instead of usernames in the
4254           config file.
4255           (_dbus_user_database_lookup_group): Add check to see if the given groupname
4256           is a gdi.  This allows gdi's to be used instead of groupnames in the
4257           config file.
4258
4259 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
4260
4261         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
4262           code so that it compiles with gcc4.0
4263
4264         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
4265           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
4266           results back to dbus_binding.c
4267
4268 2005-03-20  Colin Walters  <walters@verbum.org>
4269
4270         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
4271
4272         * configure.in: Require GTK+ 2.6.
4273         
4274 2005-03-20  Colin Walters  <walters@verbum.org>
4275
4276         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
4277
4278 2005-03-17  Tom Parker  <palfrey@tevp.net>
4279
4280         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
4281         print DBUS_UID_UNSET; instead print passed username.  Also
4282         be sure to actually use gid looked up in cache.
4283         
4284         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
4285         for DBUS_GID_UNSET and groupname.
4286
4287 2005-03-17  Colin Walters  <walters@verbum.org>
4288
4289         * bus/print-introspect.c: Move to tools/.
4290         * bus/run-with-tmp-session-bus.sh: Ditto.
4291         
4292         * glib/Makefile.am (dbus-glib-bindings.h): Move
4293         generation to tools/Makefile.am.
4294
4295         * test/glib/run-test.sh: Update to handle move
4296         of run-with-tmp-session-bus.sh.
4297
4298         * test/glib/test-service-glib.c: Update to handle
4299         move of dbus-glib-bindings.h.
4300
4301         * tools/print-introspect.c: Moved here
4302         from bus/, and ported to GLib bindings.
4303
4304         * tools/run-with-tmp-session-bus.sh: Moved here
4305         from bus/.
4306
4307         * tools/Makefile.am: Generate dbus-glib-bindings.h
4308         and dbus-bus-introspect.xml here.
4309
4310         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
4311         Update.
4312
4313 2005-03-17  Colin Walters  <walters@verbum.org>
4314
4315         * bus/driver.c (write_args_for_direction): Use
4316         _dbus_string_get_const_data to retrieve string;
4317         _dbus_string_get_const_data_len doesn't actually return
4318         a NULL-terminated substring.
4319
4320         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
4321         (main): Change to use org_freedesktop_DBus_request_name
4322         instead of using g_proxy_begin_call/end_call.
4323
4324 2005-03-15  Joe Shaw  <joeshaw@novell.com>
4325
4326         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
4327         generating the finalizer.  Fixes from Ben Maurer.
4328
4329 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4330
4331         * mono/BusDriver.cs: Update method names: ListServices
4332         becomes ListNames; GetOwner becomes GetNameOwner.
4333
4334         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
4335         onto the eval stack when removing the delegate.
4336
4337 2005-03-12  Joe Shaw  <joeshaw@novell.com>
4338
4339         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
4340         LT_CURRENT.  Set it to the autoconf variable.
4341                                                                                 
4342         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
4343         classes that disconnects the signal handler delegate from the
4344         service object.  Fixes a big leak of proxy objects on the
4345         client side of things.  Patch from Ben Maurer
4346         <bmaurer@ximian.com>
4347
4348 2005-03-12  Colin Walters  <walters@verbum.org>
4349
4350         * bus/driver.c (write_args_for_direction): New function,
4351         parses a type signature into arguments and outputs to
4352         XML.
4353         (bus_driver_handle_introspect): Use it instead of
4354         hardcoding XML for certain signatures.
4355         
4356         * bus/Makefile.am (dbus-bus-introspect.xml): Add
4357         dependency on dbus-daemon.
4358
4359         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
4360         argument, pass it to dbus_binding_tool_output_glib_client.
4361
4362         * glib/dbus-binding-tool-glib.c
4363         (generate_client_glue): Protect against multiple inclusion.
4364         (dbus_binding_tool_output_glib_client): Add
4365         G_BEGIN_DECLS/G_END_DECLS.
4366
4367         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
4368         Change to just take iface prefix directly.
4369         (write_formal_parameters): Clarify error message.
4370         (check_supported_parameters): New function; checks to see type
4371         signatures of method parameters are supported.
4372         (generate_client_glue): Handle ignore_unsupported flag.
4373         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
4374         parameter.
4375
4376         * glib/Makefile.am (dbus-glib-bindings.h): Pass
4377         --ignore-unsupported by default until glib bindings
4378         support arrays.
4379
4380 2005-03-11  Colin Walters  <walters@verbum.org>
4381
4382         * glib/Makefile.am: Generate dbus-glib-bindings.h and
4383         install it.
4384
4385         * bus/print-introspect.c: New file; prints introspection
4386         data for a given name and object path.
4387
4388         * bus/run-with-tmp-session-bus.sh: New file, refactored
4389         from test/glib/run-test.sh.  Creates a temporary session
4390         bus and runs another program.
4391
4392         * test/glib/run-test.sh: Refactor to invoke
4393         run-with-tmp-session-bus.sh.
4394
4395         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
4396         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
4397         macros instead of hardcoding.
4398
4399         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
4400
4401 2005-03-11  Joe Shaw  <joeshaw@novell.com>
4402
4403         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
4404         this unref; it doesn't match up evenly in some codepaths.
4405         (_dbus_connection_block_pending_call): Unref at every exitpoint;
4406         this evenly matches with the ref near the top of this function.
4407
4408 2005-03-09  Joe Shaw  <joeshaw@novell.com>
4409
4410         * dbus/dbus-object-tree.c
4411         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
4412         and we try to unregister a path that's not registered, still go
4413         through the process of unlocking and don't just return.
4414
4415 2005-03-09  Colin Walters  <walters@verbum.org>
4416
4417         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
4418         to this are generated for client-side wrappers.  Invokes a
4419         D-BUS method and returns reply values.  
4420
4421         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
4422         function; writes signature string for argument direction.
4423         (write_args_for_direction): Change to pass input values directly
4424         instead of via address, and fix indentation.
4425         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
4426         make generated wrappers inlineable.
4427
4428         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
4429         note about using dbus_type_is_fixed.
4430
4431         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
4432         dbus/dbus-signature.c as dbus_type_is_fixed.
4433
4434         All callers updated.
4435
4436         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
4437         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
4438
4439         * dbus/dbus-signature.h: Prototype.
4440
4441         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
4442         error printf code.
4443
4444         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
4445         appropriate instead of just freeing it.
4446         (main): Free returned strings using g_free.
4447
4448         * test/glib/Makefile.am (test-service-glib-glue.h)
4449         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
4450
4451         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
4452         simply maps a simple D-BUS type to GType.
4453         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
4454         GType.
4455         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
4456         initialize the value with it.
4457         (dbus_gvalue_binding_type_from_type): Unused, delete.
4458         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
4459         various types instead of unmarshalling to value data directly.
4460         Remove can_convert boolean.
4461         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
4462         returning directly instead of using can_convert boolean.
4463         (dbus_gvalue_store): New function; not related to D-BUS per-se.
4464         Stores a GValue in a pointer to a value of its corresponding C
4465         type.
4466
4467         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
4468         add dbus_gvalue_store.
4469
4470 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4471
4472         Fix a bunch of lifecycle and memory management problems
4473         in the mono bindings.
4474
4475         * mono/Arguments.cs (Arguments): Implement IDisposable
4476
4477         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
4478         strictly a static class.
4479
4480         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
4481         delegates into this file.
4482         (Connection): Implement IDisposable.
4483         (Dispose): Disconnect the connection and set the raw connection
4484         pointer to IntPtr.Zero.
4485         (~Connection): Call Dispose().
4486         (RegisterObjectPath): Added.  Manages the registration of object
4487         paths so we can cleanly disconnect them at dispose/finalize time.
4488         (UnregisterObjectPath): Ditto.
4489         (set_RawConnection): Unregister all of the object paths when
4490         changing the underlying DBusConnection.  Add them back onto the
4491         new connection, if any.
4492
4493         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
4494         more unmanaged resources anymore, so it's not necessary.  Move all
4495         the DBusObjectPathVTable stuff out of here.
4496         (Handler): Save references to our delegates so that they don't get
4497         finalized.  Call Connection.RegisterObjectPath() instead of
4498         dbus_connection_register_object_path() directly.
4499         (Message_Called): Dispose the message after we're finished with
4500         it.
4501
4502         * mono/Message.cs (Message): Implement IDisposable.
4503         (Dispose): Dispose the Arguments, and set the RawMessage to
4504         IntPtr.Zero.
4505         (SendWithReplyAndBlock): We own the ref to the reply that comes
4506         back from dbus_connection_send_with_reply_and_block() so add a
4507         comment about that and unref it after we've constructed a managed
4508         MethodReturn class around it.  Fixes a big, big leak.
4509
4510         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
4511         method.
4512         (BuildSignalHandler): After we've sent the Signal message, dispose
4513         of it.
4514         (BuildMethod): Dispose of the method call and reply messages after
4515         we've sent the message and extracted the data we want from the
4516         reply.
4517
4518         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
4519         anymore.
4520         (Service_FilterCalled): Dispose of the message after we're
4521         finished with it.
4522
4523 2005-03-08  Joe Shaw  <joeshaw@novell.com>
4524
4525         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
4526         After we attach our pending call to the connection, unref
4527         it.  Fixes a leak.
4528  
4529         * mono/Connection.cs (set_RawConnection): Disconnect our
4530         filter and match callbacks from the old connection and
4531         reconnect them to the new connection, if any.
4532
4533         * mono/DBusType/Array.cs: "Code" is a static member, so
4534         don't use "this" to refer to it.  Fix for stricter checking
4535         in Mono 1.1.4.
4536  
4537         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
4538         object path that we pass into unmanaged code.
4539  
4540         * mono/DBusType/String.cs (Append): Don't leak the string
4541         that we pass into unmanged code.
4542
4543 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
4544         * NEWS: Update for 0.31
4545
4546         * configure.in: Release 0.31
4547         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
4548
4549         * qt/Makefile.am: fixed build
4550
4551         * dbus/Makefile.am: soname bump for libdbus
4552
4553         * glib/Makefile.am: soname bump for libdbus-glib
4554
4555 2005-03-05  Havoc Pennington  <hp@redhat.com>
4556
4557         * dbus/dbus-sysdeps.c:
4558         (pseudorandom_generate_random_bytes_buffer): fix to have no return
4559         value
4560         (_dbus_generate_random_bytes_buffer): fix return value
4561
4562         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
4563         checks actually work, from Tom Parker <fdo@tevp.net>
4564
4565 2005-03-01  Colin Walters  <walters@verbum.org>
4566
4567         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
4568         functions copied from dbus-glib-tool.c.
4569         (main): Convert lots of error code to use them.
4570         Also add some testing for introspection bits.
4571
4572 2005-03-01  Colin Walters  <walters@verbum.org>
4573         
4574         * doc/TODO: Remove introspection signature TODO.
4575
4576 2005-02-27  Colin Walters  <walters@verbum.org>
4577
4578         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
4579         Change return value to const char * instead of int so we can do
4580         full signatures.
4581         (struct PropertyInfo, struct ArgInfo): Store char *.
4582         (property_info_new, arg_info_new): Update parameters, strdup.
4583         (property_info_unref, arg_info_unref): Free.
4584
4585         * glib/dbus-gidl.h: Update prototypes.
4586
4587         * glib/dbus-gparser.c (basic_type_from_string): Delete.
4588         (validate_signature): New function, just validates signature and
4589         sets GError.
4590         (parse_property, parse_arg): Invoke validate_signature.  Store
4591         signature instead of just type code.
4592
4593         * glib/dbus-gvalue.c (base_type_from_signature): New utility
4594         function to return a primary type for a signature, dropping
4595         information about types in container types.
4596         (dbus_gvalue_genmarshal_name_from_type)
4597         (dbus_gvalue_binding_type_from_type)
4598         (dbus_gvalue_ctype_from_type): Update to take full signature
4599          instead of type code.
4600         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
4601
4602         * glib/dbus-gvalue.h: Update prototypes for above.
4603
4604         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
4605         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
4606         (introspect_properties, introspect_signals, write_interface):
4607         Update to handle signatures, and remove usage of
4608         _dbus_gutils_type_to_string.
4609         (handle_introspect): Print out type codes instead of e.g. "string"
4610         in hardcoded introspection XML; also use x_AS_STRING constants
4611         instead of hardcoding in string.
4612
4613         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
4614         to string.  Remove usage of _dbus_gutils_type_to_string.
4615
4616         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
4617
4618         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
4619         deletion.
4620         
4621         * glib/dbus-binding-tool-glib.c (compute_marshaller)
4622         (compute_marshaller_name, generate_glue): Handle signature change
4623         to string.
4624         (write_formal_parameters, write_args_for_direction): Ditto, and
4625         remove FIXME.
4626
4627         * tools/dbus-tree-view.c (type_to_string): Delete.
4628         (info_set_func_text): Update to print full signatures.
4629
4630         * test/glib/test-service-glib.xml: Change types to new
4631         introspection format.
4632
4633 2005-02-26  Havoc Pennington  <hp@redhat.com>
4634
4635         * doc/TODO: remove the "guid" item
4636
4637         * test/glib/test-profile.c (no_bus_thread_func): use open_private
4638         (with_bus_thread_func): use open_private
4639
4640         * dbus/dbus-connection.c (dbus_connection_open_private): new
4641         function that works like the old dbus_connection_open()
4642         (dbus_connection_open): now returns an existing connection if
4643         possible
4644
4645         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
4646         through the GUID to the transport
4647
4648         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
4649         GUID in hex-encoded form.
4650
4651         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4652         pass GUID argument in to the transport
4653
4654         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
4655         guid argument
4656
4657         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
4658
4659         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
4660
4661 2005-02-25  Havoc Pennington  <hp@redhat.com>
4662
4663         * doc/dbus-specification.xml: document the GUID thing
4664
4665         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
4666         globally unique ID for the server, and put a "guid=hexencoded"
4667         field in the address
4668
4669         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
4670
4671         * dbus/dbus-message.c: ditto
4672
4673         * dbus/dbus-dataslot.c: ditto
4674
4675         * dbus/dbus-list.c: ditto
4676
4677         * dbus/dbus-internals.h: wait, just include
4678         dbus-threads-internal.h here
4679         
4680         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
4681         use in main library
4682
4683         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
4684
4685 2005-02-24  Colin Walters  <walters@verbum.org>
4686
4687         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
4688
4689 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
4690
4691         * glib/Makefile.am: added dbus-gobject.h to sources list
4692         so distcheck doesn't fail
4693         
4694 2005-02-24  Havoc Pennington  <hp@redhat.com>
4695
4696         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
4697         you must disconnect before unref, since locking and other things
4698         are screwed up otherwise. Fix assorted other locking stuff.
4699
4700         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
4701         fix compilation
4702
4703         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
4704         into a private header and don't export from the library
4705
4706         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
4707
4708 2005-02-24  Colin Walters  <walters@verbum.org>
4709         
4710         * dbus/dbus-signature.c: New file; implements various functions
4711         related to type signatures.  Includes an interator for parsing,
4712         validation functions.
4713         (dbus_type_is_basic): Moved here from
4714         dbus-marshal-basic.c:_dbus_type_is_basic.
4715         (dbus_type_is_container): Moved here from
4716         dbus-marshal-basic.c:_dbus_type_is_container.
4717
4718         All callers of _dbus_type_is_container and _dbus_type_is_basic
4719         updated, and include dbus-signature.h.
4720
4721         * dbus/dbus-signature.h: New file; prototypes for the above.
4722
4723         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
4724         dbus-signature.h.
4725
4726         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
4727         function factored out of _dbus_first_type_in_signature.
4728         (_dbus_first_type_in_signature_c_str): New function; returns first
4729         type code for a type signature character.
4730
4731         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
4732         handle function moves.
4733
4734         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
4735
4736         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
4737         function; skips to next complete type in type signature.
4738         Implemented using previous skip_one_complete_type.  Now
4739         skip_one_complete_type just delegates to
4740         _dbus_type_signature_next.
4741
4742         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
4743         to dbus-signature.c
4744         (_dbus_type_is_container): Ditto.
4745
4746         * doc/dbus-specification.xml: Update introspection sample to
4747         use real type signatures.
4748
4749         * dbus/dbus-test.h: Prototype signature test.
4750
4751         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
4752         signature tests.
4753
4754         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
4755
4756 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
4757
4758         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
4759         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
4760
4761 2005-02-21  Colin Walters  <walters@verbum.org>
4762
4763         * dbus/dbus-test-main.c (main): Take optional specific test
4764         argument.
4765
4766         * dbus/dbus-test.c (run_test): New function, runs a test function
4767         with no data directory.
4768         (run_data_test): Like above, but takes data directory.
4769         (dbus_internal_do_not_use_run_tests): Take
4770         specific test argument.  Replace lots of cut n' paste code
4771         with run_test and run_data_test.
4772
4773         * dbus/dbus-test.h: Update prototype for
4774         dbus_internal_do_not_use_run_tests.
4775
4776 2005-02-20  Havoc Pennington  <hp@redhat.com>
4777
4778         Fix bugs reported by Daniel P. Berrange
4779         
4780         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
4781         (protected_change_watch): new function
4782         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
4783         (_dbus_server_add_watch): change to work like the
4784         dbus-connection.c equivalents; like those, probably kind of
4785         busted, but should at least mostly work for now
4786         (dbus_server_disconnect): drop the lock if we were already
4787         disconnected, patch from Daniel P. Berrange
4788
4789         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
4790         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
4791         same stuff
4792
4793         * doc/TODO: todo about unscrewing this mess
4794
4795 2005-02-19  Colin Walters  <walters@verbum.org>
4796
4797         * glib/dbus-binding-tool-glib.c
4798         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
4799
4800         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
4801         as errno.h and sys/stat.h.
4802         (lose): New function, prints error with
4803         newline and exits.
4804         (lose_gerror): Similar, but takes GError for message.
4805         (main): Add --output argument to specify output file to write to,
4806         instead of always printing to stdout.  In this mode, determine
4807         timestamps on source files to see whether any are newer than the
4808         target file.  If not, exit.  Also convert a number of error
4809         messages to use lose (since it's shorter), and switch to using
4810         g_io_channel_shutdown.
4811
4812 2005-02-19  Havoc Pennington  <hp@redhat.com>
4813
4814         * glib/dbus-gobject.c
4815         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
4816
4817         * glib/dbus-glib.c: fix doxygen warnings
4818
4819         * glib/dbus-gparser.c (parse_annotation): error if an annotation
4820         is found on an <arg>
4821
4822 2005-02-17  Colin Walters  <walters@verbum.org>
4823
4824         * glib/dbus-gobject.h: Don't export
4825         _dbus_glib_marshal_dbus_message_to_gvalue_array.
4826         
4827         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
4828         (invoke_object_method): Handle it.
4829
4830         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4831         Handle rename.
4832         
4833 2005-02-17  Colin Walters  <walters@verbum.org>
4834
4835         * bus/.cvsignore, doc/.cvsignore
4836         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
4837         Update.
4838
4839 2005-02-17  Colin Walters  <walters@verbum.org>
4840         
4841         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
4842         Rename to DBUS_SERVICE_DBUS.
4843         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
4844         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
4845         Change the value from "org.freedesktop.Local"
4846         to "org.freedesktop.DBus.Local".
4847         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
4848         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
4849         DBUS_INTERFACE_INTROSPECTABLE.
4850         Change the value from "org.freedesktop.Introspectable"
4851         to "org.freedesktop.DBus.Introspectable".
4852         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
4853         DBUS_INTERFACE_PROPERTIES.
4854         Change the value from "org.freedesktop.Properties"
4855         to "org.freedesktop.DBus.Properties".
4856         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
4857         DBUS_INTERFACE_PEER.
4858         Change the value from "org.freedesktop.Peer"
4859         to "org.freedesktop.DBus.Peer".
4860         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
4861         DBUS_INTERFACE_LOCAL.
4862         Change the value from "org.freedesktop.Local"
4863         to "org.freedesktop.DBus.Local".
4864
4865         All other users of those constants have been changed.
4866
4867         * bus/driver.c (bus_driver_handle_introspect): Use constants.
4868
4869         * glib/dbus-gobject.c (handle_introspect): Use constants.
4870
4871         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
4872
4873 2005-02-17  Colin Walters  <walters@verbum.org>
4874
4875         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
4876         (parse_node, parse_interface, parse_method, parse_signal)
4877         (parse_property, parse_annotation): Lose if we're currently in an
4878         annotation.
4879         (parse_annotation): New function.
4880         (parser_start_element, parser_end_element): Handle annotation.
4881         (parse_method, parse_interface): Remove support for c_name attribute,
4882         switch to annotations.
4883
4884         * glib/dbus-gidl.h (interface_info_get_binding_names)
4885         (method_info_get_binding_names)
4886         (interface_info_get_binding_name, method_info_get_binding_name)
4887         (interface_info_set_binding_name, method_info_set_binding_name):
4888         Remove.
4889         (interface_info_get_annotations, method_info_get_annotations)
4890         (interface_info_get_annotation, method_info_get_annotation)
4891         (interface_info_add_annotation, method_info_add_annotation):
4892         Prototype.
4893
4894         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
4895         for "bindings".
4896         (struct MethodInfo): Ditto.
4897         Straightfoward conversion of binding methods into annotation methods
4898         as prototyped.
4899
4900         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
4901
4902         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
4903
4904         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
4905         Use new annotation API.
4906
4907         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
4908         annotation element.
4909         
4910         * doc/dbus-specification.xml: Discuss introspection annotations,
4911         include list of well-known annotations.
4912
4913         * test/glib/test-service-glib.xml: Make validate against new DTD.
4914
4915 2005-02-17  Colin Walters  <walters@verbum.org>
4916
4917         This patch is based on initial work from
4918         Paul Kuliniewicz <kuliniew@purdue.edu>.
4919
4920         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
4921         initialization of GValue from dbus type to here.
4922         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
4923         for the "glib-genmarshal" program from a DBus type.
4924         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
4925         into the C name for it we use in the glib bindings.
4926         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
4927         glib C type (not GValue).
4928         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
4929
4930         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
4931         from dbus-gobject.c.
4932
4933         * glib/dbus-gutils.h: Prototype it.
4934
4935         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
4936         (marshal_dbus_message_to_g_marshaller): Use new shared function
4937         dbus_glib_marshal_dbus_message_to_gvalue_array.
4938
4939         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
4940         Will be changed once we have annotations.
4941
4942         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
4943         GStaticRWLock.  Callers updated.
4944         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
4945         (string_table_next): New function for iterating over zero-terminated
4946         string value array.
4947         (string_table_lookup): New function; retrieves specific entry in
4948         array.
4949         (get_method_data): New function; look up method data in object data chunk.
4950         (object_error_domain_prefix_from_object_info)
4951         (object_error_code_from_object_info): New functions, but not implemented yet.
4952         (method_interface_from_object_info): New function; retrieve interface name.
4953         (method_name_from_object_info): New function; retrieve method name.
4954         (method_arg_info_from_object_info): New function; retrieve argument data.
4955         (arg_iterate): New function; iterates over serialized argument data.
4956         (method_dir_signature_from_object_info): New function; returns a
4957         GString holding type signature for arguments for just one
4958         direction (input or output).
4959         (method_input_signature_from_object_info)
4960         (method_output_signature_from_object_info): New functions.
4961         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
4962         converts dbus message arguments into a GValue array.  Used for both
4963         signal handling and method invocation.
4964         (struct DBusGlibWriteIterfaceData): New utility structure.
4965         (write_interface): New function; generate introspection XML for
4966         an interface.
4967         (introspect_interfaces): New function; gathers all interface->methods,
4968         generates introspection XML for them.
4969         (handle_introspect): Invoke introspect_interfaces.
4970         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
4971         (lookup_object_and_method): New function; examines an incoming message
4972         and attempts to match it up (via interface, method name, and argument
4973         signature) with a known object and method.
4974         (gerror_domaincode_to_dbus_error_name): New function; converts a
4975         GError domain and code into a DBus error name.  Needs GError data
4976         added to object introspection to work well.
4977         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
4978         GError.
4979         (invoke_object_method): New function to invoke an object method
4980         looked up via lookup_object_and_method.  Parses the incoming
4981         message, turns it into a GValue array, then invokes the marshaller
4982         specified in the DBusGMethodInfo.  Creates a new message with
4983         either return values or error message as appropriate.
4984         (gobject_message_function): Invoke lookup_object_and_method and
4985         invoke_object_method.
4986
4987         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
4988         (enum DBusBindingOutputMode): New enum for binding output modes.
4989         (pretty_print): Print binding names.
4990         (dbus_binding_tool_error_quark): GError bits.
4991         (version): Fix typo.
4992         (main): Create GIOChannel for output.  Parse new --mode argument,
4993         possible values are "pretty-print", "glib-server", "glib-client".
4994         Use mode to invoke appropriate function.
4995         
4996         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
4997
4998         * glib/dbus-glib-tool.h: New header, just includes GError bits
4999         for now.
5000
5001         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5002         maps binding style to name.
5003         (struct MethodInfo): Ditto.
5004         (get_hash_keys, get_hash_key): Utility function, returns keys for
5005         a GHashTable.
5006         (interface_info_new, method_info_new): Initialize bindings.
5007         (interface_info_unref, method_info_unref): Destroy bindings.
5008         (method_info_get_binding_names, method_info_get_binding_name)
5009         (interface_info_get_binding_names, interface_info_get_binding_name):
5010         Functions for retrieving binding names.
5011         (method_info_set_binding_name, interface_info_set_binding_name):
5012         Functions for setting binding names.
5013
5014         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5015         for glib binding generation.
5016
5017         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5018         and client-side glib glue generation.
5019
5020         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5021         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5022         dbus-glib-tool.h.
5023
5024         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5025         of using GClosureMarshal directly.
5026         (struct DBusGObjectInfo): Add n_infos member.
5027
5028         * test/glib/test-service-glib.xml: New file; contains introspection data
5029         for MyTestObject used in test-service-glib.c.
5030
5031         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5032         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5033         (my_object_uppercase, my_object_many_args): New test methods.
5034         (main): Use dbus_g_object_class_install_info to include generated object
5035         info.
5036
5037         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5038         as well as client-side bindings.
5039
5040         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5041         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5042         using both the dbus_gproxy stuff directly as well as the generated bindings.
5043
5044 2005-02-15  Havoc Pennington  <hp@redhat.com>
5045
5046         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5047         complete a pending call, don't run filters first.
5048
5049         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5050         dbus_pending_call_steal_reply
5051
5052         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5053         _dbus_connection_block_pending_call
5054         (dbus_pending_call_get_reply): change to steal_reply and return a
5055         ref
5056
5057         * dbus/dbus-connection.c
5058         (dbus_connection_send_with_reply_and_block): port to work in terms
5059         of DBusPendingCall
5060         (_dbus_connection_block_pending_call): replace block_for_reply
5061         with this
5062
5063 2005-02-14  Havoc Pennington  <hp@redhat.com>
5064
5065         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5066         properly handle looking up group information by name; fix 
5067         from j@bootlab.org
5068
5069 2005-02-13  Havoc Pennington  <hp@redhat.com>
5070
5071         * dbus/dbus-connection.c (dbus_connection_return_message) 
5072         (dbus_connection_borrow_message): hold dispatch lock while message
5073         is outstanding
5074         (_dbus_connection_block_for_reply): hold dispatch lock while we
5075         block for the reply, so nobody steals our reply
5076         (dbus_connection_pop_message): hold the dispatch lock while we
5077         pluck the message
5078
5079 2005-02-13  Havoc Pennington  <hp@redhat.com>
5080
5081         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
5082         (_dbus_connection_release_dispatch)
5083         (_dbus_connection_acquire_io_path)
5084         (_dbus_connection_release_io_path): make the mutex and condvar
5085         control access to the "acquired" flag. Drop the connection lock
5086         while waiting on the condvar. Hopefully these are baby steps in
5087         roughly the right direction.
5088
5089 2005-02-13  Havoc Pennington  <hp@redhat.com>
5090
5091         * dbus/dbus-connection.c: use separate mutexes for the condition
5092         variables; this is some kind of baseline for sanity, but the
5093         condition variables still aren't used correctly afaict
5094
5095 2005-02-13  Havoc Pennington  <hp@redhat.com>
5096
5097         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5098         fix a double-unlock
5099
5100         * dbus/dbus-connection.c
5101         (_dbus_connection_detach_pending_call_unlocked): add this
5102
5103         Initial semi-correct pass through to fix thread locking; there are
5104         still some issues with the condition variable paths I'm pretty
5105         sure
5106         
5107         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
5108         lock/unlock calls
5109
5110         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
5111         rename to add _unlocked
5112         (struct DBusConnection): move "dispatch_acquired" and
5113         "io_path_acquired" to use only one bit each.
5114         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
5115         (dbus_connection_set_watch_functions): hacky fix to reentrancy
5116         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
5117         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
5118         (_dbus_connection_remove_timeout) 
5119         (_dbus_connection_toggle_timeout): drop lock when calling out to
5120         user functions; done in a hacky/bad way.
5121         (_dbus_connection_send_and_unlock): add a missing unlock
5122         (_dbus_connection_block_for_reply): add a missing unlock
5123
5124         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5125         drop lock in a hacky probably unsafe way to call out to user
5126         function
5127
5128 2005-02-12  Havoc Pennington  <hp@redhat.com>
5129
5130         * tools/dbus-tree-view.c (info_set_func_text): display more
5131         details on args
5132
5133         * bus/driver.c (bus_driver_handle_list_services): list the bus
5134         driver
5135
5136         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
5137
5138         * glib/dbus-gidl.c (signal_info_get_n_args): new function
5139         (method_info_get_n_args): new function
5140
5141 2005-02-12  Havoc Pennington  <hp@redhat.com>
5142
5143         * bus/driver.c (bus_driver_handle_introspect): add introspection
5144         for bus driver
5145
5146 2005-02-12  Havoc Pennington  <hp@redhat.com>
5147
5148         * bus/driver.c: put the signature of each bus driver method in the
5149         table of handlers and check it on incoming calls; this isn't
5150         really useful, but going to add introspect support in a minute.
5151
5152 2005-02-11  Joe Shaw  <joeshaw@novell.com>
5153
5154         * mono/Connection.cs: The unpredictability of finalizers in mono
5155         prevents us from deterministically disconnecting the filters from
5156         the Service class's finalizer, so move tracking of filters and
5157         matches here.  Add API for that.
5158
5159         * mono/Service.cs: Remove the code, add code which calls the
5160         methods now on the Connection class.
5161
5162 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
5163
5164         * python/dbus.py (class Sender): added to support dbus signals better
5165         (Bus::add_signal_receiver): added expand_args parameter which defaults
5166         to True.  When expand args is True the signal handler will pass the 
5167         message arguments as parameters to the signal handler.  If False
5168         revert to previous behavior where the signal handler must get the
5169         argument list from the message.  This is to help port applications
5170         like HAL that have a tendancy to send variable length argument lists.
5171         self._match_rule_to_receivers is now a dict of dicts.
5172         (Bus::remove_signal_receiver): pop handler off the dict intead of 
5173         removing it from a list
5174         (Bus::_signal_func): change signal handlers so that interface,
5175         signal_name, service, path and message are packed into a Sender
5176         object and that is passed to the handler.  If expand_args is True
5177         extract the args list from the message and append it to the parameter
5178         list
5179         
5180         * python/dbus_bindings.pyx.in (class Signature): added to support 
5181         signiature types
5182         (MessageIter::__init__): changed iteration limit to match D-BUS
5183         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
5184         STRUCT and VARIENT type support
5185         (MessageIter::python_value_to_dbus_sig): made recursive to support
5186         recursive types
5187         (MessageIter::append*): added Signature, dict, tuple 
5188         support
5189
5190         * python/examples/example-client.py: added examples of getting tuples
5191         and dicts
5192
5193         * python/examples/example-service.py: added examples of sending tuples
5194         and dicts
5195
5196         * python/examples/example-signal-recipient.py: Fixed to handle new
5197         signal callback format
5198
5199 2005-02-10  Havoc Pennington  <hp@redhat.com>
5200
5201         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
5202         (call dbus_g_proxy_add_signal)
5203
5204         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5205         escape the hostname
5206         (_dbus_server_new_for_domain_socket): escape the path
5207
5208         * dbus/dbus-address.c (dbus_address_escape_value): new
5209         (dbus_address_unescape_value): new
5210         (dbus_parse_address): unescape values
5211
5212         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
5213
5214         * doc/dbus-specification.xml: explain how to escape values in
5215         addresses
5216
5217 2005-02-10  Havoc Pennington  <hp@redhat.com>
5218
5219         * dbus/dbus-message-factory.c (generate_special): modify test to
5220         avoid using a non-basic dict key
5221
5222         * dbus/dbus-marshal-validate-util.c: add test for the below
5223
5224         * doc/dbus-specification.xml: require that dict keys are a basic
5225         type
5226
5227         * dbus/dbus-marshal-validate.c
5228         (_dbus_validate_signature_with_reason): require that dict key is a
5229         basic type
5230
5231 2005-02-10  Havoc Pennington  <hp@redhat.com>
5232
5233         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
5234         change to be _and_unlock instead of _unlocked
5235
5236         * dbus/dbus-connection.c
5237         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
5238         have no_update so we can find this bug quickly in future
5239
5240 2005-02-10  Havoc Pennington  <hp@redhat.com>
5241
5242         * dbus/dbus-message-util.c (verify_test_message): tests for string
5243         array
5244
5245         * dbus/dbus-message.c (dbus_message_append_args_valist): add
5246         support for arrays of string/signature/path
5247
5248 2005-02-10  Joe Shaw  <joeshaw@novell.com>
5249
5250         * dbus/dbus-connection.c
5251         (_dbus_connection_queue_received_message_link,
5252         _dbus_connection_message_sent): Add the path to
5253         the verbose output.
5254         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
5255         _dbus_connection_send_preallocated_unlocked(), updated the
5256         dispatch status, and unlocks.  Fixes a bug where certain
5257         situations (like a broken pipe) could cause a Disconnect message
5258         to not be sent, tricking the bus into thinking a service was still
5259         there when the process had quit.
5260         (_dbus_connection_send_preallocated): Call
5261         _dbus_connection_send_preallocated_and_unlock().
5262         (_dbus_connection_send_and_unlock): Added.  Calls
5263         _dbus_connection_send_preallocated_and_unlock().
5264         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
5265         (dbus_connection_send_with_reply): Update the dispatch status and
5266         unlock.
5267
5268         * mono/Service.cs (~Service): Added.  Removes the filter so that
5269         we don't get unmanaged code calling back into a GCed delegate.
5270         (RemoveFilter); Added.
5271
5272 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
5273
5274         * dbus/dbus-message.c (dbus_message_iter_open_container):
5275         - Removed check for iterator type being an array because
5276         get_arg_type does not work with writer iterators
5277         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
5278
5279 2005-02-07  Havoc Pennington  <hp@redhat.com>
5280
5281         * doc/dbus-specification.xml: some more language cleanups; add
5282         stuff about how to deal with invalid protocol and extension
5283         points; add _ to allowed chars in auth commands; add EXTENSION_
5284         auth command prefix
5285
5286 2005-02-06  Havoc Pennington  <hp@redhat.com>
5287
5288         * s/expected/required/ in a couple places for clarity
5289
5290 2005-02-07  Colin Walters  <walters@verbum.org>
5291
5292         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
5293         sender or proposed_recipient.
5294
5295 2005-02-06  Havoc Pennington  <hp@redhat.com>
5296
5297         * dbus/dbus-message-factory.c (generate_special): more tests
5298
5299         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
5300         array length that exceeds the maximum
5301
5302 2005-02-05  Havoc Pennington  <hp@redhat.com>
5303
5304         * dbus/dbus-message-factory.c (generate_special): more test cases,
5305         increasing coverage
5306
5307         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
5308         reason why a signature was invalid
5309
5310         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
5311         skip the length of the string before we look at it in validation
5312
5313         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
5314         equal_substring
5315
5316         * dbus/dbus-message.c (_dbus_message_loader_new): default
5317         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
5318
5319 2005-02-05  Havoc Pennington  <hp@redhat.com>
5320
5321         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
5322         if the signature of a variant was empty
5323         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
5324         struct with no element type)
5325
5326         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
5327         mangled messages to break things
5328
5329 2005-02-04  Havoc Pennington  <hp@redhat.com>
5330
5331         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
5332         g_quark_try_string() so it actually can return 0
5333         (dbus_g_proxy_connect_signal): ditto
5334
5335 2005-02-04  Havoc Pennington  <hp@redhat.com>
5336
5337         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
5338         bogus warning
5339         (tristring_from_message): assert cleanly on null path/interface
5340         (should not be possible though I decided later)
5341         (dbus_g_proxy_dispose): move proxy manager unregistration here
5342         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
5343         g_return_if_fail() checks
5344
5345 2005-02-04  Havoc Pennington  <hp@redhat.com>
5346
5347         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
5348
5349         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
5350         (with some minor changes)
5351
5352         * doc/dbus-specification.xml: add deprecated attribute to
5353         introspection format
5354
5355 2005-01-31  Havoc Pennington  <hp@redhat.com>
5356
5357         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
5358         think it's sort of right
5359
5360 2005-01-30  Havoc Pennington  <hp@redhat.com>
5361
5362         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
5363
5364 2005-01-30  Havoc Pennington  <hp@redhat.com>
5365
5366         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
5367
5368         * autogen.sh: change to autotools 1.9
5369
5370         * glib/dbus-gproxy.c: completely change how signals work
5371         (dbus_g_proxy_add_signal): new function to specify signature of a
5372         signal
5373         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
5374         and g_warning if the incoming message has the wrong signature.
5375
5376 2005-01-30  Havoc Pennington  <hp@redhat.com>
5377
5378         * tools/dbus-names-model.c (have_names_notify): fix this
5379
5380         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
5381         up the string array handling a bit 
5382
5383 2005-01-30  Havoc Pennington  <hp@redhat.com>
5384
5385         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
5386         (dbus_g_pending_call_cancel): new function
5387
5388         * dbus/dbus-glib.h: move GType decls for connection/message here;
5389         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
5390         here, just kind of rationalizing how we handle all that
5391
5392         * tools/dbus-names-model.c: new file for a tree model listing the
5393         services on a bus
5394
5395         * tools/dbus-tree-view.c (model_new): use proper typing on the
5396         model rows
5397
5398 2005-01-30  Havoc Pennington  <hp@redhat.com>
5399
5400         * glib/dbus-gmain.c: add a custom GSource back that just checks
5401         whether the message queue has anything in it; otherwise, there are 
5402         cases where we won't see messages in the queue since there was no 
5403         IO visible to the glib main loop
5404
5405         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
5406         increase default message timeout to 25 seconds
5407
5408 2005-01-30  Havoc Pennington  <hp@redhat.com>
5409
5410         * test/glib/test-profile.c (no_bus_stop_server): remove the
5411         warning about the g_warning that I just fixed
5412
5413         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
5414         custom source, seems to be a lot easier to understand and work
5415         better.
5416
5417 2005-01-30  Havoc Pennington  <hp@redhat.com>
5418
5419         I think this main loop thing is conceptually broken, but here are 
5420         some band aids. I'll maybe rewrite it in a minute.
5421         
5422         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
5423         custom GSource, so don't pass it in; confusing
5424         (gsource_server_finalize, gsource_connection_finalize): add
5425         finalize handlers that remove all the watches.  
5426
5427 2005-01-30  Havoc Pennington  <hp@redhat.com>
5428
5429         * glib/dbus-gobject.c (introspect_properties): fix the XML
5430         generated
5431
5432         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
5433         which effectively detects the use of freed messages
5434
5435         * glib/dbus-gobject.c (handle_introspect): modify and return the
5436         reply message instead of the incoming message
5437
5438         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
5439         gee, maybe it should SEND THE XML instead of just making a string
5440         and freeing it again ;-)
5441
5442         * tools/dbus-print-message.c (print_message): improve printing of
5443         messages
5444
5445         * configure.in: add debug-glib.service to the output
5446
5447 2005-01-30  Havoc Pennington  <hp@redhat.com>
5448
5449         dbus-viewer introspected and displayed the bus driver
5450         
5451         * dbus/dbus-object-tree.c 
5452         (object_tree_test_iteration): add tests for a handler registered on "/"
5453
5454         * dbus/dbus-object-tree.c
5455         (_dbus_decompose_path): fix to handle path "/" properly
5456         (run_decompose_tests): add tests for path decomposition
5457         
5458         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
5459         properly
5460
5461         * glib/dbus-gobject.c (handle_introspect): fix quotes
5462
5463         * test/glib/run-test.sh: support launching the bus, then running
5464         dbus-viewer
5465
5466         * test/glib/test-service-glib.c (main): put in a trivial gobject
5467         subclass and register it on the connection
5468
5469         * bus/driver.c (bus_driver_handle_introspect): implement
5470         introspection of the bus driver service
5471
5472         * dbus/dbus-protocol.h: add #defines for the XML namespace,
5473         identifiers, doctype decl
5474
5475         * bus/driver.c (bus_driver_handle_get_service_owner): handle
5476         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
5477         returning the service unchanged.
5478         (bus_driver_handle_message): remove old check for reply_serial in
5479         method calls, now the message type deals with that
5480         (bus_driver_handle_message): handle NULL interface
5481
5482         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
5483
5484         * glib/dbus-gloader-expat.c (description_load_from_string): allow
5485         -1 for len
5486
5487         * tools/dbus-viewer.c: add support for introspecting a service on
5488         a bus
5489
5490         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
5491         (dbus_g_pending_call_unref): add
5492
5493 2005-01-29  Havoc Pennington  <hp@redhat.com>
5494
5495         * tools/dbus-tree-view.c: add support for displaying properties.
5496         (run dbus-viewer with an introspect xml file as arg, then resize
5497         the window so the tree elements show up, not sure what that is)
5498
5499         * glib/dbus-gobject.c (handle_introspect): return
5500         org.freedesktop.Properties and org.freedesktop.Introspectable
5501         interfaces when we are introspected.
5502
5503         * doc/dbus-specification.xml: allow empty interface name when 
5504         Get/Set a property
5505
5506 2005-01-29  Havoc Pennington  <hp@redhat.com>
5507
5508         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
5509         though it uses glib, it could be extended for any binding in
5510         principle
5511
5512         * glib/dbus-gobject.c (gobject_message_function): change to the
5513         new way properties work
5514
5515         * dbus/dbus-protocol.h: add the new interfaces
5516
5517         * doc/dbus-specification.xml: document the introspection format,
5518         Introspectable interface, and add an org.freedesktop.Properties
5519         interface.
5520
5521         * glib/dbus-gparser.c: add support for a <property> element
5522
5523         * glib/dbus-gidl.c: add PropertyInfo
5524
5525         * glib/dbus-gobject.c (handle_introspect): put the outermost
5526         <node> outside the signal and property descriptions.
5527         (introspect_properties): export properties as <property> rather
5528         than as method calls
5529
5530 2005-01-28  Havoc Pennington  <hp@redhat.com>
5531
5532         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
5533         related to authentication protocol
5534
5535 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
5536
5537         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
5538                 - BUS_ACTIVATION -> BUS_STARTER
5539                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
5540                 - class MessageIter (__init__): Added recursion checking 
5541                 so we throw a nice error instead of just disconnecting from the
5542                 bus.
5543                 (get): Added arg_type parameter for recursion.
5544                 Removed the nil type
5545                 Added signiture type placeholder (not implemented)
5546                 Added struct type placeholder (not implemented)
5547                 Added varient type placeholder (not implemented)
5548                 Commented out dict type for now     
5549                 (get_element_type): renamed from get_array_type
5550                 (get_*): changed to use the dbus_message_iter_get_basic API
5551                 (get_*_array): removed in favor of recursive get_array method
5552                 (get_array): new recursive method which calls get to marshal
5553                 the elements of the array
5554                 (value_to_dbus_sig): New method returns the corrasponding
5555                 dbus signiture to a python value
5556                 (append): Comment out dict handling for now
5557                 Handle lists with the new recursive API
5558                 Comment out None handling for now
5559                 (append_nil): removed
5560                 (append_*): changed to use dbus_message_iter_append_basic API
5561                 (append_*_array): removed in favor of recursive append_array 
5562                 method
5563                 (__str__): Make it easier to print out recursive iterators
5564                 for debugging
5565                 - class Message (__str__): moved type inspection to the
5566                 MessageIter class' __str__ method
5567                 (get_iter): Added an append parameter wich defaults to False
5568                 If True use the new API's to create an append iterator
5569
5570         * python/dbus.py: Update to use new bindings API
5571                 - TYPE_ACTIVATION -> TYPE_STARTER
5572                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
5573                 - class ActivationBus -> class StarterBus
5574                 - class RemoteObject (__call__): get an append iterator
5575                 - (_dispatch_dbus_method_call): get an append iterator
5576                 - class Object (emit_signal): get an append iterator
5577
5578         * python/examples/: Fixed up the examples to work with the new API
5579                 
5580 2005-01-28  Joe Shaw  <joeshaw@novell.com>
5581
5582         * configure.in: Bump version up to 0.30.
5583
5584         * HACKING: Add a release item to bump the version number up after 
5585         a release.
5586
5587 2005-01-28  Havoc Pennington  <hp@redhat.com>
5588
5589         * doc/dbus-specification.xml: update to describe 16-bit types and
5590         dict entries
5591
5592         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
5593         assertion
5594
5595         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
5596         type
5597
5598         * dbus/dbus-marshal-recursive.c: implement
5599
5600 2005-01-27  Havoc Pennington  <hp@redhat.com>
5601
5602         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
5603
5604         * configure.in: find the right type for 16 and 32 bit ints as well
5605         as 64
5606
5607         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
5608         the 16-bit types so people don't have to stuff them in 32-bit or
5609         byte arrays.
5610
5611 2005-01-27  Havoc Pennington  <hp@redhat.com>
5612
5613         * dbus/dbus-message.c: byteswap the message if you init an
5614         iterator to read/write from it
5615         
5616         * dbus/dbus-marshal-byteswap.c: new file implementing 
5617         _dbus_marshal_byteswap()
5618
5619         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
5620
5621 2005-01-26  Havoc Pennington  <hp@redhat.com>
5622         
5623         * dbus/dbus-marshal-validate-util.c: break this out (and fix
5624         build, apparently - nobody noticed?)
5625         
5626 2005-01-26  Havoc Pennington  <hp@redhat.com>
5627
5628         * dbus/dbus-marshal-recursive.h: remove todo comment
5629
5630 2005-01-25  Joe Shaw  <joeshaw@novell.com>
5631
5632         * Land the mono binding changes to conform to the new APIs.
5633
5634         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
5635         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
5636
5637         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
5638         type code as a string.
5639         (InitAppending): Rename dbus_message_append_iter_init() to
5640         dbus_message_iter_init_append().
5641
5642         * mono/BusDriver.cs: Rename ServiceEventHandler to
5643         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
5644         Rename ServiceOwnerChanged to NameOwnerChanged.
5645
5646         * mono/Connection.cs: Rename BaseService to UniqueName, and the
5647         underlying C call.
5648
5649         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
5650
5651         * mono/Service.cs: Rename Exists to HasOwner, internally rename
5652         dbus_bus_acquire_service() to dbus_bus_request_name().
5653
5654         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
5655         of Type.UnderlyingSystemType to get the correct element type for
5656         the array.
5657         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
5658         dbus_message_get_{element|arg}_type() instead of
5659         dbus_message_iter_init_array_iterator().
5660         (Append): Replace dbus_message_iter_append_array() with
5661         dbus_message_iter_open_container() and
5662         dbus_message_iter_close_container().
5663
5664         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
5665         types have been removed.
5666         
5667         * mono/DBusType/*.cs: Replace calls of
5668         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
5669         but specify the type in the DllImport extern declaration.  Ditto
5670         for dbus_message_iter_append_[type]() ->
5671         dbus_message_iter_append_basic().
5672
5673         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
5674         NameOwnerChangedHandler.
5675
5676 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
5677
5678         * python/dbus_bindings.pyx.in: Rename of methods and bindings
5679                 - get_base_service -> get_unique_name
5680                 - bus_get_base_service -> bus_get_unique_name
5681                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
5682                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
5683                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
5684                 - bus_activate_service -> bus_start_service_by_name
5685                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
5686                 - bus_acquire_service -> bus_request_name
5687                 - dbus_bus_acquire_service -> dbus_bus_request_name
5688                 - bus_service_exists -> bus_name_has_owner
5689                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
5690
5691         * python/dbus.py: Rename of methods
5692                 - activate_service -> start_service_by_name
5693                 - bus_acquire_service -> bus_request_name
5694                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
5695                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
5696
5697         
5698 2005-01-24  Joe Shaw  <joeshaw@novell.com>
5699
5700         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
5701         signature for the method that can't be found.
5702
5703         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
5704         the message has any arguments, we need to call
5705         _dbus_type_reader_get_current_type(), not
5706         _dbus_type_reader_has_next().
5707
5708 2005-01-24  Havoc Pennington  <hp@redhat.com>
5709
5710         * dbus/dbus-message-factory.c: more testing of message validation
5711
5712         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
5713         header
5714
5715 2005-01-23  Havoc Pennington  <hp@redhat.com>
5716
5717         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
5718         get this all working, not many tests in the framework yet though
5719
5720 2005-01-22  Havoc Pennington  <hp@redhat.com>
5721
5722         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
5723         tutorial, based on work from David Wheeler.
5724
5725 2005-01-21  Havoc Pennington  <hp@redhat.com>
5726
5727         * dbus/dbus-bus.c: add more return_if_fail checks
5728
5729         * dbus/dbus-message.c (load_message): have the "no validation"
5730         mode (have to edit the code to toggle the mode for now though)
5731
5732         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
5733         skips all validation; I want to use this at least for benchmark
5734         baseline, I'm not sure if it should be a publicly-available switch.
5735
5736 2005-01-21  Havoc Pennington  <hp@redhat.com>
5737
5738         * glib/dbus-gmain.c: don't put the GLib bindings in the same
5739         toplevel doxygen group as the low-level API stuff
5740
5741         * dbus/dbus.h: note that libdbus is the low-level API
5742
5743 2005-01-20  Havoc Pennington  <hp@redhat.com>
5744
5745         * update-dbus-docs.sh: script to update docs on the web site, only
5746         works for me though. neener.
5747
5748 2005-01-20  Havoc Pennington  <hp@redhat.com>
5749
5750         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
5751         code can reveal bugs in it
5752
5753 2005-01-20  Havoc Pennington  <hp@redhat.com>
5754
5755         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
5756         select() version, patches from Tor Lillqvist
5757
5758 2005-01-20  Havoc Pennington  <hp@redhat.com>
5759
5760         * doc/dbus-tutorial.xml: replace > with &gt;
5761
5762         * bus/services.c (bus_registry_acquire_service): validate the name
5763         and return a better error if it's no good.
5764
5765         * doc/dbus-specification.xml: note NO_AUTO_START change
5766
5767         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
5768         from AUTO_START, we're toggling the default
5769
5770         * bus/dispatch.c: adapt the tests to change of auto-start default
5771
5772 2005-01-18  Havoc Pennington  <hp@redhat.com>
5773
5774         * rename dbus-daemon-1 to dbus-daemon throughout
5775
5776 2005-01-18  Havoc Pennington  <hp@redhat.com>
5777
5778         * Throughout, grand renaming to strip out the use of "service",
5779         just say "name" instead (or "bus name" when ambiguous).  Did not
5780         change the internal code of the message bus itself, only the
5781         programmer-facing API and messages.
5782         
5783         * doc/dbus-specification.xml: further update the message bus section
5784         
5785         * bus/config-parser.c (all_are_equiv): fix bug using freed string
5786         in error case
5787
5788 2005-01-17  Havoc Pennington  <hp@redhat.com>
5789
5790         * dbus/dbus-types.h: remove 16-bit types since we don't use them
5791         ever
5792
5793         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
5794         "invalid name character" not only non-ASCII
5795
5796         * doc/dbus-specification.xml: further update spec, message bus 
5797         parts are still out-of-date but the marshaling etc. stuff is now
5798         accurate-ish
5799
5800 2005-01-17  Havoc Pennington  <hp@redhat.com>
5801
5802         * doc/dbus-specification.xml: partially update spec
5803
5804 2005-01-17  Havoc Pennington  <hp@redhat.com>
5805
5806         * Throughout, align variant bodies according to the contained
5807         type, rather than always to 8. Should save a fair bit of space in
5808         message headers.
5809         
5810         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
5811         fix handling of case where p == end
5812
5813         * doc/TODO: remove the dbus_bool_t item and variant alignment items
5814
5815 2005-01-17  Havoc Pennington  <hp@redhat.com>
5816
5817         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
5818
5819         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
5820         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
5821         are marshaling/unmarshaling a boolean.
5822
5823 2005-01-16  Havoc Pennington  <hp@redhat.com>
5824
5825         This is about it on what can be disabled/deleted from libdbus
5826         easily, back below 150K anyhow. Deeper cuts are more work than 
5827         just turning the code off as I've done here.
5828         
5829         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
5830         signed int convenience funcs
5831
5832         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
5833         verbose mode
5834
5835         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
5836         things out of libdbus
5837
5838         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
5839         
5840         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
5841         tests-enabled-only, though it should probably be deleted)
5842
5843         * dbus/dbus-message-util.c: same stuff
5844
5845         * dbus/dbus-auth-util.c: same stuff
5846
5847 2005-01-16  Havoc Pennington  <hp@redhat.com>
5848
5849         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
5850
5851         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
5852         way for stripping down dbus-userdb.c stuff included in libdbus.
5853         Rename _dbus_parse_uid for consistency.
5854
5855 2005-01-16  Havoc Pennington  <hp@redhat.com>
5856
5857         * dbus/dbus-internals.c (_dbus_real_assert): print the function
5858         name the assertion failed in
5859
5860         * dbus/dbus-internals.h (_dbus_return_if_fail) 
5861         (_dbus_return_val_if_fail): assert that the name of the function
5862         containing the check doesn't start with '_', since we only want to 
5863         use checks on public functions
5864         
5865         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
5866         checks to assertions
5867
5868         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
5869         change checks to asserts for private function
5870
5871         * dbus/dbus-message.c (_dbus_message_set_serial): checks
5872         to asserts for private function
5873
5874         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
5875         broken assertion that was breaking make check
5876         (_dbus_type_reader_array_is_empty): remove this rather than fix
5877         it, was only used in assertions
5878
5879 2005-01-16  Havoc Pennington  <hp@redhat.com>
5880
5881         * test/unused-code-gc.py: hacky script to find code that's used
5882         only by the bus (not libdbus) or used only by tests or not used at
5883         all. It has some false alarms, but looks like we can clean up a
5884         lot of size from libdbus.
5885
5886         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
5887         dbus/Makefile.am: initially move 10K of binary size out of libdbus
5888         
5889 2005-01-16  Havoc Pennington  <hp@redhat.com>
5890
5891         * Add and fix docs according to Doxygen warnings throughout
5892         source.
5893         
5894         * dbus/dbus-marshal-recursive.c
5895         (_dbus_type_reader_array_is_empty): change this to just call
5896         array_reader_get_array_len() and make it static
5897
5898         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
5899         from get_array_type
5900         (dbus_message_iter_init_append): rename from append_iter_init
5901
5902         * dbus/dbus-marshal-recursive.c
5903         (_dbus_type_reader_get_element_type): rename from
5904         _dbus_type_reader_get_array_type
5905
5906 2005-01-15  Havoc Pennington  <hp@redhat.com>
5907
5908         * test/glib/test-profile.c (with_bus_server_filter): fix crash
5909
5910         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
5911         when DBUS_DISABLE_ASSERT
5912         (_dbus_marshal_set_basic): be sure we align for the string length
5913
5914         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
5915         this look faster
5916
5917         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
5918         inline macro version
5919         (_dbus_string_set_byte): provide inline macro version
5920
5921 2005-01-15  Havoc Pennington  <hp@redhat.com>
5922
5923         * Land the new message args API and type system.
5924
5925         This patch is huge, but the public API change is not 
5926         really large. The set of D-BUS types has changed somewhat, 
5927         and the arg "getters" are more geared toward language bindings;
5928         they don't make a copy, etc.
5929
5930         There are also some known issues. See these emails for details
5931         on this huge patch:
5932         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
5933         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
5934         
5935         * dbus/dbus-marshal-*: all the new stuff
5936
5937         * dbus/dbus-message.c: basically rewritten
5938
5939         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
5940         freed blocks to be all non-nul bytes so using freed memory is less
5941         likely to work right
5942
5943         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
5944         DBUS_FAIL_MALLOC=N environment variable, so you can do
5945         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
5946         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
5947         thorough.
5948
5949         * qt/message.cpp: port to the new message args API
5950         (operator<<): use str.utf8() rather than str.unicode()
5951         (pretty sure this is right from the Qt docs?)
5952
5953         * glib/dbus-gvalue.c: port to the new message args API
5954
5955         * bus/dispatch.c, bus/driver.c: port to the new message args API
5956
5957         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
5958         "locked" flag to TRUE and align_offset to 0; I guess we never
5959         looked at these anyhow, but seems cleaner.
5960
5961         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
5962         move allocation padding macro to this header; use it to implement
5963         (_DBUS_STRING_STATIC): ability to declare a static string.
5964
5965         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
5966         change to return TRUE if the interface is not set.
5967
5968         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
5969         to dbus-marshal-validate.[hc]
5970
5971         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
5972         dbus-internals.c
5973
5974         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
5975         to dbus-marshal-*.[hc]
5976
5977         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
5978         function here from dbus-marshal.c
5979
5980 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5981
5982         * NEWS: Update for 0.23.
5983
5984         * configure.in: Release 0.23.
5985
5986 2005-01-12  Joe Shaw  <joeshaw@novell.com>
5987
5988         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
5989         dbus DLL with --debug.  Clean up after the .mdb files this leaves
5990         behind.
5991
5992         * mono/doc/Makefile.am: Need to uninstall the docs on "make
5993         uninstall"
5994
5995         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
5996         is an enum, get the enum's underlying type.  Another mono
5997         1.1.3 fix.
5998
5999 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6000
6001         Patch from Sjoerd Simons <sjoerd@luon.net>
6002
6003         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6004         DESTDIR.  It breaks stuff.
6005
6006 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6007
6008         Patch from Tambet Ingo <tambet@ximian.com>
6009
6010         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6011         calling type.GetElementType().  The code previously depended on
6012         broken Mono behavior, which was fixed in Mono 1.1.3.
6013
6014         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6015         Activator.CreateInstance() so that the class's constructor is
6016         called with the right parameters.
6017
6018 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6019
6020         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6021
6022         * dbus/dbus-connection.c
6023         (_dbus_connection_queue_received_message_link): Call
6024         _dbus_connection_remove_timeout() instead of the _locked()
6025         variant, since it's always called from
6026         _dbus_connection_handle_watch(), which handles the locking.
6027         Removed the _locked() variant since it's no longer used.
6028
6029 2005-01-03  Havoc Pennington  <hp@redhat.com>
6030
6031         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6032         return
6033         
6034 2004-12-26  Havoc Pennington  <hp@redhat.com>
6035
6036         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6037
6038 2005-01-03  Havoc Pennington  <hp@redhat.com>
6039
6040         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6041         floating point
6042
6043         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6044
6045 2005-01-02  Havoc Pennington  <hp@redhat.com>
6046
6047         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6048
6049 2005-01-01  Havoc Pennington  <hp@redhat.com>
6050
6051         * configure.in: add -Wfloat-equal
6052
6053 2005-01-01  Havoc Pennington  <hp@redhat.com>
6054
6055         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6056         for a variety of reasons '==' doesn't do this.
6057
6058 2004-12-31  Havoc Pennington  <hp@redhat.com>
6059
6060         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6061         I keep wishing I had
6062
6063 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6064
6065         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6066
6067 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6068
6069         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6070         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6071         dbus-protocol.h.  Because they are defines and not enums they are not
6072         autogenerated.
6073
6074 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6075
6076         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6077         dbus_bus_activate_service
6078
6079         * python/dbus.py (Bus.activate_service): activate a service on the
6080         bus.
6081
6082 2004-12-24  Havoc Pennington  <hp@redhat.com>
6083
6084         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
6085         file format has also changed and I haven't adapted to that yet
6086         
6087         * Makefile.am: load .gcno files from latest gcc
6088
6089 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
6090         * Patch from Rob Taylor <robtaylor@fastmail.fm>
6091
6092         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
6093         lowlevel binding
6094
6095         * python/dbus.py (get_unix_user): Added binding to 
6096         call dbus_bindings.bus_get_unix_user
6097
6098         * python/extract.py: Modified the proto_pat regex to
6099         handle unsigned long
6100
6101 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6102
6103         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
6104         better POSIX compliance.
6105
6106 2004-12-19  Havoc Pennington  <hp@redhat.com>
6107
6108         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
6109         (_dbus_string_insert_8_aligned): new functions
6110
6111         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
6112
6113 2004-12-18  Havoc Pennington  <hp@redhat.com>
6114
6115         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
6116         macro
6117
6118         * dbus/dbus-message.c: fix a comment, and add a still-unused
6119         not-implemented function
6120
6121         * dbus/dbus-marshal.h: fix comment
6122
6123         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
6124
6125 2004-12-17  Joe Shaw  <joeshaw@novell.com>
6126
6127         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
6128         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
6129         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
6130         Type.UnderlyingSystemType to get the actual system type
6131         underneath.  This code previously depended on the broken Mono
6132         behavior, which was fixed in 1.1.3.
6133
6134 2004-11-27  Havoc Pennington  <hp@redhat.com>
6135
6136         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
6137         are disabled
6138         (_dbus_string_get_const_data): inline when asserts are disabled
6139
6140         * dbus/dbus-message.c: record the _dbus_current_generation of
6141         creation so we can complain if dbus_shutdown() is used improperly.
6142         Do this only if checks are enabled.
6143
6144         * dbus/dbus-connection.c: ditto
6145         
6146 2004-11-26  Havoc Pennington  <hp@redhat.com>
6147
6148         * test/glib/test-profile.c: add with_bus mode to profile echoes
6149         that go through the bus.
6150
6151         * test/glib/run-test.sh: add ability to run test-profile
6152
6153         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
6154         config file reload.
6155
6156 2004-11-26  Havoc Pennington  <hp@redhat.com>
6157
6158         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
6159         thing was implemented
6160
6161 2004-11-26  Havoc Pennington  <hp@redhat.com>
6162
6163         * test/glib/test-profile.c: tweak a bit, add support for some
6164         made-up minimal malloc overhead with plain sockets, since in 
6165         real life some sort of buffers are unavoidable thus we could 
6166         count them in the theoretical best case
6167
6168 2004-11-26  Havoc Pennington  <hp@redhat.com>
6169
6170         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
6171         where I was trying to cache one too many messages
6172
6173 2004-11-26  Havoc Pennington  <hp@redhat.com>
6174
6175         * dbus/dbus-message.c: reimplement message cache as an array which 
6176         makes the cache about twice as fast and saves maybe 1.5% overall
6177
6178 2004-11-26  Havoc Pennington  <hp@redhat.com>
6179
6180         * dbus/dbus-threads.c (init_global_locks): forgot to put the
6181         message cache lock here
6182
6183 2004-11-26  Havoc Pennington  <hp@redhat.com>
6184
6185         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
6186         the "char byte_order" next to each other to save 4 bytes
6187         (dbus_message_new_empty_header): reduce preallocation, since the
6188         message cache should achieve a similar effect
6189         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
6190         message cache that keeps a few DBusMessage around in a pool,
6191         another 8% speedup or so.
6192
6193         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
6194
6195 2004-11-25  Havoc Pennington  <hp@redhat.com>
6196
6197         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
6198         to write, without reading or blocking, try it before the poll()
6199         and skip the poll() if nothing remains to write. This is about a
6200         3% speedup in the echo client/server
6201
6202 2004-11-25  Havoc Pennington  <hp@redhat.com>
6203
6204         The primary change here is to always write() once before adding
6205         the write watch, which gives us about a 10% performance increase.
6206         
6207         * dbus/dbus-transport-unix.c: a number of modifications to cope
6208         with removing messages_pending
6209         (check_write_watch): properly handle
6210         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
6211         messages_pending stuff
6212         (check_read_watch): properly handle WAITING_FOR_MEMORY and
6213         AUTHENTICATED cases
6214         (unix_handle_watch): after writing, see if the write watch can be
6215         removed
6216         (unix_do_iteration): assert that write_watch/read_watch are
6217         non-NULL rather than testing that they aren't, since they 
6218         aren't allowed to be NULL. check_write_watch() at the end so 
6219         we add the watch if we did not finish writing (e.g. got EAGAIN)
6220
6221         * dbus/dbus-transport-protected.h: remove messages_pending call,
6222         since it resulted in too much inefficient watch adding/removing; 
6223         instead we now require that the transport user does an iteration 
6224         after queueing outgoing messages, and after trying the first
6225         write() we add a write watch if we got EAGAIN or exceeded our 
6226         max bytes to write per iteration setting
6227
6228         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
6229         function
6230
6231         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
6232         freed and then accessed, valgrind flagged this bug, fix it
6233
6234         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
6235         as the last valid field plus 1, where really it is equal to the
6236         last valid field. Corrects some message corruption issues.
6237
6238         * dbus/dbus-mainloop.c: verbosity changes
6239
6240         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
6241         instead of aborting in one of the test codepaths
6242
6243         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
6244         caused not printing the pid ever again if a verbose was missing
6245         the newline at the end
6246         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
6247
6248         * dbus/dbus-connection.c: verbosity changes; 
6249         (dbus_connection_has_messages_to_send): new function
6250         (_dbus_connection_message_sent): no longer call transport->messages_pending
6251         (_dbus_connection_send_preallocated_unlocked): do one iteration to
6252         try to write() immediately, so we can avoid the write watch. This
6253         is the core purpose of this patchset
6254         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
6255         dump the outgoing message queue, so nobody will get confused
6256         trying to send them or thinking stuff is pending to be sent
6257
6258         * bus/test.c: verbosity changes
6259
6260         * bus/driver.c: verbosity/assertion changes
6261
6262         * bus/dispatch.c: a bunch of little tweaks to get it working again
6263         because this patchset changes when/where you need to block.
6264
6265 2004-11-23  Havoc Pennington  <hp@redhat.com>
6266
6267         * test/glib/test-profile.c: modify to accept a plain_sockets
6268         argument in which case it will bench plain sockets instead of
6269         libdbus, for comparison purposes.
6270
6271 2004-11-22  Havoc Pennington  <hp@redhat.com>
6272
6273         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
6274         threads for more time, so sysprof can get a grip on it.
6275
6276         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
6277         pointless variable
6278
6279 2004-11-13  Havoc Pennington  <hp@redhat.com>
6280
6281         * test/glib/test-profile.c: fix this thing up a bit
6282
6283         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
6284         preallocation sizes by a fair bit; not sure if this will be an
6285         overall performance win or not, but it does reduce reallocs.
6286
6287         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
6288         the test hack that forced constant realloc if asserts are
6289         disabled, so we can profile sanely. Sprinkle in some
6290         _DBUS_UNLIKELY() which are probably pointless, but before I
6291         noticed the real performance problem I put them in.
6292         (_dbus_string_validate_utf8): micro-optimize this thing a little
6293         bit, though callgrind says it didn't help; then special-case
6294         ascii, which did help a lot; then be sure we detect nul bytes as
6295         invalid, which is a bugfix.
6296         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
6297         superstition; use memset to nul the padding instead of a manual
6298         loop.
6299         (_dbus_string_get_length): inline this as a
6300         macro; it showed up in the profile because it's used for loop
6301         tests and so forth
6302
6303 2004-11-10  Colin Walters  <walters@verbum.org>
6304
6305         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
6306         for extra paranoia.
6307
6308 2004-11-09  Colin Walters  <walters@verbum.org>
6309
6310         * dbus/dbus-string.c (_dbus_string_get_length): New
6311         function, writes DBusString to C buffer.
6312
6313         * dbus/dbus-string.h: Prototype it.
6314
6315         * dbus/dbus-message.c (dbus_message_type_to_string): New
6316         function, converts message type into C string.
6317
6318         * dbus/dbus-message.h: Prototype it.
6319
6320         * bus/selinux.c (bus_selinux_check): Take source pid,
6321         target pid, and audit data.  Pass audit data to
6322         avc_has_perm.
6323         (log_audit_callback): New function, appends extra
6324         audit information.
6325         (bus_selinux_allows_acquire_service): Also take
6326         service name, add it to audit data.
6327         (bus_selinux_allows_send): Also take message
6328         type, interface, method member, error name,
6329         and destination, and add them to audit data.
6330         (log_cb): Initialize func_audit.
6331         
6332         * bus/selinux.h (bus_selinux_allows_acquire_service)
6333         (bus_selinux_allows_send): Update prototypes 
6334
6335         * bus/services.c (bus_registry_acquire_service): Pass
6336         service name to bus_selinux_allows_acquire_service.
6337
6338         * bus/bus.c (bus_context_check_security_policy): Pass
6339         additional audit data.  Move assignment of dest
6340         to its own line.
6341
6342 2004-11-07  Colin Walters  <walters@verbum.org>
6343
6344         * dbus/dbus-transport-unix.c (do_authentication): Always
6345         initialize auth_completed.
6346         
6347 2004-11-07  Colin Walters  <walters@verbum.org>
6348
6349         * bus/bus.c (load_config): Break into three
6350         separate functions: process_config_first_time_only,
6351         process_config_every_time, and process_config_postinit.
6352         (process_config_every_time): Move call of
6353         bus_registry_set_service_context_table into
6354         process_config_postinit.
6355         (process_config_postinit): New function, does
6356         any processing that needs to happen late
6357         in initialization (and also on reload).
6358         (bus_context_new): Instead of calling load_config,
6359         open config parser here and call process_config_first_time_only
6360         and process_config_every_time directly.  Later, after
6361         we have forked but before changing UID,
6362         invoke bus_selinux_full_init, and then call
6363         process_config_postinit.
6364         (bus_context_reload_config): As in bus_context_new,
6365         load parse file inside here, and call process_config_every_time
6366         and process_config_postinit.
6367
6368         * bus/services.h, bus/services.c
6369         (bus_registry_set_service_context_table): Rename
6370         from bus_registry_set_sid_table.  Take string hash from config
6371         parser, and convert them here into SIDs.
6372
6373         * bus/config-parser.c (struct BusConfigParser): Have
6374         config parser only store a mapping of service->context
6375         string.
6376         (merge_service_context_hash): New function.
6377         (merge_included): Merge context string hashes instead
6378         of using bus_selinux_id_table_union.
6379         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
6380         simply create a new string hash.
6381         (bus_config_parser_unref): Unref it.
6382         (start_selinux_child): Simply insert strings into hash,
6383         don't call bus_selinux_id_table_copy_over.
6384
6385         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
6386         (bus_selinux_id_table_copy_over): Delete.
6387
6388 2004-11-03  Colin Walters  <walters@verbum.org>
6389
6390         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
6391         variables.
6392         
6393 2004-11-03  Colin Walters  <walters@verbum.org>
6394
6395         * bus/test-main.c (test_pre_hook): Fix test logic,
6396         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
6397
6398 2004-11-02  Colin Walters  <walters@redhat.com>
6399
6400         * bus/selinux.c (bus_selinux_init): Split into two functions,
6401         bus_selinux_pre_init and bus_selinux_post_init.
6402         (bus_selinux_pre_init): Just determine whether SELinux is
6403         enabled.
6404         (bus_selinux_post_init): Do everything else.
6405
6406         * bus/main.c (main): Call bus_selinux_pre_init before parsing
6407         config file, and bus_selinux_post_init after.  This ensures that
6408         we don't lose the policyreload notification thread that
6409         bus_selinux_init created before forking previously.
6410         
6411         * bus/test-main.c (test_pre_hook): Update for split.
6412
6413 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
6414
6415         Patch from Johan Fischer <linux@fischaz.com>
6416         
6417         * mono/doc/Makefile.am (install-data-local): Added directory
6418         install for DESTDIR
6419
6420 2004-10-29  Colin Walters  <walters@redhat.com>
6421
6422         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
6423         parameter for fd to write pid to.       
6424
6425         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
6426         
6427         * bus/bus.c (bus_context_new): Pass print_pid_fd
6428         to _dbus_become_daemon (bug #1720)
6429
6430 2004-10-29  Colin Walters  <walters@redhat.com>
6431
6432         Patch from Ed Catmur <ed@catmur.co.uk>
6433
6434         * mono/doc/Makefile.am (install-data-local): Handle
6435         DESTDIR.
6436
6437 2004-10-29  Colin Walters  <walters@redhat.com>
6438
6439         * bus/.cvsignore, qt/.cvsignore: Update.
6440
6441 2004-10-29  Colin Walters  <walters@redhat.com>
6442
6443         Patch from Kristof Vansant <de_lupus@pandora.be>
6444
6445         * configure.in: Detect Slackware.
6446         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
6447         * bus/rc.messagebus.in: New file.
6448
6449 2004-10-29  Colin Walters  <walters@redhat.com>
6450
6451         * tools/dbus-monitor.c (filter_func): Return
6452         DBUS_HANDLER_RESULT_HANDLED in filter function
6453         for now.  See:
6454         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
6455
6456 2004-10-29  Colin Walters  <walters@redhat.com>
6457
6458         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
6459
6460         * bus/services.c (bus_registry_acquire_service): 
6461         Correctly retrieve service name from DBusString
6462         for printing.
6463
6464 2004-10-29  Colin Walters  <walters@redhat.com>
6465
6466         * dbus/dbus-glib.h: Update documentation to not
6467         refer to internal APIs.
6468
6469 2004-10-27  Joe Shaw  <joeshaw@novell.com>
6470
6471         * mono/Arguments.cs (GetDBusTypeConstructor):
6472         type.UnderlyingSystemType will return "System.Byte" if you do it
6473         on "byte[]", which is not what we want.  So check the type.IsArray
6474         property and use System.Array instead.
6475
6476 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
6477
6478         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
6479         the DBusUserInfo structure since this is passed into the function.
6480         This would cause a double free when the function that allocated
6481         the structure would try to free it when an error occured.
6482
6483         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
6484         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
6485         for service activation to avoid 32bit/64bit parallel install issues
6486
6487 2004-10-21  Colin Walters  <walters@verbum.org>
6488
6489         * AUTHORS: Fix my email address, the @gnu.org one
6490         has been bouncing for some time.  Also add J5.
6491         
6492 2004-10-21  Colin Walters  <walters@verbum.org>
6493
6494         * dbus/dbus-transport-unix.c (do_authentication): Return
6495         authentication status to callers.
6496         (unix_handle_watch): If we completed authentication this round,
6497         don't do another read.  Instead wait until the next iteration,
6498         after we've read any pending data in the auth buffer.
6499         (unix_do_iteration): Ditto.
6500         (unix_handle_watch): Updated for new do_authentication prototype.
6501
6502 2004-10-18  Colin Walters  <walters@verbum.org>
6503
6504         * bus/selinux.c (bus_selinux_enabled): Handle
6505         --disable-selinux case.
6506         
6507 2004-10-18  Colin Walters  <walters@verbum.org>
6508
6509         * bus/selinux.h: Add bus_selinux_enabled.
6510         
6511         * bus/selinux.c (bus_selinux_enabled): Implement it.
6512         
6513         * bus/config-parser.c (struct include): Add
6514         if_selinux_enabled member.
6515         (start_busconfig_child): Parse if_selinux_enabled
6516         attribute for include.
6517         (bus_config_parser_content): Handle it.
6518
6519         * bus/session.conf.in, bus/system.conf.in: Add
6520         inclusion of context mapping to default config files;
6521         conditional on SELinux being enabled.
6522         
6523         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
6524         
6525         * test/data/invalid-config-files/badselinux-1.conf, 
6526         test/data/invalid-config-files/badselinux-2.conf:
6527         Test files for bad syntax.
6528         
6529 2004-10-17  Colin Walters  <walters@verbum.org>
6530
6531         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
6532         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
6533         format specifier mismatches.
6534
6535 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6536
6537         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
6538         format string.
6539
6540         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
6541         pointer (bug #1540, Leonardo Boiko).
6542
6543 2004-09-28  Jon Trowbridge  <trow@ximian.com>
6544
6545         * mono/BusDriver.cs: Changed BusDriver struct to remove
6546         the ServiceCreated and ServiceDeleted events and replace them
6547         with the new ServiceOwnerChanged event.
6548
6549         * mono/example/BusListener.cs: Added a new example program,
6550         which listens for and reports any ServiceOwnerChanged events
6551         on the bus driver.
6552
6553         * mono/example/Makefile.am (DESTDIR): Build changes for the
6554         new BusListener.cs example.
6555
6556 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6557
6558         * bus/signals.c (bus_match_rule_parse): validate the components of
6559         match rules (bug #1439).
6560
6561         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
6562
6563 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6564
6565         * doc/dbus-specification.xml: document ServiceOwnerChanged
6566         signal.
6567         
6568         * bus/driver.c, bus/driver.h, bus/services.c: Use
6569         ServiceOwnerChanged signal instead of ServiceCreated and
6570         ServiceDeleted.
6571         
6572         * bus/dispatch.c: update testcase for the new signal.
6573
6574 2004-09-20  Jon Trowbridge  <trow@ximian.com>
6575
6576         Patch from Nat Friedman <nat@novell.com>
6577
6578         * mono/Makefile.am: A number of small build fixes to allow "make
6579         distcheck" to succeed.
6580
6581         * mono/example/Makefile.am: "make distcheck" fixes.
6582
6583         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
6584         key in @srcdir@.
6585
6586         * test/Makefile.am: "make distcheck" fixes.
6587
6588 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6589
6590         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
6591
6592         * doc/busconfig.dtd: update the DTD for the at_console attribute.
6593
6594         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
6595         messages after the first one (bug #1389).
6596         
6597         * bus/dispatch.c (check_double_hello_message): add a test case for
6598         the double hello message bug.
6599         (check_existent_service_activation): fix check of spawning error.
6600         
6601 2004-09-16  David Zeuthen  <david@fubar.dk>
6602
6603         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
6604
6605 2004-09-12  David Zeuthen  <david@fubar.dk>
6606
6607         Patch from Kay Sievers <kay.sievers@vrfy.org>
6608
6609         * bus/bus.c (bus_context_new):
6610         * bus/bus.h:
6611         * bus/main.c (usage)
6612         (main):
6613         Add commandline option --nofork to override configuration file
6614         setting.
6615
6616 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6617
6618         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
6619         compilers don't like it (bug #974).
6620
6621 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
6622
6623         * qt/connection.*: Applied patch by Jérôme Lodewyck
6624         <lodewyck@clipper.ens.fr> to integrate an existing
6625         connection into the Qt eventloop
6626
6627 2004-08-30  Jon Trowbridge  <trow@ximian.com>
6628
6629         * mono/BusDriver.cs: Added.  This is a class for interacting with
6630         the org.freedesktop.DBus service.
6631
6632         * mono/Message.cs: Added a mechanism to expose the message that is
6633         currently being dispatched via the static Message.Current
6634         property.  Added Message.Sender and Message.Destination
6635         properties.
6636
6637         * mono/Handler.cs: Expose the dispatched message via
6638         Message.Current when handling method calls.
6639
6640         * mono/Service.cs: Expose the dispatched message via
6641         Message.Current when handling signal emissions.
6642         
6643         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
6644         Connection.BaseService property.
6645
6646 2004-08-28  Havoc Pennington  <hp@redhat.com>
6647
6648         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
6649
6650         More fixes from Steve Grubb
6651         
6652         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
6653         (_dbus_listen_tcp_socket): fix fd leak
6654
6655         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
6656         EINTR to a bit lower in the code
6657
6658 2004-08-26  Jon Trowbridge  <trow@ximian.com>
6659
6660         * bus/driver.c (bus_driver_handle_service_exists): Respond with
6661         TRUE if we are inquiring about the existence of the built-in
6662         org.freedesktop.DBus service.
6663
6664 2004-08-25  John Palmieri  <johnp@redhat.com>
6665         * bus/config-parser.c:
6666         (struct PolicyType): Add POLICY_CONSOLE
6667         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
6668         (start_busconfig_child): Sets up console element when
6669         <policy at_console=""> is encountered in a policy file
6670         (append_rule_from_element): Convert console elements to console
6671         rules.
6672
6673         * bus/policy.c: 
6674         (bus_policy_create_client_policy): Add console rules to the client
6675         policy based on if the client is at the console
6676         (bus_policy_append_console_rule): New function for adding a
6677         console rule to a policy
6678         (bus_policy_merge): Handle console rule merging
6679
6680         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
6681         where we check for console user files
6682         
6683         * dbus/dbus-sysdeps.c:
6684         (_dbus_file_exists): New function which checks if the given
6685         file exists
6686         (_dbus_user_at_console): New function which does the system
6687         specific process of checking if the user is at the console
6688
6689         * dbus/dbus-userdb.c:
6690         (_dbus_is_console_user): New function converts a UID to user name
6691         and then calls the system specific _dbus_user_at_console to 
6692         see if the user is at the console and therefor a console user
6693
6694 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6695
6696         * bus/config-parser.c (set_limit):
6697         * bus/dbus-daemon-1.1.in:
6698         * test/data/valid-config-files/many-rules.conf: set the
6699         max_match_rules_per_connection limt from the config file. 
6700
6701         * doc/busconfig.dtd: update the DTD.
6702
6703         * bus/driver.c: remove some unused variables.
6704
6705 2004-08-24  Mikael Hallendal  <micke@imendio.com>
6706
6707         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
6708         it's been replaced by dbus_g_bus_get
6709
6710 2004-08-23  Colin Walters  <walters@redhat.com>
6711
6712         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6713
6714         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
6715
6716         * bus/selinux.c: Create a thread for policy reload notification.
6717         (bus_selinux_get_policy_root): Implement.
6718
6719         * bus/config-parser.c (start_busconfig_child)
6720         (bus_config_parser_content): Support SELinux-root relative
6721         inclusion.
6722
6723         * configure.in <HAVE_SELINUX>: Add -lpthread.
6724         
6725         * bus/test-main.c (test_pre_hook, test_post_hook): New.
6726         (test_post_hook): Move memory checking into here.
6727         (test_pre_hook, test_post_hook): Move SELinux checks in
6728         here, but conditional on a DBUS_TEST_SELINUX environment
6729         variable.  Unfortunately we can't run the SELinux checks
6730         as a normal user, since they won't have any permissions
6731         for /selinux.  So this will have to be tested manually
6732         for now, until we have virtualization for most of
6733         libselinux.
6734         
6735 2004-08-23  Havoc Pennington  <hp@redhat.com>
6736
6737         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
6738         drop supplementary groups, suggested by Steve Grubb
6739
6740 2004-08-20  Colin Walters  <walters@redhat.com>
6741
6742         * bus/config-parser.c (start_busconfig_child): Remove some unused
6743         variables.
6744         
6745         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
6746         warning.
6747
6748 2004-08-17  Joe Shaw  <joeshaw@novell.com>
6749
6750         * configure.in: If --enable-mono is passed in, if we can't find
6751         mono error out.
6752
6753         * mono/Makefile.am: Use /gacutil to install assemblies into the
6754         GAC and not /root.
6755
6756 2004-08-12  Havoc Pennington  <hp@redhat.com>
6757
6758         * NEWS: update for 0.22
6759
6760         * configure.in: release 0.22
6761
6762 2004-08-11  Colin Walters  <walters@redhat.com>
6763
6764         * tools/dbus-send.c (main, usage): Add --reply-timeout
6765         argument.
6766
6767 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6768
6769         * bus/bus.c (process_config_first_time_only): get rid of an unused
6770         DBusError that was causing a memoy leak (bug #989).
6771
6772         * dbus/dbus-keyring.c, dbus/dbus-message.c:
6773         fix compilation on Solaris/Forte C (bug #974)
6774
6775         * bus/main.c (main): plug two minuscule memleaks.
6776
6777 2004-08-10  Havoc Pennington  <hp@redhat.com>
6778
6779         * doc/dbus-tutorial.xml: add some more info on GLib bindings
6780
6781 2004-08-09  Havoc Pennington  <hp@redhat.com>
6782
6783         * COPYING: switch to Academic Free License version 2.1 instead of
6784         2.0, to resolve complaints about patent termination clause.
6785
6786 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
6787
6788         * README: added documentation for the --enable-python 
6789         configure switch.
6790
6791 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6792
6793         * bus/config-parser.c (bus_config_parser_new): fix an invalid
6794         _unref in the SELinux support.
6795
6796         * doc/busconfig.dtd: update DTD for SELinux support.
6797
6798         * bus/config-loader-libxml.c: fix error handler and parser
6799         initialisation/cleanup. OOM test now works with libxml2 HEAD.
6800
6801         * configure.in: remove the warning about libxml2.
6802
6803         * dbus/dbus-bus.c: silence doxygen warning.
6804
6805 2004-07-31  Colin Walters  <walters@redhat.com>
6806
6807         * configure.in: Move #error in SELinux check to its own line.
6808
6809 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6810
6811         * dbus/dbus-internals.h (_DBUS_SET_OOM):
6812         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
6813         dbus_error_set.
6814
6815         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
6816         broken by the change in the _SET_OOM macros.
6817
6818 2004-07-31  Colin Walters  <walters@redhat.com>
6819
6820         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
6821         BUS_SET_OOM.
6822
6823 2004-07-31  Colin Walters  <walters@redhat.com>
6824
6825         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
6826         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
6827         AC_MSG_CHECKING.
6828
6829 2004-07-24  Havoc Pennington  <hp@redhat.com>
6830
6831         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
6832
6833         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
6834         functionality
6835
6836         * configure.in: add --enable-selinux
6837         
6838         * bus/policy.c (bus_policy_merge): add FIXME to a comment
6839
6840         * bus/main.c (main): initialize and shut down selinux
6841
6842         * bus/connection.c: store SELinux ID on each connection, to avoid 
6843         repeated getting of the string context and converting it into 
6844         an ID
6845
6846         * bus/bus.c (bus_context_get_policy): new accessor, though it
6847         isn't used
6848         (bus_context_check_security_policy): check whether the security
6849         context of sender connection can send to the security context of
6850         recipient connection
6851
6852         * bus/config-parser.c: add parsing for <selinux> and <associate>
6853         
6854         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
6855         implement dbus_connection_get_unix_fd()
6856
6857         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
6858         function, used by the selinux stuff
6859         
6860 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6861
6862         * bus/config-loader-libxml.c: complete the implementation of
6863         libxml backend for config file loader. Doesn't work with full OOM
6864         test yet. 
6865         
6866         * configure.in: change error when selecting libxml into a warning.
6867         
6868         * test/data/invalid-config-files: add two non-well-formed XML
6869         files. 
6870         
6871         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
6872         
6873         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
6874         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
6875         be necessary to read all the buffer. (bug #894)
6876
6877         * bus/activation.c (bus_activation_activate_service): fix a
6878         potential assertion failure (bug #896). Small optimization in the
6879         case of auto-activation messages.
6880
6881         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
6882         add test case for byte-through-vararg bug (#901). patch by Kimmo
6883         Hämäläinen. 
6884
6885 2004-07-28  Anders Carlsson  <andersca@gnome.org>
6886
6887         * python/dbus.py:
6888         * python/dbus_bindings.pyx.in:
6889         Add dbus.init_gthreads (), allow emit_signal to pass
6890         arguments to the signal.
6891         
6892 2004-07-24  Havoc Pennington  <hp@redhat.com>
6893
6894         * AUTHORS: add some people, not really comprehensively, let me
6895         know if I missed you
6896
6897 2004-07-24  Havoc Pennington  <hp@redhat.com>
6898
6899         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
6900         Owen
6901
6902         * test/Makefile.am (DIST_SUBDIRS): here also
6903
6904 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6905
6906         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
6907         breaking build on Solaris, reported by Farhad Saberi on the ML.
6908
6909         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
6910         va_arg invocation to account for integer promotion in the case of
6911         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
6912
6913         * bus/services.c (bus_service_remove_owner): fix bug #902, use
6914         _dbus_list_get_first_link, not _dbus_list_get_first.
6915
6916         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
6917
6918         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
6919         handler functions so that the asserts in _dbus_object_subtree_unref
6920         do not fail.
6921
6922         * dbus/dbus-transport-unix.c (do_reading):
6923         _dbus_transport_queue_messages return value is of type
6924         dbus_bool_t, not DBusDispatchStatus.
6925         
6926 2004-07-19  David Zeuthen  <david@fubar.dk>
6927
6928         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
6929
6930         * bus/dispatch.c:
6931         (check_get_connection_unix_user): Debug says GetProperty; but the
6932         method is called GetConnectionUnixUser
6933         (check_get_connection_unix_process_id): New function
6934         (bus_dispatch_test): Actually call check_get_connection_unix_user();
6935         also call check_get_connection_unix_process_id()
6936         
6937         * bus/driver.c:
6938         (bus_driver_handle_get_connection_unix_process_id): New function,
6939         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
6940         interface
6941         
6942         * dbus/dbus-auth.c:
6943         (handle_server_data_external_mech): Set pid from the credentials
6944         obtained from the socket
6945         
6946         * dbus/dbus-connection.c:
6947         (dbus_connection_get_unix_process_id): New function
6948         
6949         * dbus/dbus-connection.h: 
6950         Add prototype for dbus_connection_get_unix_process_id
6951         
6952         * dbus/dbus-transport.c:
6953         (_dbus_transport_get_unix_process_id): New function
6954         
6955         * dbus/dbus-transport.h:
6956         Add prototype for _dbus_transport_get_unix_process_id
6957         
6958 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
6959
6960         * dbus/dbus-message.c: Message counter fix, patch by Christian
6961         Hammond <chipx86@gnupdate.org>
6962
6963 2004-07-18  Seth Nickell  <seth@gnome.org>
6964
6965         * python/dbus.py:
6966         * python/dbus_bindings.pyx.in:
6967         * python/tests/test-client.py:
6968
6969         Add dbus.ByteArray and dbus_bindings.ByteArray
6970         types so that byte streams can be passed back.
6971
6972         Give jdahlin the heaps of credit that are so
6973         rightfully his.
6974         
6975 2004-07-12  Seth Nickell  <seth@gnome.org>
6976
6977         * python/dbus.py:
6978
6979         Add message argument to the default object_method_handler
6980         function.
6981         
6982         * python/dbus_bindings.pyx.in:
6983
6984         Automatically return NIL when passed an empty list
6985         (we can't pass back a list since lists are typed
6986         and we don't have any idea what type the the client
6987         intended the list to be... :-( )
6988         
6989 2004-07-10  Seth Nickell  <seth@gnome.org>
6990
6991         * python/examples/Makefile.am:
6992
6993         Fix distcheck breakage caused by new examples.
6994
6995 2004-07-10  Seth Nickell  <seth@gnome.org>
6996
6997         * python/dbus.py:
6998
6999         Add "message" argument to service-side dbus.Object
7000         methods. This will break existing services written
7001         using the python bindings, but will allow extraction
7002         of all the message information (e.g. who its from).
7003
7004         Add improved "object oriented" signal handling/emission.
7005         
7006         * python/examples/example-service.py:
7007
7008         Nix this example.
7009         
7010         * python/examples/example-signal-emitter.py:
7011         * python/examples/example-signal-recipient.py:
7012
7013         Two new examples that show how to emit and receive
7014         signals using the new APIs.
7015         
7016         * python/examples/example-signals.py:
7017         * python/examples/gconf-proxy-service.py:
7018         * python/examples/gconf-proxy-service2.py:
7019
7020         Add "message" argument to service methods.
7021
7022 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7023
7024         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7025         * dbus/bus.c (dbus_bus_get_unix_user)
7026         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7027         method of org.freedesktop.DBus interface.
7028
7029         * bus/dispatch.c: test case
7030
7031 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7032
7033         * python/Makefile.am: switched include directory from glib/ to dbus/
7034         since dbus-glib.h moved
7035  
7036 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7037
7038         * configure.in: prevent building the gcj stuff and libxml loader
7039         since they are broken.
7040
7041 2004-06-20  Havoc Pennington  <hp@redhat.com>
7042
7043         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7044         codes from the dbus error names
7045         
7046         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7047         as dbus/dbus-glib.h and that breakage is now visible due to 
7048         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7049         
7050         * glib/dbus-glib.h: s/gproxy/g_proxy/
7051
7052         * dbus/dbus-shared.h: new header to hold stuff shared with
7053         binding APIs
7054         
7055         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7056         than dbus-errors.h
7057
7058         * glib/dbus-glib.h (dbus_set_g_error): move to
7059         dbus-glib-lowlevel.h
7060
7061         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7062         of stuff to enable this
7063
7064         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7065
7066         * a bunch of other changes with the same basic "separate glib 
7067         bindings from dbus.h" theme
7068         
7069 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7070
7071         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7072
7073         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7074
7075 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7076
7077         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7078         the reply value of the ServiceExists message.
7079
7080 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
7081
7082         * python/dbus_bindings.pyx.in: No longer need to parse path
7083         elements and pass them as arrays of strings.  The C API now
7084         accepts plain path strings.
7085         (_build_parsed_path): removed 
7086
7087 2004-06-07  Havoc Pennington  <hp@redhat.com>
7088
7089         * doc/TODO: remove auto-activation item since it's done; sort
7090         items by importance/milestone
7091
7092 2004-06-07  Havoc Pennington  <hp@redhat.com>
7093
7094         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
7095         random signature when using REQUIRED_FIELDS (this hack won't work
7096         in the long term)
7097
7098         * dbus/dbus-message.c: change the signature to be a header field,
7099         instead of message->signature special-case string. Incremental
7100         step forward. Then we can fix up code to send the signature in the
7101         message, then fix up code to validate said signature, then fix up
7102         code to not put the typecodes inline, etc.
7103         (load_one_message): don't make up the signature after the fact
7104         (decode_header_data): require signature field for the known
7105         message types
7106
7107         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
7108
7109         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
7110
7111 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
7112
7113         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
7114
7115         * mono/Handler.cs: Updated to follow new path argument for
7116         (un-)registering objects.
7117
7118         * mono/example/Makefile.am:
7119         * mono/Makefile.am:
7120         * configure.in: Bumped required version for mono and use new -pkg
7121         syntax for deps
7122
7123 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7124
7125         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
7126         registration functions take the path argument as char* instead of
7127         char**.
7128
7129         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
7130         split off the path decompostion part of
7131         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
7132         warnings. 
7133
7134         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
7135         
7136 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7137  
7138         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
7139         machine approach.  A state is implemented as a function that
7140         handles incoming events as specified for that state.
7141         
7142         * doc/dbus-specification.xml: Update auth protocol state machine
7143         specification to match implementation.  Remove some leftover
7144         base64 examples.
7145
7146 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
7147
7148         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
7149         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
7150         quiet doxygen.
7151
7152         * Doxyfile.in: remove deprecated options.
7153
7154         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
7155         glib/test-thread.h, glib/test-thread-client.c,
7156         glib/test-thread-server.c, glib/test-profile.c,
7157         glib/test-dbus-glib.c: remove these unused files.
7158
7159 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7160
7161         * dbus/dbus-object-tree.c
7162         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
7163         non-fallback handlers (bug #684).
7164         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
7165         (find_subtree_recurse): report wether the returned subtree is an
7166         exact match or a "fallback" match higher up in the tree.
7167         (object_tree_test_iteration): update test case.
7168
7169 2004-06-01  Seth Nickell  <seth@gnome.org>
7170
7171         * python/dbus_bindings.pyx.in:
7172         * python/tests/test-client.py:
7173
7174         Round off basic type support. Add dicts (yay!), and 
7175         remaining array types.
7176
7177         Make MessageIter more general so it works for dicts too.
7178
7179         Mark all loop variables as C integers.
7180         
7181 2004-05-31  Havoc Pennington  <hp@redhat.com>
7182
7183         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
7184         "in" before "out"
7185
7186         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
7187
7188         * glib/dbus-glib-tool.c (main): set up to have a --self-test
7189         option that runs the tests, and start filling in some code
7190         including for starters just dumping the interfaces to stdout
7191
7192         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
7193
7194         * test/data/valid-introspection-files/lots-of-types.xml: test of
7195         an example introspection file
7196
7197         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
7198         "node" (I think...)
7199
7200 2004-05-31  Seth Nickell  <seth@gnome.org>
7201
7202         * python/dbus_bindings.pyx.in:
7203         * python/tests/test-client.py:
7204
7205         Test Suite: 1
7206         Python Bindings: 0
7207
7208         Fix string array memory trashing bug... oops...
7209
7210 2004-05-30  Seth Nickell  <seth@gnome.org>
7211
7212         * python/dbus.py:
7213
7214         Add a nicer-but-less-flexible alternate API for handling 
7215         calls to virtual objects in dbus.ObjectTree.
7216
7217         Screw up the argument order to the dbus.Object constructor
7218         for consistency with dbus.ObjectTree (and to make dbus_methods
7219         optional for future extension)
7220         
7221         * python/examples/Makefile.am:
7222         * python/examples/gconf-proxy-service.py:
7223         * python/examples/gconf-proxy-service2.py:
7224
7225         Alternate implementation of gconf-proxy-service using the
7226         nicer dbus.ObjectTree API.
7227         
7228         * python/examples/example-service.py:
7229         * python/tests/test-server.py
7230
7231         Reverse the argument order to deal with dbus.Object constructor
7232         changes.
7233         
7234 2004-05-30  Seth Nickell  <seth@gnome.org>
7235
7236         * python/examples/example-client.py:
7237         * python/examples/example-service.py:
7238
7239         Take it back. Lists seem to work but they're broken
7240         in the test suite. Make the base examples use
7241         lists (works fine).
7242
7243 2004-05-30  Seth Nickell  <seth@gnome.org>
7244
7245         * python/dbus_bindings.pyx.in:
7246         * python/tests/test-client.py:
7247
7248         Add some more tests and fix errors that crop up.
7249         Unfortunately, currently it seems like marshalling
7250         and unmarshalling of lists is completely broken :-(
7251
7252 2004-05-30  Seth Nickell  <seth@gnome.org>
7253
7254         * python/dbus_bindings.pyx.in:
7255
7256         Add support for ObjectPath type.
7257
7258         * python/dbus.py:
7259
7260         Refactor message handling code to a common function.
7261         
7262         * python/tests/test-client.py:
7263         * python/tests/test-server.py:
7264
7265         Add tests that check to make sure values of all types
7266         can be echoed from a service w/o mangling.
7267         
7268 2004-05-29  Seth Nickell  <seth@gnome.org>
7269
7270         * python/dbus.py:
7271
7272         Add ObjectTree class which allows implementation
7273         of trees of "virtual" objects. Basically the python
7274         wrapper for "register_fallback".
7275         
7276         * python/examples/Makefile.am
7277         * python/examples/gconf-proxy-client.py:
7278         * python/examples/gconf-proxy-service.py:
7279
7280         Implement a simple GConf proxy service that supports
7281         get/set on string and int GConf keys using the ObjectTree.
7282         
7283 2004-05-29  Seth Nickell  <seth@gnome.org>
7284
7285         * python/dbus.py:
7286         * python/examples/example-client.py:
7287         * python/examples/example-service.py:
7288         * python/examples/list-system-services.py:
7289
7290         Add SessionBus, SystemBus and ActivationBus classes
7291         so you don't need to know the special little BUS_TYPE
7292         flag.
7293         
7294 2004-05-29  Havoc Pennington  <hp@redhat.com>
7295
7296         * bus/config-parser.c (process_test_valid_subdir): temporarily
7297         stop testing config parser OOM handling, since expat has issues
7298         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
7299
7300         * bus/dbus-daemon-1.1.in: change requested_reply to
7301         send_requested_reply/receive_requested_reply so we can send the
7302         replies, not just receive them.
7303
7304         * bus/config-parser.c: parse the new
7305         send_requested_reply/receive_requested_reply
7306
7307         * bus/policy.c (bus_client_policy_check_can_send): add
7308         requested_reply argument and use it
7309
7310         * bus/bus.c (bus_context_check_security_policy): pass through
7311         requested_reply status to message send check
7312
7313         * bus/system.conf.in: adapt to requested_reply change
7314         
7315 2004-05-28  Havoc Pennington  <hp@redhat.com>
7316
7317         * test/glib/test-service-glib.c (main): remove unused variable
7318
7319         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
7320
7321         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
7322         from the enum, no longer in use.
7323
7324         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
7325         works right.
7326
7327         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
7328         whether error_name passed in is a valid error name.
7329
7330 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
7331
7332         * dbus/dbus-message.c (dbus_message_get_args): Added support for
7333         OBJECT_PATH and OBJECT_PATH_ARRAY
7334
7335 2004-05-28  Seth Nickell  <seth@gnome.org>
7336
7337         * python/examples/Makefile.am:
7338
7339         Forget to add Makefile.am. Do not pass go.
7340
7341 2004-05-28  Michael Meeks  <michael@ximian.com>
7342
7343         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
7344         fix no int64 case.
7345
7346         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
7347
7348         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
7349         (_dbus_message_iter_get_basic_type_array): impl.
7350         drastically simplify ~all relevant _get methods to use these.
7351         (_dbus_message_iter_append_basic_array),
7352         (dbus_message_iter_append_basic): impl
7353         drastically simplify ~all relevant _append methods to use these.
7354
7355         * dbus/dbus-message-builder.c (parse_basic_type) 
7356         (parse_basic_array, lookup_basic_type): impl.
7357         (_dbus_message_data_load): prune scads of duplicate /
7358         cut & paste coding.
7359
7360         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
7361         (_dbus_demarshal_basic_type): implement,
7362         (demarshal_and_validate_len/arg): beef up debug.
7363         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
7364
7365 2004-05-27  Seth Nickell  <seth@gnome.org>
7366
7367         * configure.in:
7368         * python/Makefile.am:
7369
7370         Include the example python apps in the tarball.
7371         
7372         * python/examples/list-system-services.py
7373
7374         Add a python new example that fetches the list of services
7375         from the system bus.
7376         
7377 2004-05-27  Seth Nickell  <seth@gnome.org>
7378
7379         * python/dbus.py:
7380         * python/dbus_bindings.pyx.in:
7381
7382         Fix failure to notify that a signal was not handled,
7383         resulted in hung functions.
7384         
7385 2004-05-25  Colin Walters  <walters@redhat.com>
7386
7387         * tools/dbus-monitor.c (main): Monitor all types of messages.
7388
7389 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
7390
7391         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
7392         which unregisters the object path and disposes the handler.
7393
7394 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
7395  
7396         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
7397          
7398         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
7399         operands to && so we call dbus_message_iter_next () for the last
7400         argument also.
7401
7402 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7403
7404         * dbus/dbus-object-tree.c
7405         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
7406         children even if the requested path isn't registered.
7407         (object_tree_test_iteration): test object_tree_list_registered.
7408
7409         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
7410         it to 0.
7411         
7412 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
7413
7414         * doc/TODO: Remove resolved items.
7415
7416         * bus/expirelist.h (struct BusExpireList): remove unused n_items
7417         field.
7418         
7419         * bus/connection.c (bus_connections_expect_reply): Enforce the
7420         per-connection limit on pending replies.
7421         
7422         Patch from Jon Trowbridge <trow@ximian.com>:
7423  
7424         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
7425         up a watch that triggers a config reload when one end of the pipe
7426         becomes readable.
7427         (signal_handler): Instead of doing the config reload in our SIGHUP
7428         handler, just write to the reload pipe and let the associated
7429         watch handle the reload when control returns to the main loop.
7430  
7431         * bus/driver.c (bus_driver_handle_reload_config): Added.
7432         Implements a ReloadConfig method for requesting a configuration
7433         file reload via the bus driver.
7434  
7435 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
7436
7437         * HACKING: Updated release instructions concerning the wiki page.
7438
7439 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
7440
7441         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
7442         filter against auth->allowed_mechs; we only add allowed mechs in
7443         record_mechanisms().
7444  
7445         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
7446         ALLOWED_MECHS to auth-script format so we can set the list of
7447         allowed mechanisms.
7448  
7449         * data/auth/client-out-of-mechanisms.auth-script: New test to
7450         check client disconnects when it is out of mechanisms to try.
7451  
7452         * dbus/dbus-auth.c (process_command): Remove check for lines
7453         longer that 1 MB; we only buffer up maximum 16 kB.
7454  
7455         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7456         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
7457         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
7458         assume there might be unused bytes.
7459  
7460         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
7461         client-out-of-mechs, it is handled in process_reject(). Move check
7462         for max failures to send_rejected(), as it's a server-only thing.
7463
7464         * dbus/dbus-auth.c: Factor out protocol reply code into functions
7465         send_auth(), send_data(), send_rejected(), send_error(),
7466         send_ok(), send_begin() and send_cancel().
7467
7468 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
7469
7470         Remove base64 encoding, replace with hex encoding. Original patch
7471         from trow@ximian.com, added error handling.
7472
7473         * dbus/dbus-string.c (_dbus_string_base64_encode)
7474         (_dbus_string_base64_decode): Remove.
7475         (_dbus_string_hex_decode): Add end_return argument so we can
7476         distinguish between OOM and invalid hex encoding.
7477         (_dbus_string_test): Remove base64 tests and add test case for
7478         invalid hex.
7479
7480         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
7481         Replace base64 with hex.
7482
7483         * test/data/auth/invalid-hex-encoding.auth-script: New test case
7484         for invalid hex encoded data in auth protocol.
7485
7486 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7487
7488         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
7489         leak.
7490
7491 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7492
7493         * mono/dbus-sharp.dll.config.in: Added for GAC
7494         * mono/dbus-sharp.snk: Added for GAC
7495         * mono/Assembly.cs.in: Added for GAC
7496         * mono/Makefile.am: Changes for GAC installation        
7497         * configure.in: Added refs for dbus-sharp.dll.config.in and
7498         Assembly.cs.in. More fixes for mono testing
7499         * mono/example/Makefile.am: Changed var to CSC
7500         * Makefile.am: Changed flag name to DBUS_USE_CSC
7501
7502 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
7503
7504         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
7505         * mono/doc/*: Added documentation framework
7506         * configure.in: Added monodoc check
7507         * README: Added description of mono configure flags
7508
7509 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
7510
7511         * doc/dbus-specification.xml: Added a "Required" column to the 
7512         header fields table and changed the "zero or more" verbage in
7513         the above paragraph to read "The header must contain the required 
7514         named header fields and zero or more of the optional named header 
7515         fields".
7516         * test/data/invalid-messages/*.message: Added the required PATH 
7517         named header field to the tests so that they don't fail on 
7518         'Missing path field'
7519
7520 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
7521
7522         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
7523         the stack by implicitly defining variable and parameter types and
7524         removing the hack of defining C pointers as python objects and later
7525         casting them.
7526
7527 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
7528
7529         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
7530
7531 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
7532
7533         * mono/DBusType/Dict.cs: Handle empty dicts
7534         * mono/DBusType/Array.cs: Handle empty arrays
7535         * mono/Arguments.cs: Handle empty arguments
7536
7537 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
7538
7539         * dbus-sharp.pc.in: Modified to include include Libs and Requires
7540         field
7541
7542 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
7543
7544         * test/data/valid-messages/standard-*.message: Update message
7545         test scripts to new header field names.
7546
7547 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
7548
7549         * test/break-loader.c (randomly_do_n_things): tracked down buffer
7550         overflow to times_we_did_each_thing array which would chop off the
7551         first character of the failure_dir string. Increased the size of
7552         the array to 7 to reflect the number of random mutation functions
7553         we have.
7554
7555 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
7556
7557         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
7558         unix_server->watch here, it is unreffed in disconnect.
7559         (_dbus_server_new_for_tcp_socket): convert NULL host to
7560         "localhost" here so we don't append NULL to address.
7561         
7562         * dbus/dbus-server.c (_dbus_server_test): Add test case for
7563         various addresses, including tcp with no explicit host.
7564
7565 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7566
7567         * dbus/dbus-message.c (decode_header_data, decode_string_field):
7568         fix incorrect setting of .name_offset in the HeaderField (it was
7569         off by two bytes, positioned right after the name and typecode)
7570
7571         * bus/bus.c (bus_context_new, bus_context_unref): test before
7572         calling dbus_server_free_data_slot and _dbus_user_database_unref
7573         in case of an error.
7574
7575         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
7576         by libdbus-gtool.
7577
7578 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
7579
7580         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
7581         _dbus_poll() instead of select().
7582
7583 2004-04-15  Jon Trowbridge  <trow@ximian.com>
7584
7585         * bus/main.c (signal_handler): Reload the configuration files
7586         on SIGHUP.
7587         (main): Set up our SIGHUP handler.
7588
7589         * bus/bus.c (struct BusContext): Store the config file, user and
7590         fork flag in the BusContext.
7591         (process_config_first_time_only): Added.  Contains the code
7592         (previously in bus_context_new) for setting up the BusContext from
7593         the BusConfigParser that should only be run the first time the
7594         config files are read.
7595         (process_config_every_time): Added.  Contains the code (previously
7596         in bus_context_new) for setting up the BusContext from the
7597         BusConfigParser that should be run every time the config files are
7598         read.
7599         (load_config): Added.  Builds a BusConfigParser from the config
7600         files and passes the resulting structure off to
7601         process_config_first_time_only (assuming this is the first time)
7602         and process_config_every_time.
7603         (bus_context_new): All of the config-related code has been moved
7604         to process_config_first_time_only and process_config_every_time.
7605         Now this function just does the non-config-related initializations
7606         and calls load_config.
7607         (bus_context_reload_config): Added.
7608
7609 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7610
7611         * bus/driver.c (bus_driver_handle_get_service_owner):
7612         implement a GetServiceOwner method.
7613         * doc/dbus-specification.xml: document it.
7614         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
7615         
7616         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
7617         implement, using the bus GetServiceOwner method.
7618
7619         * test/glib/test-dbus-glib.c:
7620         use dbus_gproxy_new_for_service_owner so that we can receive the
7621         signal. 
7622
7623 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
7624
7625         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7626         dbus/dbus-message.c, dbus/dbus-protocol.h
7627         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
7628
7629         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
7630         dbus/dbus-message.c, dbus/dbus-protocol.h
7631         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
7632
7633         * dbus/dbus-internals.c (_dbus_header_field_to_string):
7634         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
7635         DBUS_HEADER_FIELD_SENDER resolves to "sender"
7636
7637         * doc/dbus-specification.xml (Header Fields Table):
7638         s/SERVICE/DESTINATION
7639         s/SENDER_SERVICE/SENDER
7640
7641
7642 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7643
7644         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
7645         a few seconds.
7646
7647 2004-04-13  Michael Meeks  <michael@ximian.com>
7648
7649         * glib/dbus-gobject.c (handle_introspect): split out
7650         (introspect_properties): this.
7651         (handle_introspect): implement this.
7652
7653         * test/glib/Makefile.am: use the absolute path so the bus
7654         daemon's chdir ("/") doesn't kill us dead.
7655
7656         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
7657
7658 2004-04-12  Jon Trowbridge  <trow@ximian.com>
7659
7660         * bus/config-parser.c (struct BusConfigParser): Added
7661         included_files field.
7662         (seen_include): Added.  Checks whether or not a file has already
7663         been included by any parent BusConfigParser.
7664         (bus_config_parser_new): Copy the parent's included_files.
7665         (include_file): Track which files have been included, and fail on
7666         circular inclusions.
7667         (process_test_valid_subdir): Changed printf to report if we are
7668         testing valid or invalid conf files.
7669         (all_are_equiv): Changed printf to be a bit clearer about
7670         what we are actually doing.
7671         (bus_config_parser_test): Test invalid configuration files.
7672
7673 2004-04-09  Jon Trowbridge  <trow@ximian.com>
7674
7675         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
7676         argument.  If non-null, the newly-constructed BusConfigParser will
7677         be initialized with the parent's BusLimits instead of the default
7678         values.
7679         (include_file): When including a config file, pass in
7680         the current parser as the parent and then copy the BusLimits
7681         from the included BusConfigParser pack to the current parser.
7682         (process_test_valid_subdir): Renamed from process_test_subdir.
7683         (process_test_equiv_subdir): Added.  Walks through a directory,
7684         descending into each subdirectory and loading the config files
7685         it finds there.  If any subdirectory contains two config files
7686         that don't produce identical BusConfigParser structs, fail.
7687         For now, the BusConfigParser's BusPolicies are not compared.
7688         (bus_config_parser_test): Call both process_test_valid_subdir and
7689         process_test_equiv_subdir.
7690
7691         * bus/config-loader-libxml.c (bus_config_load): Take a parent
7692         argument and pass it along to the call to bus_config_parser_new.
7693         Also made a few small changes to allow this code to compile.
7694
7695         * bus/config-loader-expat.c (bus_config_load): Take a parent
7696         argument and pass it along to the call to bus_config_parser_new.
7697
7698         * bus/bus.c (bus_context_new): Load the config file
7699         with a NULL parent argument.
7700
7701 2004-03-29  Michael Meeks  <michael@ximian.com>
7702
7703         * glib/dbus-gobject.c (introspect_properties): split
7704         out, fix mangled 'while' flow control.
7705         (introspect_signals): implement.
7706         (handle_introspect): update.
7707
7708 2004-03-29  Michael Meeks  <michael@ximian.com>
7709
7710         * glib/dbus-gobject.c (set_object_property): split out / 
7711         re-work, use the property type, and not the message type(!)
7712         (get_object_property): ditto.
7713
7714         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
7715         (dbus_gvalue_marshal): make this code re-usable, needed
7716         for signals too, also on both proxy and server side.
7717         Re-write for more efficiency / readability.
7718
7719 2004-03-29  Michael Meeks  <michael@ximian.com>
7720
7721         * dbus/dbus-message.c
7722         (dbus_message_new_error_printf): impl.
7723
7724         * dbus/dbus-connection.c
7725         (dbus_connection_unregister_object_path): fix warning.
7726
7727         * configure.in: fix no-mono-installed situation.
7728
7729 2004-03-27  Havoc Pennington  <hp@redhat.com>
7730
7731         Patch from Timo Teräs:
7732         
7733         * tools/dbus-send.c (main): if --print-reply, assume type is
7734         method call; support boolean type args
7735         
7736         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
7737         bunch of memleak and logic bugs
7738         
7739 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7740
7741         * mono/Arguments.cs:
7742         * mono/Introspector.cs:
7743         * mono/Handler.cs:
7744         * mono/InterfaceProxy.cs:
7745         * mono/Message.cs
7746         * mono/ProxyBuilder.cs:
7747         * mono/Service.cs:
7748         Added InterfaceProxy class to avoid building proxies for every
7749         object.
7750
7751         * dbus-message.h:
7752         * dbus-message.c (dbus_message_append_args_valist)
7753         (dbus_message_iter_get_object_path)
7754         (dbus_message_iter_get_object_path_array)
7755         (dbus_message_iter_append_object_path)
7756         (dbus_message_iter_append_object_path_array):
7757         Added object_path iter functions to handle OBJECT_PATH arguments
7758         
7759 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
7760
7761         First checkin of mono bindings.
7762         * configure.in:
7763         * Makefile.am:
7764         Build stuff for the bindings
7765         * dbus-sharp.pc.in: Added for pkgconfig
7766         
7767 2004-03-21  Havoc Pennington  <hp@redhat.com>
7768
7769         * test/test-service.c (main): remove debug spew
7770
7771 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7772
7773         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
7774         arrays
7775
7776         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
7777         (dbus_message_iter_init_array_iterator)
7778         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
7779         indicate whether the iterator is empty
7780
7781         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
7782         warnings
7783
7784 2004-03-19  Havoc Pennington  <hp@redhat.com>
7785
7786         * NEWS: 0.21 updates
7787
7788         * configure.in: 0.21
7789
7790         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
7791         
7792         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
7793         you don't need pyrex to make dist
7794
7795         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
7796         sources; run moc
7797         
7798 2004-03-18  Richard Hult  <richard@imendio.com>
7799
7800         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
7801         (dbus_message_set_auto_activation): Add doxygen docs.
7802
7803 2004-03-16  Richard Hult  <richard@imendio.com>
7804
7805         * bus/activation.c: (bus_activation_service_created),
7806         (bus_activation_send_pending_auto_activation_messages),
7807         (bus_activation_activate_service):
7808         * bus/activation.h:
7809         * bus/dispatch.c: (bus_dispatch),
7810         (check_nonexistent_service_auto_activation),
7811         (check_service_auto_activated),
7812         (check_segfault_service_auto_activation),
7813         (check_existent_service_auto_activation), (bus_dispatch_test):
7814         * bus/driver.c: (bus_driver_handle_activate_service):
7815         * bus/services.c: (bus_registry_acquire_service):
7816         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
7817         (dbus_message_get_auto_activation):
7818         * dbus/dbus-message.h:
7819         * dbus/dbus-protocol.h: Implement auto-activation.
7820         
7821         * doc/dbus-specification.xml: Add auto-activation to the spec.
7822
7823 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7824
7825         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
7826         fix a bug with CUSTOM types.
7827
7828         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
7829         a unit test for this bug (used to fail).
7830
7831 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7832
7833         * bus/activation.c:
7834         (babysitter_watch_callback): notify all pending activations waiting for
7835           the same exec that the activation failed.
7836         (bus_activation_activate_service): shortcut the activation if we 
7837           already waiting for the same executable to start up.
7838
7839 2004-03-12  Mikael Hallendal  <micke@imendio.com>
7840
7841         * bus/activation.c: 
7842         - Added service file reloading. 
7843           Each service files directory is kept in an hash table in 
7844           BusActivation and each BusActivationEntry knows what .service-file it
7845           was read from. So when you try to activate a service the bus will 
7846           check if it's been updated, removed or if new .service-files has 
7847           been installed.
7848         - Test code at the bottom for the service file reloading.
7849         * bus/test-main.c: (main):
7850         * bus/test.h:
7851         - added service reloading test.
7852         * dbus/dbus-sysdeps.c: 
7853         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
7854
7855 2004-03-08  Michael Meeks  <michael@ximian.com>
7856
7857         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
7858         bail immediately if disconnected, to avoid busy loop.
7859
7860         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
7861         cleanup cut/paste/inefficiency.
7862
7863 2004-03-01  David Zeuthen  <david@fubar.dk>
7864
7865         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
7866         bug where args were used twice. This bug resulted in a segfault
7867         on a Debian/PPC system when starting the messagebus daemon. Include
7868         dbus-sysdeps.h for DBUS_VA_COPY
7869
7870         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
7871
7872         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
7873         appropriate va_copy implementation. From GLib
7874         
7875 2004-02-24  Joe Shaw  <joe@ximian.com>
7876
7877         * bus/services.c (bus_registry_acquire_service): We need to pass
7878         in the service name to dbus_set_error() to prevent a crash.
7879
7880 2003-12-26  Anders Carlsson  <andersca@gnome.org>
7881
7882         * AUTHORS: Reveal my True identity.
7883
7884 2003-12-17  Mikael Hallendal  <micke@imendio.com>
7885
7886         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
7887         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
7888
7889 2003-12-13  Mikael Hallendal  <micke@imendio.com>
7890
7891         * doc/TODO: Added not about better error check of configuration files.
7892
7893 2003-12-02  Richard Hult  <richard@imendio.com>
7894
7895         * Update AFL version to 2.0 throughout the source files to reflect
7896         the update that was done a while ago.
7897
7898 2003-12-02  Richard Hult  <richard@imendio.com>
7899
7900         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
7901         wrote_dict_key to FALSE on the iter that the dict is appended to,
7902         just like when appending other types. Fixes a bug where a dict
7903         couldn't be put inside a dict.
7904         (dbus_message_iter_append_dict_key): Fix typo in warning message.
7905         (message_iter_test, _dbus_message_test): Add test case for dict
7906         inside dict.
7907
7908 2003-12-01  David Zeuthen  <david@fubar.dk>
7909
7910         * python/dbus.py: Add the actual message when calling the reciever
7911         of a signal such that parameters can be inspected. Add the method
7912         remove_signal_receiver
7913         
7914 2003-11-26  Mikael Hallendal  <micke@imendio.com>
7915
7916         * bus/*.[ch]:
7917         * dbus/*.[ch]:
7918         * glib/*.[ch]: Made ref functions return the pointer
7919
7920 2003-11-25  Zack Rusin  <zack@kde.org>
7921
7922         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
7923
7924         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
7925         wrappers,
7926
7927         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
7928         the Integrator and to better fit with the server,
7929
7930 2003-11-24  Zack Rusin  <zack@kde.org>
7931
7932         * qt/connection.h, qt/connection.cpp: removing initDbus method since
7933         the integrator handles it now
7934
7935         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
7936         since QTimer wasn't really meant to be used the way DBusTimeout is
7937
7938 2003-11-24  Zack Rusin  <zack@kde.org>
7939
7940         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
7941         Integrator class which integrates D-BUS with the Qt event loop,
7942
7943         * qt/connection.h, qt/connection.cpp: Move all the code which
7944         was dealing with D-BUS integration to the Integrator class,
7945         and start using Integrator,
7946
7947 2003-11-23  Zack Rusin  <zack@kde.org>
7948
7949         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
7950         wrapper
7951
7952         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
7953         switching namespaces to DBusQt, reworking the class,
7954
7955         * Makefile.cvs: switching dependencies so that it matches KDE 
7956         schematics,
7957         
7958         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
7959         the library
7960
7961 2003-11-19  Havoc Pennington  <hp@redhat.com>
7962
7963         * NEWS: update
7964
7965         * configure.in: bump version to 0.20
7966
7967         * configure.in (have_qt): add yet another place to look for qt
7968         (someone hand trolltech a .pc file...)
7969
7970 2003-11-01  Havoc Pennington  <hp@redhat.com>
7971
7972         * doc/dbus-specification.xml: add state machine docs on the auth
7973         protocol; just a first draft, I'm sure it's wrong.      
7974
7975 2003-10-28  David Zeuthen  <david@fubar.dk>
7976
7977         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
7978         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
7979         
7980 2003-10-28  Havoc Pennington  <hp@redhat.com>
7981
7982         * dbus/dbus-message.c (get_next_field): delete unused function
7983
7984 2003-10-28  Havoc Pennington  <hp@redhat.com>
7985
7986         * bus/expirelist.c (do_expiration_with_current_time): detect
7987         failure of the expire_func due to OOM
7988
7989         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
7990
7991         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
7992         NoReply error that's now created by the bus when the service exits
7993
7994 2003-10-28  Havoc Pennington  <hp@redhat.com>
7995
7996         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
7997         tests for set_path, set_interface, set_member, etc.
7998
7999         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8000
8001         * dbus/dbus-message.c (set_string_field): always just delete and
8002         re-append the field; accept NULL for deletion
8003         (re_align_fields_recurse): reimplement
8004         
8005 2003-10-26  Havoc Pennington  <hp@redhat.com>
8006
8007         * dbus/dbus-connection.c: fix docs to properly describe the
8008         disconnected message
8009         (_dbus_connection_notify_disconnected): remove this function; 
8010         we can't synchronously add the disconnected message, we have to 
8011         do it after we've queued any remaining real messages
8012         (_dbus_connection_get_dispatch_status_unlocked): queue the
8013         disconnect message only if the transport has finished queueing all
8014         its real messages and is disconnected.
8015         (dbus_connection_disconnect): update the dispatch status here
8016
8017 2003-10-22  Havoc Pennington  <hp@redhat.com>
8018
8019         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8020
8021         * bus/connection.c (bus_transaction_send_from_driver): set the
8022         destination to the connection's base service
8023
8024 2003-10-20  Havoc Pennington  <hp@redhat.com>
8025
8026         hmm, make check is currently not passing.
8027         
8028         * doc/dbus-specification.xml: add requirement that custom type
8029         names follow the same rules as interface names.
8030
8031         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8032         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8033         'map'
8034
8035         * doc/dbus-specification.xml: update type codes to match
8036         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8037         CUSTOM. Add type OBJECT_PATH to the spec.
8038
8039 2003-10-17  Havoc Pennington  <hp@redhat.com>
8040
8041         * bus/driver.c (create_unique_client_name): use "." as separator
8042         in base service names instead of '-'
8043
8044         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8045         byte at the end of the string
8046
8047         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8048         optimization macros since string validation seems to be a slow
8049         point.
8050         
8051         * doc/dbus-specification.xml: restrict valid
8052         service/interface/member/error names. Add test suite code for the
8053         name validation.
8054
8055         * dbus/dbus-string.c: limit service/interface/member/error names 
8056         to [0-9][A-Z][a-z]_
8057
8058         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8059         format arg to verbose spew
8060
8061         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8062         memory, return instead of g_error
8063
8064         * test/test-service.c (path_message_func): support emitting a
8065         signal on request
8066
8067         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8068         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8069         assuming the activation bus was the session bus so that services
8070         started manually will still register.
8071         (init_connections_unlocked): fix so that in OOM situation we get
8072         the same semantics when retrying the function
8073         
8074         * test/test-service.c (main): change to use path registration, to
8075         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8076         than DBUS_BUS_SESSION
8077
8078 2003-10-16  Havoc Pennington  <hp@redhat.com>
8079
8080         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
8081
8082         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
8083         coverage of the tests
8084         (coverage-report.txt): don't move the .da and .bbg files around
8085
8086 2003-10-16  Havoc Pennington  <hp@redhat.com>
8087
8088         * bus/bus.c (struct BusContext): remove struct field I didn't mean
8089         to put there
8090
8091 2003-10-16  Havoc Pennington  <hp@redhat.com>
8092
8093         * bus/connection.c (bus_pending_reply_expired): either cancel or
8094         execute, not both
8095         (bus_connections_check_reply): use unlink, not remove_link, as we
8096         don't want to free the link; fixes double free mess
8097
8098         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
8099         where no reply was received
8100
8101         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
8102         fix a refcount leak
8103
8104         * bus/signals.c (match_rule_matches): add special cases for the
8105         bus driver, so you can match on sender/destination for it.
8106
8107         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
8108         DBUS_PRINT_BACKTRACE is set
8109
8110         * dbus/dbus-internals.c: add pid to assertion failure messages
8111
8112         * dbus/dbus-connection.c: add message type code to the debug spew
8113
8114         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
8115         sender=foo not service=foo
8116
8117         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
8118         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
8119         DBUS_ACTIVATION_ADDRESS instead
8120
8121         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
8122         DBUS_SYSTEM_BUS_ADDRESS if appropriate
8123
8124         * bus/bus.c (bus_context_new): handle OOM copying bus type into
8125         context struct
8126
8127         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
8128         (dbus_message_iter_get_object_path_array): new function (half
8129         finished, disabled for the moment)
8130         
8131         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
8132         DBUS_MESSAGE_TYPE_ERROR
8133
8134         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
8135         avoid redirecting stderr to /dev/null
8136         (babysit): close stdin if not doing the "exit_with_session" thing
8137
8138         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
8139         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
8140         stdout/stdin, so things don't get confused
8141         
8142         * bus/system.conf.in: fix to allow replies, I modified .conf
8143         instead of .conf.in again.
8144
8145 2003-10-14  David Zeuthen  <david@fubar.dk>
8146
8147         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
8148         argtype to arg_type when raising unknown arg type exception.
8149         Changed type list to reflect the changes in dbus-protocol.h so 
8150         the bindings actually work.
8151
8152 2003-10-14  Havoc Pennington  <hp@redhat.com>
8153
8154         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
8155         to have a bug keeping it from outputting the .da files sometimes
8156         (string_get_string): don't append garbage nul bytes to the string.
8157
8158 2003-10-15  Seth Nickell  <seth@gnome.org>
8159
8160         * python/Makefile.am:
8161
8162         Include dbus_h_wrapper.h in the dist tarball.
8163
8164 2003-10-14  Havoc Pennington  <hp@redhat.com>
8165
8166         * bus/bus.c (bus_context_check_security_policy): revamp this to
8167         work more sanely with new policy-based requested reply setup
8168
8169         * bus/connection.c (bus_transaction_send_from_driver): set bus
8170         driver messages as no reply
8171
8172         * bus/policy.c (bus_client_policy_check_can_receive): handle a
8173         requested_reply attribute on allow/deny rules
8174
8175         * bus/system.conf: add <allow requested_reply="true"/>
8176
8177         * bus/driver.c (bus_driver_handle_message): fix check for replies
8178         sent to the bus driver, which was backward. How did this ever work
8179         at all though? I think I'm missing something.
8180
8181         * dbus/dbus-message.c (decode_header_data): require error and
8182         method return messages to have a reply serial field to be valid
8183         (_dbus_message_loader_queue_messages): break up this function;
8184         validate that reply serial and plain serial are nonzero; 
8185         clean up the OOM/error handling.
8186         (get_uint_field): don't return -1 from this
8187         (dbus_message_create_header): fix signed/unsigned bug
8188
8189         * bus/connection.c (bus_connections_expect_reply): save serial of
8190         the incoming message, not reply serial
8191
8192 2003-10-14  Havoc Pennington  <hp@redhat.com>
8193
8194         * bus/connection.c: implement pending reply tracking using
8195         BusExpireList
8196
8197         * bus/bus.c (bus_context_check_security_policy): verify that a
8198         reply is pending in order to allow a reply to be sent. Deny 
8199         messages of unknown type.
8200
8201         * bus/dbus-daemon-1.1.in: update to mention new resource limits
8202
8203         * bus/bus.c (bus_context_get_max_replies_per_connection): new
8204         (bus_context_get_reply_timeout): new
8205
8206 2003-10-13  Seth Nickell  <seth@gnome.org>
8207
8208         * python/Makefile.am:
8209
8210         Pass "make distcheck": remove a couple files from DIST_FILES
8211         that weren't included in the final version.
8212
8213 2003-10-12  Havoc Pennington  <hp@pobox.com>
8214
8215         Added test code that 1) starts an actual bus daemon and 2) uses
8216         DBusGProxy; fixed bugs that were revealed by the test. Lots 
8217         more testing possible, but this is the basic framework.
8218         
8219         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
8220         empty proxy lists from the proxy list hash
8221
8222         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
8223         couple of return_if_fail checks
8224
8225         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
8226         to allocate, so everything is cleared to NULL as it should be.
8227
8228         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
8229         source as data to dbus_connection_set_timeout_functions() as the 
8230         timeout functions expected
8231
8232         * test/glib/run-test.sh: add a little script to start up a message
8233         bus and run tests using it
8234
8235         * tools/dbus-launch.1: updates
8236
8237         * tools/dbus-launch.c (main): add --config-file option
8238
8239         * tools/dbus-launch.c (main): remove confusing else if (runprog)
8240         that could never be reached.
8241
8242         * dbus/dbus-message.c (dbus_message_new_method_return) 
8243         (dbus_message_new_error, dbus_message_new_signal): set the
8244         no-reply-expected flag on all these. Redundant, but may
8245         as well be consistent.
8246
8247 2003-10-11  Havoc Pennington  <hp@pobox.com>
8248
8249         * test/decode-gcov.c (function_solve_graph): make broken block
8250         graph a nonfatal error since it seems to be broken. Need to debug
8251         this.
8252
8253         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
8254         can't just check type > INVALID < LAST anymore
8255
8256         * dbus/dbus-message.c (dbus_message_get_signature): new function
8257         (dbus_message_has_signature): new function
8258         (struct DBusMessage): add signature field (right now it isn't sent
8259         over the wire, just generated on the fly)
8260         (dbus_message_copy): copy the signature, and init strings to
8261         proper length to avoid some reallocs
8262         (dbus_message_iter_init_array_iterator): return void, since it
8263         can't fail
8264         (dbus_message_iter_init_dict_iterator): return void since it can't fail
8265         (_dbus_message_loader_queue_messages): add silly temporary hack to
8266         fill in message->signature on load
8267
8268         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
8269         characters, so they are relatively human-readable.
8270
8271 2003-10-11  Havoc Pennington  <hp@pobox.com>
8272
8273         * dbus/dbus-message.c (_dbus_message_test): add more test
8274         coverage, but #if 0 for now since they uncover a bug 
8275         not fixed yet; I think in re_align_field_recurse()
8276         (re_align_field_recurse): add FIXME about broken assertion
8277
8278         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
8279
8280         * bus/connection.c: share a couple code bits with expirelist.c
8281
8282         * bus/expirelist.h, bus/expirelist.c: implement a generic
8283         expire-items-after-N-seconds facility, was going to share between
8284         expiring connections and replies, decided not to use for expiring
8285         connections for now.
8286
8287         * COPYING: include AFL 2.0 (still need to change all the file headers)
8288
8289 2003-10-09  Havoc Pennington  <hp@redhat.com>
8290
8291         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
8292         gcc 3.3. Not that we do anything about it yet.
8293
8294         * bus/signals.c (bus_match_rule_parse): impose max length on the
8295         match rule text
8296
8297         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
8298
8299 2003-10-09  Havoc Pennington  <hp@redhat.com>
8300
8301         Make matching rules theoretically work (add parser).
8302         
8303         * bus/bus.c (bus_context_check_security_policy): fix up to handle
8304         the case where destination is explicitly specified as bus driver
8305         and someone else is eavesdropping.
8306         
8307         * bus/policy.c (bus_client_policy_check_can_receive): fix up
8308         definition of eavesdropping and assertion
8309
8310         * tools/dbus-send.c (main): use dbus_message_type_from_string
8311
8312         * bus/signals.c (bus_match_rule_parse): implement
8313
8314         * dbus/dbus-message.c (dbus_message_type_from_string): new
8315
8316         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
8317
8318 2003-10-02  Havoc Pennington  <hp@pobox.com>
8319
8320         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
8321         dbus_gproxy_oneway_call
8322
8323         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
8324         (dbus_server_setup_with_g_main): fix to allow calling them more
8325         than once on the same args
8326         (dbus_bus_get_with_g_main): new function
8327
8328 2003-10-02  Havoc Pennington  <hp@redhat.com>
8329
8330         * doc/dbus-tutorial.xml: write some stuff
8331
8332 2003-09-29  Havoc Pennington  <hp@pobox.com>
8333
8334         * configure.in: split checks for Doxygen from XML docs, check for
8335         xmlto
8336
8337         * doc/Makefile.am: XML-ify all the docs, and add a blank
8338         dbus-tutorial.xml
8339
8340 2003-09-29  Havoc Pennington  <hp@pobox.com>
8341
8342         * Merge dbus-object-names branch. To see the entire patch 
8343         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
8344         it's huuuuge though.
8345         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
8346         
8347 2003-09-28  Havoc Pennington  <hp@pobox.com>
8348
8349         * HACKING: update to reflect new server
8350
8351 2003-09-26  Seth Nickell  <seth@gnome.org>
8352
8353         * python/dbus.py:
8354         * python/examples/example-signals.py:
8355
8356         Start implementing some notions of signals. The API
8357         is really terrible, but they sort of work (with the
8358         exception of being able to filter by service, and to
8359         transmit signals *as* a particular service). Need to
8360         figure out how to make messages come from the service
8361         we registered :-(
8362         
8363         * python/dbus_bindings.pyx.in:
8364
8365         Removed duplicate message_handler callbacks.
8366         
8367 2003-09-25  Havoc Pennington  <hp@redhat.com>
8368
8369         * bus/session.conf.in: fix my mess
8370
8371 2003-09-25  Havoc Pennington  <hp@pobox.com>
8372
8373         * bus/session.conf.in: fix security policy, reported by Seth Nickell
8374
8375 2003-09-25  Seth Nickell  <seth@gnome.org>
8376
8377         * python/examples/example-service.py:
8378
8379         Johan notices complete wrong code in example-service, but
8380         completely wrong in a way that works exactly the same (!).
8381         Johan is confused, how could this possibly work? Example
8382         code fails to serve purpose of making things clear.
8383         Seth fixes.
8384
8385 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
8386
8387         * doc/dbus-specification.sgml: don't require header fields
8388         to be 4-byte aligned and specify that fields should be
8389         distinguished from padding by the fact that zero is not
8390         a valid field name.
8391         
8392         * doc/TODO: remove re-alignment item and add item to doc
8393         the OBJECT_PATH type.
8394         
8395         * dbus/dbus-message.c:
8396         (HeaderField): rename the original member to value_offset
8397         and introduce a name_offset member to keep track of where
8398         the field actually begins.
8399         (adjust_field_offsets): remove.
8400         (append_int_field), (append_uint_field),
8401         (append_string_field): don't align the start of the header
8402         field to a 4-byte boundary.
8403         (get_next_field): impl finding the next marhsalled field
8404         after a given field.
8405         (re_align_field_recurse): impl re-aligning a number of
8406         already marshalled fields.
8407         (delete_field): impl deleting a field of any type and
8408         re-aligning any following fields.
8409         (delete_int_or_uint_field), (delete_string_field): remove.
8410         (set_int_field), (set_uint_field): no need to re-check
8411         that we have the correct type for the field.
8412         (set_string_field): ditto and impl re-aligning any
8413         following fields.
8414         (decode_header_data): update to take into account that
8415         the fields aren't 4-byte aligned any more and the new
8416         way to distinguish padding from header fields. Also,
8417         don't exit when there is too much header padding.
8418         (process_test_subdir): print the directory.
8419         (_dbus_message_test): add test to make sure a following
8420         field is re-aligned correctly after field deletion.
8421         
8422         * dbus/dbus-string.[ch]:
8423         (_dbus_string_insert_bytes): rename from insert_byte and
8424         allow the insert of multiple bytes.
8425         (_dbus_string_test): test inserting multiple bytes.
8426
8427         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
8428         warning note to docs about having to re-align any
8429         marshalled values following the string.
8430         
8431         * dbus/dbus-message-builder.c:
8432         (append_string_field), (_dbus_message_data_load):
8433         don't align the header field.
8434         
8435         * dbus/dbus-auth.c: (process_test_subdir): print the
8436         directory.
8437         
8438         * test/break-loader.c: (randomly_add_one_byte): upd. for
8439         insert_byte change.
8440         
8441         * test/data/invalid-messages/bad-header-field-alignment.message:
8442         new test case.
8443         
8444         * test/data/valid-messages/unknown-header-field.message: shove
8445         a dict in the unknown field.
8446
8447 2003-09-25  Seth Nickell  <seth@gnome.org>
8448
8449         * python/dbus.py:
8450         * python/dbus_bindings.pyx.in:
8451
8452         Handle return values.
8453         
8454         * python/examples/example-client.py:
8455         * python/examples/example-service.py:
8456
8457         Pass back return values from the service to the client.
8458         
8459 2003-09-24  Seth Nickell  <seth@gnome.org>
8460
8461         * python/dbus.py:
8462
8463         Connect Object methods (when you are sharing an object) up... pass
8464         in a list of methods to be shared. Sharing all the methods just
8465         worked out too weird. You can now create nice Services over the
8466         DBus in Python. :-)
8467         
8468         * python/dbus_bindings.pyx.in:
8469
8470         Keep references to user_data tuples passed into C functions so 
8471         Python doesn't garbage collect on us.
8472
8473         Implement MethodReturn and Error subclasses of Message for creating
8474         DBusMessage's of those types.
8475         
8476         * python/examples/example-client.py:
8477         * python/examples/example-service.py:
8478
8479         Simple example code showing both how create DBus services and objects,
8480         and how to use them.
8481
8482 2003-09-23  Havoc Pennington  <hp@pobox.com>
8483
8484         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
8485
8486 2003-09-23  Havoc Pennington  <hp@redhat.com>
8487
8488         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
8489         (dbus_gproxy_disconnect_signal): implement
8490         (dbus_gproxy_manager_remove_signal_match): implement
8491         (dbus_gproxy_manager_add_signal_match): implement
8492         (dbus_gproxy_oneway_call): implement
8493
8494 2003-09-23  Havoc Pennington  <hp@pobox.com>
8495
8496         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
8497         subclass. This means dropping the transparent thread safety of the
8498         proxy; you now need a separate proxy per-thread, or your own
8499         locking on the proxy. Probably right anyway.
8500         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
8501
8502 2003-09-22  Havoc Pennington  <hp@redhat.com>
8503
8504         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
8505
8506 2003-09-21  Seth Nickell  <seth@gnome.org>
8507
8508         First checkin of the Python bindings.
8509         
8510         * python/.cvsignore:
8511         * python/Makefile.am:
8512         * python/dbus_bindings.pyx.in:
8513         * python/dbus_h_wrapper.h:
8514
8515         Pieces for Pyrex to operate on, building a dbus_bindings.so
8516         python module for low-level access to the DBus APIs.
8517         
8518         * python/dbus.py:
8519
8520         High-level Python module for accessing DBus objects.
8521
8522         * configure.in:
8523         * Makefile.am:
8524
8525         Build stuff for the python bindings.
8526
8527         * acinclude.m4:
8528
8529         Extra macro needed for finding the Python C header files.
8530
8531 2003-09-21  Havoc Pennington  <hp@pobox.com>
8532
8533         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
8534         implementing the proxy manager, didn't get very far.
8535
8536         * dbus/dbus-bus.c (dbus_bus_add_match): new
8537         (dbus_bus_remove_match): new
8538
8539         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
8540         path_name argument; adjust the other not-yet-implemented 
8541         gproxy constructors to be what I think they should be.
8542
8543 2003-09-21  Havoc Pennington  <hp@pobox.com>
8544
8545         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
8546         by default for message bus connections.
8547
8548         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
8549         exit_on_disconnect flag is set and we process the disconnected
8550         signal.
8551         (dbus_connection_set_exit_on_disconnect): new function
8552
8553 2003-09-21  Havoc Pennington  <hp@pobox.com>
8554
8555         Get matching rules mostly working in the bus; only actually
8556         parsing the rule text remains. However, the client side of
8557         "signal connections" hasn't been started, this patch is only the
8558         bus side.
8559         
8560         * dbus/dispatch.c: fix for the matching rules changes
8561         
8562         * bus/driver.c (bus_driver_handle_remove_match)
8563         (bus_driver_handle_add_match): send an ack reply from these
8564         method calls
8565
8566         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
8567         arguments, reported by Seth Nickell
8568
8569         * bus/config-parser.c (append_rule_from_element): support
8570         eavesdrop=true|false attribute on policies so match rules 
8571         can be prevented from snooping on the system bus.
8572
8573         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
8574         and "destination" in attribute names; fix some docs bugs; 
8575         add eavesdrop=true|false attribute
8576
8577         * bus/driver.c (bus_driver_handle_add_match)
8578         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
8579         messages
8580
8581         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
8582         rid of broadcast service concept, signals are just always broadcast
8583
8584         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
8585         mostly implement matching rules stuff (currently only exposed as signal
8586         connections)
8587
8588 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
8589
8590         * doc/dbus-specification.sgml: Change the header field name
8591         to be an enum and update the rest of the spec to reference
8592         the fields using the conventinal name.
8593
8594         * dbus/dbus-protocol.h: update to reflect the spec.
8595
8596         * doc/TODO: add item to remove the 4 byte alignment requirement.
8597         
8598         * dbus/dbus-message.c: Remove the code to generalise the
8599         header/body length and serial number header fields as named
8600         header fields so we can reference field names using the 
8601         protocol values.
8602         (append_int_field), (append_uint_field), (append_string_field):
8603         Append the field name as a byte rather than four chars.
8604         (delete_int_or_uint_field), (delete_string_field): reflect the
8605         fact that the field name and typecode now occupy 4 bytes instead
8606         of 8.
8607         (decode_string_field), (decode_header_data): update to reflect
8608         protocol changes and move the field specific encoding from
8609         decode_string_field() back into decode_header_data().
8610         
8611         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
8612         Add utility to aid debugging.
8613         
8614         * dbus/dbus-message-builder.c:
8615         (append_string_field), (_dbus_message_data_load): Update to
8616         reflect protocol changes; Change the FIELD_NAME directive
8617         to HEADER_FIELD and allow it to take the field's conventional
8618         name rather than the actual value.
8619         
8620         * test/data/*/*.message: Update to use HEADER_FIELD instead
8621         of FIELD_NAME; Always align the header on an 8 byte boundary
8622         *before* updating the header length.
8623
8624 2003-09-15  Havoc Pennington  <hp@pobox.com>
8625
8626         * dbus/dbus-pending-call.c: add the get/set object data
8627         boilerplate as for DBusConnection, etc. Use generic object data
8628         for the notify callback.
8629
8630         * glib/dbus-gparser.c (parse_node): parse child nodes
8631
8632         * tools/dbus-viewer.c: more hacking on the dbus-viewer
8633         
8634         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
8635         contain functions shared between the convenience lib and the
8636         installed lib
8637
8638         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
8639         -export-symbols-regex to the GLib library
8640
8641         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
8642         fix the locking in here, and add a default handler for
8643         Introspect() that just returns sub-nodes.
8644
8645 2003-09-14  Havoc Pennington  <hp@pobox.com>
8646
8647         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
8648         rather than gfoo consistent
8649
8650         * glib/dbus-gproxy.h: delete for now, move contents to
8651         dbus-glib.h, because the include files don't work right since we
8652         aren't in the dbus/ subdir.
8653         
8654         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
8655         (dbus_gproxy_end_call): finish
8656         (dbus_gproxy_begin_call): finish
8657
8658         * glib/dbus-gmain.c (dbus_set_g_error): new
8659
8660         * glib/dbus-gobject.c (handle_introspect): include information
8661         about child nodes in the introspection
8662
8663         * dbus/dbus-connection.c (dbus_connection_list_registered): new
8664         function to help in implementation of introspection
8665
8666         * dbus/dbus-object-tree.c
8667         (_dbus_object_tree_list_registered_and_unlock): new function
8668
8669 2003-09-12  Havoc Pennington  <hp@pobox.com>
8670
8671         * glib/dbus-gidl.h: add common base class for all the foo_info
8672         types
8673
8674         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
8675         similar to kdcop
8676
8677         * test/Makefile.am: try test srcdir -ef . in addition to test
8678         srcdir = ., one of them should work (yeah lame)
8679         
8680         * glib/Makefile.am: build the "idl" parser stuff as a convenience
8681         library
8682         
8683         * glib/dbus-gparser.h: make description_load routines return
8684         NodeInfo* not Parser*
8685
8686         * Makefile.am (SUBDIRS): build test dir after all library dirs
8687
8688         * configure.in: add GTK+ detection
8689
8690 2003-09-07  Havoc Pennington  <hp@pobox.com>
8691
8692         * Make Doxygen contented.
8693
8694 2003-09-07  Havoc Pennington  <hp@pobox.com>
8695
8696         * doc/dbus-specification.sgml: more updates
8697
8698 2003-09-06  Havoc Pennington  <hp@pobox.com>
8699
8700         * doc/dbus-specification.sgml: partial updates
8701
8702         * bus/dbus-daemon-1.1.in: fix the config file docs for the
8703         zillionth time; hopefully I edited the right file this time.
8704
8705         * bus/config-parser.c (append_rule_from_element): support
8706         send_type, send_path, receive_type, receive_path
8707
8708         * bus/policy.c: add message type and path to the list of things
8709         that can be "firewalled"
8710
8711 2003-09-06  Havoc Pennington  <hp@pobox.com>
8712
8713         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
8714         (dbus_connection_register_object_path): make this not handle
8715         messages to paths below the given path
8716
8717 2003-09-03  Havoc Pennington  <hp@pobox.com>
8718
8719         * test/glib/Makefile.am: add this with random glib-linked test
8720         programs
8721
8722         * glib/Makefile.am: remove the random test programs from here,
8723         leave only the unit tests
8724
8725         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
8726         uscore/javacaps conversion, and fix     
8727         (get_object_property, set_object_property): change to .NET
8728         convention for mapping props to methods, set_FooBar/get_FooBar, 
8729         since one language has such a convention we may as well copy it. 
8730         Plus real methods in either getFooBar or get_foo_bar style won't 
8731         collide with this convention.
8732
8733 2003-09-01  Havoc Pennington  <hp@pobox.com>
8734
8735         * glib/dbus-gparser.c: implement
8736
8737         * glib/dbus-gobject.c: start implementing skeletons support
8738
8739         * configure.in: when disabling checks/assert, also define
8740         G_DISABLE_ASSERT and G_DISABLE_CHECKS
8741
8742 2003-09-01  Havoc Pennington  <hp@pobox.com>
8743
8744         * glib/Makefile.am: rearrange a bunch of files and get "make
8745         check" framework set up
8746
8747 2003-08-31  Havoc Pennington  <hp@pobox.com>
8748
8749         * fix build with --disable-tests
8750
8751 2003-08-30  Havoc Pennington  <hp@pobox.com>
8752
8753         * dbus/dbus-connection.c: purge DBusMessageHandler
8754
8755         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
8756         use callbacks everywhere
8757
8758 2003-08-30  Havoc Pennington  <hp@pobox.com>
8759
8760         * test/data/valid-config-files/system.d/test.conf: change to 
8761         root for the user so warnings don't get printed
8762
8763         * dbus/dbus-message.c: add dbus_message_get_path,
8764         dbus_message_set_path
8765         
8766         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
8767         dispatching to a path
8768
8769         * dbus/dbus-string.c (_dbus_string_validate_path): add
8770
8771         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
8772         (_dbus_marshal_object_path): implement
8773
8774         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
8775         to contain the path to the target object
8776         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
8777         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
8778
8779 2003-08-30  Havoc Pennington  <hp@pobox.com>
8780
8781         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
8782
8783 2003-08-29  Havoc Pennington  <hp@pobox.com>
8784
8785         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
8786         registered
8787         (struct DBusObjectSubtree): shrink this
8788         a lot, since we may have a lot of them
8789         (_dbus_object_tree_free_all_unlocked): implement
8790         (_dbus_object_tree_dispatch_and_unlock): implement
8791
8792 2003-08-29  Havoc Pennington  <hp@pobox.com>
8793
8794         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
8795
8796 2003-08-28  Havoc Pennington  <hp@pobox.com>
8797
8798         purge DBusObjectID
8799         
8800         * dbus/dbus-connection.c: port to no ObjectID, create a
8801         DBusObjectTree, rename ObjectTree to ObjectPath in public API
8802
8803         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
8804         everything except UnregisterFunction and MessageFunction
8805         
8806         * dbus/dbus-marshal.c: port away from DBusObjectID, 
8807         add DBUS_TYPE_OBJECT_PATH
8808         
8809         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
8810         dbus/dbus-objectid.[hc]: remove these, we are moving to 
8811         path-based object IDs
8812
8813 2003-08-25  Havoc Pennington  <hp@pobox.com>
8814
8815         Just noticed that dbus_message_test is hosed, I wonder when I
8816         broke that. I thought make check was passing earlier...
8817         
8818         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
8819         container tree, will replace most of dbus-object-registry
8820
8821         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
8822         screwup
8823
8824 2003-08-19  Havoc Pennington  <hp@pobox.com>
8825
8826         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
8827         (dbus_message_is_error): fix this function
8828
8829         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
8830         match
8831
8832         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
8833         reflect clarified man page
8834         (bus_client_policy_check_can_send): ditto
8835         
8836         * bus/session.conf.in: fixup
8837
8838         * bus/system.conf.in: fixup
8839
8840 2003-08-18  Havoc Pennington  <hp@redhat.com>
8841
8842         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
8843
8844         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8845         dumb bug created earlier (wrong order of args to
8846         decode_header_data())
8847         
8848         * tools/dbus-send.c: port
8849
8850         * tools/dbus-print-message.c (print_message): port
8851
8852         * test/data/*messages: port all messages over
8853         
8854         * dbus/dbus-message-builder.c: support including 
8855         message type
8856         
8857         * bus/driver.c: port over
8858         
8859         * bus/dispatch.c: port over to new stuff
8860
8861         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8862         rename disconnect signal to "Disconnected"
8863
8864 2003-08-17  Havoc Pennington  <hp@pobox.com>
8865
8866         This doesn't compile yet, but syncing up so I can hack on it from
8867         work. What are branches for if not broken code? ;-)
8868         
8869         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
8870         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
8871         DBUS_HEADER_FIELD_ERROR_NAME
8872         
8873         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
8874         for the interface+member pairs
8875         (string_hash): change to use g_str_hash algorithm
8876         (find_direct_function, find_string_function): refactor these to
8877         share most code.
8878         
8879         * dbus/dbus-message.c: port all of this over to support 
8880         interface/member fields instead of name field
8881
8882         * dbus/dbus-object-registry.c: port over
8883         
8884         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
8885         from _dbus_string_validate_name
8886
8887         * bus/dbus-daemon-1.1: change file format for the 
8888         <deny>/<allow> stuff to match new message naming scheme
8889
8890         * bus/policy.c: port over
8891
8892         * bus/config-parser.c: parse new format
8893         
8894 2003-08-16  Havoc Pennington  <hp@pobox.com>
8895
8896         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
8897         broken assertion
8898
8899         * glib/dbus-gproxy.c: some hacking
8900
8901 2003-08-15  Havoc Pennington  <hp@redhat.com>
8902
8903         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
8904
8905         * dbus/dbus-connection.c
8906         (dbus_connection_send_with_reply_and_block): factor out internals;
8907         change to convert any error replies to DBusError instead of 
8908         returning them as a message
8909
8910 2003-08-15  Havoc Pennington  <hp@pobox.com>
8911
8912         * dbus/dbus-connection.c, 
8913         dbus/dbus-pending-call.c: Finish the pending call stuff
8914
8915 2003-08-14  Havoc Pennington  <hp@redhat.com>
8916
8917         * dbus/dbus-pending-call.c: start on new object that will replace
8918         DBusMessageHandler and ReplyHandlerData for tracking outstanding
8919         replies
8920
8921         * dbus/dbus-gproxy.c: start on proxy object used to communicate
8922         with remote interfaces
8923
8924         * dbus/dbus-gidl.c: do the boring boilerplate in here
8925         
8926 2003-08-12  Havoc Pennington  <hp@pobox.com>
8927
8928         * bus/dispatch.c (bus_dispatch): make this return proper 
8929         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
8930
8931         * dbus/dbus-errors.c (dbus_set_error): use
8932         _dbus_string_append_printf_valist
8933
8934         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
8935         (_dbus_string_append_printf): new
8936
8937         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
8938         UNKNOWN_METHOD
8939
8940         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
8941         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
8942         message is unhandled.
8943
8944 2003-08-11  Havoc Pennington  <hp@pobox.com>
8945
8946         * bus/test.c (client_disconnect_handler): change to return
8947         HANDLED (would have been REMOVE_MESSAGE)
8948
8949         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
8950         HANDLED/NOT_YET_HANDLED instead of
8951         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
8952         should be used.
8953
8954 2003-08-10  Havoc Pennington  <hp@pobox.com>
8955
8956         * tools/dbus-send.c (main): add --type argument, for now
8957         supporting only method_call and signal types.
8958
8959         * tools/dbus-print-message.c: print message type
8960
8961         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8962         init connection->objects
8963
8964         * doc/dbus-specification.sgml: fix sgml
8965
8966         * bus/*.c: port over to object-instance API changes
8967
8968         * test/test-service.c: ditto
8969         
8970         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
8971         name, we will have to fix up the rest of the code to also handle
8972         this
8973         (dbus_message_new): generic message-creation call
8974         (set_string_field): allow appending name field
8975
8976 2003-08-06  Havoc Pennington  <hp@pobox.com>
8977
8978         * dbus/dbus-object-registry.c: implement signal connection 
8979         and dispatch
8980
8981         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
8982
8983         * dbus/dbus-internals.c (_dbus_memdup): new function
8984
8985 2003-08-02  Havoc Pennington  <hp@pobox.com>
8986
8987         * dbus/dbus-message.c (dbus_message_get_no_reply)
8988         (dbus_message_set_no_reply): add these and remove
8989         set_is_error/get_is_error
8990
8991         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
8992         remove the ERROR flag, since there's now an ERROR type
8993
8994 2003-08-01  Havoc Pennington  <hp@pobox.com>
8995
8996         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
8997         implement
8998
8999         * dbus/dbus-message.c (dbus_message_get_type): new function
9000
9001         * doc/dbus-specification.sgml: add "type" byte to messages
9002
9003 2003-08-01  Havoc Pennington  <hp@pobox.com>
9004
9005         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9006         a message type enum to distinguish kinds of message
9007         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9008         that need not be replied to
9009
9010 2003-08-01  Havoc Pennington  <hp@pobox.com>
9011
9012         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9013         (unpack_8_octets): fix no-64-bit-int bug
9014
9015         * dbus/dbus-object-registry.c (validate_id): validate the 
9016         connection ID bits, not just the instance ID.
9017
9018         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9019         the connection-global 33 bits of the object ID
9020
9021         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9022         object ID in the new way
9023
9024         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9025         define server/client/instance bits.
9026
9027 2003-07-30  Havoc Pennington  <hp@pobox.com>
9028
9029         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9030         build
9031
9032 2003-07-13  Havoc Pennington  <hp@pobox.com>
9033
9034         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9035         fields to DBusObjectVTable and DBusObjectInfo
9036
9037 2003-07-12  Havoc Pennington  <hp@pobox.com>
9038
9039         * dbus/dbus-object-registry.c: implement unit test,
9040         fix bugs discovered in process
9041
9042         * dbus/dbus-connection.c: remove handler_table and
9043         register_handler(), add DBusObjectRegistry usage
9044
9045         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9046         (dbus_object_id_set_null): new functions
9047
9048 2003-07-08  Havoc Pennington  <hp@pobox.com>
9049
9050         * dbus/dbus-object.c: implement some of this
9051
9052         * dbus/dbus-object-registry.c
9053         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9054         param
9055         (_dbus_object_registry_new): handle OOM
9056
9057 2003-07-08  Havoc Pennington  <hp@pobox.com>
9058
9059         * dbus/dbus-object.h: sketch out an API for registering objects
9060         with a connection, that allows us to use as little as 24 bytes
9061         per object and lets application code represent an object in 
9062         any conceivable way.
9063
9064         * dbus/dbus-object-registry.c: implement the hard bits of the
9065         DBusConnection aspect of object API. Not yet wired up.
9066         
9067 2003-07-06  Havoc Pennington  <hp@pobox.com>
9068
9069         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9070         (_dbus_marshal_object_id): new
9071         (_dbus_demarshal_object_id): new
9072         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9073         consolidate identical switch cases. Don't conditionalize handling
9074         of DBUS_TYPE_UINT64, need to handle the type always.
9075         (_dbus_marshal_validate_arg): consolidate identical cases, and
9076         handle DBUS_TYPE_OBJECT_ID
9077
9078         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9079
9080         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
9081
9082 2003-09-28  Havoc Pennington  <hp@pobox.com>
9083
9084         * real 0.13 release
9085
9086 2003-09-28  Havoc Pennington  <hp@pobox.com>
9087
9088         * doc/Makefile.am (dbus-specification.html): testing a funky hack
9089         to work with Debian db2html
9090
9091 2003-09-28  Havoc Pennington  <hp@pobox.com>
9092
9093         * configure.in: 0.13
9094
9095         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
9096         stylesheet-images for benefit of Debian
9097         
9098         Change back to using filesystem-linked sockets for the system
9099         bus, so only root can create the default system bus address.
9100         
9101         * bus/system.conf.in: change to use
9102         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9103
9104         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
9105         from here.
9106
9107         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
9108         here, and AC_DEFINE DBUS_SYSTEM_PATH
9109
9110 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9111
9112         * doc/TODO:
9113         * doc/busconfig.dtd:
9114         Add busconfig DTD.
9115         
9116 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
9117
9118         * doc/dbus-specification.sgml:
9119         Add activation reply values.
9120         
9121 2003-08-05  Havoc Pennington  <hp@redhat.com>
9122
9123         * configure.in: 0.12
9124
9125 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
9126
9127         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
9128         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
9129         (add_watch), (remove_watch), (create_source):
9130         Refcount fds, fixes some reentrancy issues.
9131         
9132 2003-07-30  Havoc Pennington  <hp@redhat.com>
9133
9134         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
9135         bus address to be abstract if we have abstract sockets
9136
9137         * NEWS: update
9138
9139 2003-07-28  Havoc Pennington  <hp@redhat.com>
9140
9141         * bus/messagebus.in: fix to avoid processname/servicename 
9142         confusion, from Michael Kearey
9143         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
9144         
9145 2003-07-23  Havoc Pennington  <hp@pobox.com>
9146
9147         * dbus/dbus-message.c (dbus_message_iter_get_named): 
9148         fix from Andy Hanton to remove broken "+1"
9149
9150 2003-07-16  Havoc Pennington  <hp@pobox.com>
9151
9152         * tools/dbus-launch.c (babysit): close stdout/stderr in the
9153         babysitter process, as suggested by Thomas Leonard, so 
9154         an "eval `dbus-launch --exit-with-session`" will actually 
9155         return
9156
9157 2003-07-16  Havoc Pennington  <hp@pobox.com>
9158
9159         * configure.in: print out EXPANDED_* variables in the summary at
9160         the end; clean up the code that computes EXPANDED_ variables and
9161         get the ones using exec_prefix right. Should make things work
9162         when you build without --prefix
9163
9164 2003-06-29  Havoc Pennington  <hp@pobox.com>
9165
9166         * mono/Test.cs (class Test): fire up a main loop and run it
9167
9168         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
9169         done once, the app has to do it
9170
9171 2003-06-26  Havoc Pennington  <hp@pobox.com>
9172
9173         * mono/Connection.cs: set up connection with the glib main loop
9174
9175 2003-07-01  Havoc Pennington  <hp@redhat.com>
9176
9177         * doc/dbus-specification.sgml: clarify the format of a type code,
9178         change suggested by Jim Blandy
9179
9180 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
9181
9182         * doc/Makefile.am:
9183         * tools/Makefile.am: Don't assume srcdir == builddir.
9184
9185         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
9186         the allocated block.
9187         (_dbus_memory_test): New function.
9188         * dbus/dbus-test.h: Add _dbus_memory_test ().
9189         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
9190
9191         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
9192         of %c%c%c%c.
9193         (dbus_message_new): Remove obsolete @todo.
9194
9195         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
9196         (_dbus_marshal_set_uint64): Fix comment.
9197
9198         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
9199         hardcode FIELD_REPLY_SERIAL.
9200
9201         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
9202         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
9203
9204         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
9205         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
9206
9207 2003-06-24  Havoc Pennington  <hp@pobox.com>
9208
9209         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
9210
9211 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
9212
9213         * configure.in:
9214         * gcj/.cvsignore:
9215         * gcj/Hello.java:
9216         * gcj/Makefile.am:
9217         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
9218         * gcj/org/.cvsignore:
9219         * gcj/org/Makefile.am:
9220         * gcj/org/freedesktop/.cvsignore:
9221         * gcj/org/freedesktop/Makefile.am:
9222         * gcj/org/freedesktop/dbus/.cvsignore:
9223         * gcj/org/freedesktop/dbus/Makefile.am:
9224         * gcj/org/freedesktop/dbus/Message.java: (Message),
9225         (Message.Message):
9226         * gcj/org/freedesktop/dbus/natMessage.cc:
9227         Fix the build system.
9228
9229 2003-06-22  Havoc Pennington  <hp@pobox.com>
9230
9231         * mono/Connection.cs: add more bindings
9232
9233         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
9234         more than once.
9235
9236 2003-06-22  Havoc Pennington  <hp@pobox.com>
9237
9238         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
9239         Start wrapping more stuff.
9240
9241 2003-06-22  Havoc Pennington  <hp@pobox.com>
9242
9243         * mono/Message.cs: implement Message.Wrap() that ensures we only
9244         have a single C# wrapper per DBusMessage, assuming it works which
9245         it probably doesn't.
9246
9247         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
9248         (dbus_message_free_data_slot): new
9249         (dbus_message_set_data): new
9250         (dbus_message_get_data): new
9251
9252 2003-06-22  Havoc Pennington  <hp@pobox.com>
9253
9254         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
9255         (_dbus_data_slot_allocator_alloc): rework these to keep a
9256         reference count on each slot and automatically manage a global
9257         slot ID variable passed in by address
9258
9259         * bus/bus.c: convert to new dataslot API
9260
9261         * dbus/dbus-bus.c: convert to new dataslot API
9262
9263         * dbus/dbus-connection.c: convert to new dataslot API
9264
9265         * dbus/dbus-server.c: convert to new dataslot API
9266
9267         * glib/dbus-gmain.c: ditto
9268
9269         * bus/test.c: ditto
9270
9271         * bus/connection.c: ditto
9272
9273 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
9274
9275         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
9276         after the gcj checks so that the correct configuration tags
9277         will be added to libtool.
9278
9279         * dbus-glib-1.pc.in: No need to specify any includes since
9280         dbus-1.pc.in has those.
9281
9282 2003-06-22  Havoc Pennington  <hp@pobox.com>
9283
9284         * mono/*, gcj/*, configure.in, Makefile.am:
9285         Check in makefiles and subdirs for mono and gcj bindings.
9286         Neither binding actually exists, just trying to get through
9287         all the build and other boring bits.
9288
9289 2003-06-21  Philip Blundell  <philb@gnu.org>
9290
9291         * tools/dbus-monitor.1: Updated.
9292
9293         * tools/dbus-send.1: Likewise.
9294
9295 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
9296
9297         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
9298         for hangup and error after checking read so we won't discard
9299         pending data if both hangup and read are set.
9300
9301 2003-06-19  Philip Blundell  <philb@gnu.org>
9302
9303         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
9304
9305         * tools/dbus-send.c: Accept both --system and --session.
9306
9307         * tools/dbus-monitor.c: Same here.
9308
9309 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
9310
9311         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
9312         from C++ (Patch by Miloslav Trmac).
9313
9314 2003-06-15  Joe Shaw  <joe@assbarn.com>
9315
9316         * configure.in: Check for socklen_t.
9317
9318         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
9319
9320         * test/test-segfault.c: Add #include <sys/time.h>
9321
9322         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
9323         dbus-launch needs it.
9324
9325 2003-06-09  Havoc Pennington  <hp@redhat.com>
9326
9327         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
9328         SUN_LEN, it breaks abstract socket usage
9329
9330         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
9331         starts of lines.
9332
9333 2003-06-04  Havoc Pennington  <hp@pobox.com>
9334
9335         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
9336         using unix:abstract=/foo, and when listening in a tmpdir
9337         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
9338
9339         * dbus/dbus-transport.c (_dbus_transport_open): support
9340         unix:abstract=/foo
9341
9342         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9343         support abstract sockets
9344
9345         * dbus/dbus-transport-unix.c
9346         (_dbus_transport_new_for_domain_socket): support abstract sockets
9347
9348         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
9349         toggle as an argument, implement abstract namespace support
9350         (_dbus_listen_unix_socket): ditto
9351
9352         * configure.in: add --enable-abstract-sockets and implement
9353         a configure check for autodetection of the right value.
9354
9355 2003-06-01  Havoc Pennington  <hp@pobox.com>
9356
9357         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
9358         in /tmp (though on Linux this will end up being useless,
9359         when we add abstract namespace support)
9360
9361         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
9362         subst'ing it
9363
9364 2003-05-28  Colin Walters  <walters@verbum.org>
9365
9366         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
9367
9368 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
9369
9370         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
9371
9372 2003-05-17  Colin Walters  <walters@gnu.org>
9373
9374         * tools/dbus-send.c: Don't exit with an error code if --help was
9375         passed.  Default to using the session bus instead of the system
9376         one.
9377
9378         * tools/dbus-launch.c: Ditto.
9379
9380         * tools/dbus-monitor.c: Ditto.
9381
9382         * tools/dbus-send.1: Update with new arguments.
9383
9384         * tools/dbus-launch.c: Emit code to export variables.  New
9385         arguments -s and -c to specify shell syntax, and a bit of code to
9386         autodetect syntax.  Also, allow specifying a program to run.
9387
9388         * tools/dbus-launch.1: Update with new arguments.
9389
9390         * tools/dbus-send.1: Ditto.
9391
9392         * tools/dbus-monitor.1: Ditto.
9393
9394 2003-05-17  Havoc Pennington  <hp@pobox.com>
9395
9396         * bus/config-parser.c (merge_included): merge in policies from
9397         child configuration file.
9398
9399         * bus/policy.c (bus_policy_merge): function to merge two policies
9400         together
9401
9402 2003-05-16  Havoc Pennington  <hp@redhat.com>
9403
9404         * dbus/dbus-connection.c: disable verbose lock spew
9405
9406         * tools/dbus-send.c: add --print-reply command line option
9407
9408         * tools/dbus-print-message.h (print_message): new util function
9409         shared by dbus-send and dbus-monitor
9410
9411         * tools/dbus-monitor.c (handler_func): exit on disconnect
9412
9413         * dbus/dbus-transport-unix.c (do_reading): if the transport is
9414         disconnected, don't try to use the read_watch
9415
9416         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
9417         so we can find this bug more easily
9418
9419 2003-05-16  Havoc Pennington  <hp@redhat.com>
9420
9421         * bus/policy.c (free_rule_list_func): avoid a crash when passed
9422         NULL as DBusHashTable is annoyingly likely to do.
9423
9424 2003-05-16  Colin Walters  <walters@verbum.org>
9425
9426         * tools/dbus-monitor.c: Add --session argument and usage()
9427         function.
9428
9429         * tools/dbus-monitor.1: Update with new --session arg.
9430
9431         * bus/Makefile.am (install-data-hook): Create
9432         $(libdir)/dbus-1.0/services so that the session bus is happy.
9433
9434 2003-05-15  Havoc Pennington  <hp@redhat.com>
9435
9436         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
9437         on non-x86. ifdef's are evil.
9438
9439 2003-05-15  Havoc Pennington  <hp@redhat.com>
9440
9441         * configure.in: 0.11
9442
9443         * NEWS: update
9444
9445         * bus/Makefile.am (initddir): apparently we are supposed to put
9446         init scripts in /etc/rc.d/init.d not /etc/init.d
9447
9448         * bus/Makefile.am: remove the "you must --enable-tests to make
9449         check" as it broke distcheck
9450
9451         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
9452
9453 2003-05-13  James Willcox  <jwillcox@gnome.org>
9454
9455         * configure.in:
9456         * bus/activation.c: (bus_activation_service_created),
9457         (bus_activation_activate_service):
9458         * bus/driver.c: (bus_driver_send_service_deleted),
9459         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9460         (bus_driver_send_service_acquired),
9461         (bus_driver_send_welcome_message),
9462         (bus_driver_handle_list_services):
9463         * bus/session.conf.in:
9464         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
9465         (dbus_bus_service_exists), (dbus_bus_activate_service):
9466         * dbus/dbus-bus.h:
9467
9468         Add some convenience API which lets you activate a service, and did a
9469         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
9470         and dbus_message_get_args()
9471
9472 2003-05-11  Havoc Pennington  <hp@pobox.com>
9473
9474         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
9475         calling _dbus_marshal_validate_arg() for every byte in a byte
9476         array, etc.
9477
9478         * dbus/dbus-message-handler.c: use atomic reference counting to
9479         reduce number of locks slightly; the global lock in here sucks
9480
9481         * dbus/dbus-connection.c
9482         (_dbus_connection_update_dispatch_status_and_unlock): variant of
9483         update_dispatch_status that can be called with lock held; then use
9484         in a couple places to reduce locking/unlocking
9485         (dbus_connection_send): hold the lock over the whole function
9486         instead of acquiring it twice.
9487
9488         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
9489
9490         * bus/connection.c (bus_connections_setup_connection): fix access
9491         to already-freed memory.
9492
9493         * dbus/dbus-connection.c: keep a little cache of linked list
9494         nodes, to avoid using the global linked list alloc lock in the
9495         normal send-message case. Instead we just use the connection lock
9496         that we already have to take.
9497
9498         * dbus/dbus-list.c (_dbus_list_find_last): new function
9499
9500         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
9501         change to use a struct for the atomic type; fix docs,
9502         they return value before increment, not after increment.
9503
9504         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
9505         (_dbus_string_append_8_aligned): new functions to try to
9506         microoptimize this operation.
9507         (reallocate_for_length): break this out of set_length(), to
9508         improve profile info, and also so we can consider inlining the
9509         set_length() part.
9510
9511         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
9512         strings with some preallocation, cuts down on our calls to realloc
9513         a fair bit. Though if we can get the "move entire string to empty
9514         string" optimization below to kick in here, it would be better.
9515
9516         * dbus/dbus-string.c (_dbus_string_move): just call
9517         _dbus_string_move_len
9518         (_dbus_string_move_len): add a special case for moving
9519         an entire string into an empty string; we can just
9520         swap the string data instead of doing any reallocs.
9521         (_dbus_string_init_preallocated): new function
9522
9523 2003-05-11  Havoc Pennington  <hp@pobox.com>
9524
9525         Write a "test-profile" that does echo client-server with threads;
9526         profile reveals lock contention, memcpy/realloc of buffers, and
9527         UTF-8 validation as hot spots. 20% of lock contention eliminated
9528         with dbus_atomic_inc/dec implementation on x86.  Much remaining
9529         contention is global mempool locks for GList and DBusList.
9530
9531         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
9532         x86 implementation
9533
9534         * dbus/dbus-connection.c (struct DBusConnection): use
9535         dbus_atomic_t for the reference count
9536
9537         * dbus/dbus-message.c (struct DBusMessage): declare
9538         dbus_atomic_t values as volatile
9539
9540         * configure.in: code to detect ability to use atomic integer
9541         operations in assembly, from GLib patch
9542
9543         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
9544         time, tired of it being wrong in threads and forked processes
9545
9546         * glib/test-profile.c: a little program to bounce messages back
9547         and forth between threads and eat CPU
9548
9549         * dbus/dbus-connection.c: add debug spew macros for debugging
9550         thread locks; include config.h at top; fix deadlock in
9551         dbus_connection_flush()
9552
9553 2003-05-08  Havoc Pennington  <hp@pobox.com>
9554
9555         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
9556         data from getting written, and there wasn't a good reason to
9557         use _exit really.
9558
9559         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
9560         dbus_verbose lines in test coverage
9561         (main): add list of functions sorted by # of untested blocks
9562         to the coverage report
9563
9564         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
9565
9566         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
9567
9568         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
9569         extend test coverage
9570
9571         * test/data/auth/cancel.auth-script: test canceling an
9572         authentication
9573
9574         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
9575         aren't used. in CVS history if we end up needing them.
9576
9577 2003-05-04  Havoc Pennington  <hp@pobox.com>
9578
9579         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
9580         unit test
9581
9582         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
9583         function, which assumed length was in # of strings, not bytes
9584
9585         * dbus/dbus-message.c (_dbus_message_test): add tests for some
9586         missing coverage
9587
9588         * dbus/dbus-connection.c
9589         (_dbus_connection_queue_received_message): disable function for
9590         now, we are only using it in test mode
9591
9592         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9593         remove a mistaken FIXME
9594
9595 2003-05-04  Havoc Pennington  <hp@pobox.com>
9596
9597         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
9598         unlock mutex on successful return, patch from Anders Gustafsson
9599
9600 2003-05-04  Havoc Pennington  <hp@pobox.com>
9601
9602         * dbus-glib-1.pc.in (Requires): fix dependencies, from
9603         Anders Gustafsson
9604
9605 2003-05-04  Havoc Pennington  <hp@pobox.com>
9606
9607         * tools/dbus-launch.c: implement
9608
9609         * bus/main.c (main), bus/bus.c (bus_context_new):
9610         implement --print-pid and --fork
9611
9612 2003-05-03  Havoc Pennington  <hp@redhat.com>
9613
9614         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
9615         the address had no value, and add to test suite. Fix and
9616         regression test from Miloslav Trmac
9617
9618 2003-05-03  Havoc Pennington  <hp@pobox.com>
9619
9620         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
9621         watch is invalid when handled
9622
9623         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
9624         dbus-launch utility to launch the bus from a shell script.  Didn't
9625         actually implement dbus-launch yet, it's just a placeholder still.
9626
9627 2003-05-03  Havoc Pennington  <hp@pobox.com>
9628
9629         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
9630         daemon; also documents daemon config file, so replaces
9631         doc/config-file.txt. Corrected some stuff from config-file.txt in
9632         the process of moving it.
9633
9634 2003-05-03  Havoc Pennington  <hp@pobox.com>
9635
9636         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
9637         add some man pages
9638
9639 2003-05-03  Colin Walters  <walters@verbum.org>
9640
9641         * dbus/dbus-sysdeps.c (fill_user_info): Test against
9642         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
9643
9644         * Makefile.am: Update to use new .pc versioning scheme.
9645
9646 2003-05-02  Havoc Pennington  <hp@redhat.com>
9647
9648         * bus/system.conf.in: allow send/receive to/from message bus
9649         service
9650
9651 2003-04-30  Havoc Pennington  <hp@redhat.com>
9652
9653         * configure.in: print a note when building with unit tests and
9654         without assertions
9655
9656 2003-04-30  Havoc Pennington  <hp@redhat.com>
9657
9658         * Makefile.am: add a check-local that complains if you didn't
9659         configure with --enable-tests
9660
9661 2003-04-29  Havoc Pennington  <hp@redhat.com>
9662
9663         * glib/dbus-gmain.c: docs cleanups
9664
9665         * dbus/dbus-types.h: add docs on int64 types
9666
9667         * dbus/dbus-memory.c: fix docs to avoid putting private API in
9668         public API docs section
9669
9670 2003-04-29  Havoc Pennington  <hp@redhat.com>
9671
9672         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
9673         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
9674         parallel install API version, not with the D-BUS package version.
9675
9676         * HACKING: move some of README over here
9677
9678         * README: updates, and document API/ABI policy
9679
9680         * configure.in: reindentation
9681
9682 2003-04-29  Havoc Pennington  <hp@redhat.com>
9683
9684         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
9685         to use this library" to be sure people have the right
9686         expectations.
9687
9688 2003-04-28  Havoc Pennington  <hp@redhat.com>
9689
9690         * configure.in: add --enable-docs which by default is auto yes if
9691         doxygen and db2html found, no otherwise; but can be forced on/off
9692
9693         * doc/Makefile.am: conditionalize whether to build docs on
9694         --enable-docs
9695
9696 2003-04-28  Havoc Pennington  <hp@redhat.com>
9697
9698         * configure.in: 0.10
9699
9700         * NEWS: update
9701
9702         * bus/system.conf.in: add <includedir>system.d</includedir>
9703
9704         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
9705         username was provided but not uid
9706
9707         * bus/config-parser.c (struct BusConfigParser): keep track of
9708         whether the parser is toplevel or was included; change some
9709         of the error handling if it's included.
9710
9711 2003-04-27  Havoc Pennington  <hp@pobox.com>
9712
9713         Unbreak my code...
9714
9715         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
9716         report correct status if we finish processing authentication
9717         inside this function.
9718
9719         * bus/activation.c (try_send_activation_failure): use
9720         bus_transaction_send_error_reply
9721
9722         * bus/connection.c (bus_connection_get_groups): return an error
9723         explaining the problem
9724
9725         * bus/bus.c (bus_context_check_security_policy): implement
9726         restriction here that inactive connections can only send the
9727         hello message. Also, allow bus driver to send anything to
9728         any recipient.
9729
9730         * bus/connection.c (bus_connection_complete): create the
9731         BusClientPolicy here instead of on-demand.
9732         (bus_connection_get_policy): don't return an error
9733
9734         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
9735         sender field in message being replied to
9736
9737         * bus/bus.c (bus_context_check_security_policy): fix silly typo
9738         causing it to return FALSE always
9739
9740         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
9741         we checked sender rather than destination
9742
9743 2003-04-25  Havoc Pennington  <hp@redhat.com>
9744
9745         test suite is slightly hosed at the moment, will fix soon
9746
9747         * bus/connection.c (bus_connections_expire_incomplete): fix to
9748         properly disable the timeout when required
9749         (bus_connection_set_name): check whether we can remove incomplete
9750         connections timeout after we complete each connection.
9751
9752         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
9753         probably still broken.
9754
9755         * bus/services.c (bus_registry_acquire_service): implement max
9756         number of services owned, and honor allow/deny rules on which
9757         services a connection can own.
9758
9759         * bus/connection.c (bus_connection_get_policy): report errors here
9760
9761         * bus/activation.c: implement limit on number of pending
9762         activations
9763
9764 2003-04-25  Havoc Pennington  <hp@redhat.com>
9765
9766         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
9767         where we used >= 0 instead of != DBUS_UID_UNSET.
9768
9769 2003-04-25  Havoc Pennington  <hp@redhat.com>
9770
9771         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
9772         were toggled without add/remove, fix from Anders Gustafsson
9773
9774 2003-04-24  Havoc Pennington  <hp@redhat.com>
9775
9776         * test/data/valid-config-files/basic.conf: add <limit> tags to
9777         this test
9778
9779         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
9780         <limit> tag in configuration file.
9781
9782 2003-04-24  Havoc Pennington  <hp@redhat.com>
9783
9784         * bus/dispatch.c: somehow missed some name_is
9785
9786         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
9787         (_dbus_timeout_set_interval): new
9788
9789         * bus/connection.c (bus_connections_setup_connection): record time
9790         when each connection is first set up, and expire them after the
9791         auth timeout passes.
9792
9793 2003-04-24  Havoc Pennington  <hp@redhat.com>
9794
9795         * dbus/dbus-message.c (dbus_message_name_is): rename
9796         (dbus_message_service_is): rename
9797         (dbus_message_sender_is): rename
9798         (dbus_message_get_service): rename
9799
9800 2003-04-24  Havoc Pennington  <hp@redhat.com>
9801
9802         * configure.in: add --enable-checks
9803
9804         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
9805
9806         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
9807         to use thread locks.
9808         (_dbus_connection_handler_destroyed_locked): move some private
9809         functions into proper docs group
9810
9811         * dbus/dbus-internals.h: add _dbus_return_if_fail,
9812         _dbus_return_val_if_fail
9813
9814         Throughout: use dbus_return_if_fail
9815
9816 2003-04-23  James Willcox  <jwillcox@gnome.org>
9817
9818         * glib/dbus-glib.h:
9819         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
9820         (dbus_connection_setup_with_g_main),
9821         (dbus_server_setup_with_g_main):
9822         * glib/test-dbus-glib.c: (main):
9823         * glib/test-thread-client.c: (main):
9824         * glib/test-thread-server.c: (new_connection_callback), (main):
9825         * tools/dbus-monitor.c: (main):
9826
9827         Added a GMainContext argument to dbus_connection_setup_with_g_main()
9828         and dbus_server_setup_with_g_main().
9829
9830 2003-04-20  Havoc Pennington  <hp@pobox.com>
9831
9832         * doc/dbus-specification.sgml: document the restrictions on
9833         message and service names
9834
9835 2003-04-22  Havoc Pennington  <hp@redhat.com>
9836
9837         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
9838         support, and do some code cleanups to share more code and
9839         speed up array marshal/demarshal.
9840
9841         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
9842
9843         * configure.in: generate dbus-arch-deps.h
9844
9845         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
9846         64-bit typecodes
9847
9848 2003-04-22  Havoc Pennington  <hp@redhat.com>
9849
9850         * test/data/valid-messages/opposite-endian.message: fix test
9851         to use proper type for rply field
9852
9853         * test/data/invalid-messages: add tests for below validation
9854
9855         * dbus/dbus-message.c (decode_header_data): validate field types,
9856         and validate that named fields are valid names
9857         (decode_name_field): consider messages in the
9858         org.freedesktop.Local. namespace to be invalid.
9859
9860         * dbus/dbus-string.c (_dbus_string_validate_name): new
9861
9862 2003-04-19  Havoc Pennington  <hp@pobox.com>
9863
9864         * bus/driver.c (bus_driver_handle_hello): check limits and
9865         return an error if they are exceeded.
9866
9867         * bus/connection.c: maintain separate lists of active and inactive
9868         connections, and a count of each. Maintain count of completed
9869         connections per user. Implement code to check connection limits.
9870
9871         * dbus/dbus-list.c (_dbus_list_unlink): export
9872
9873         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
9874         number of bytes in the message queue for a connection
9875
9876 2003-04-18  Havoc Pennington  <hp@pobox.com>
9877
9878         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
9879
9880         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
9881         memleaks
9882
9883         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
9884         on realloc be sure to update the pointer in the keyring
9885
9886         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
9887         offset to avoid writing to unallocated memory
9888
9889         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
9890         try the next mechanism, so we properly handle OOM
9891
9892         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
9893         on OOM.
9894         (_dbus_keyring_new): fix OOM bug
9895         (_dbus_keyring_new_homedir): always set error; impose a maximum
9896         number of keys we'll load from the file, mostly to speed up the
9897         test suite and make its OOM checks more useful, but also for
9898         general sanity.
9899
9900         * dbus/dbus-auth.c (process_error_server): reject authentication
9901         if we get an error from the client
9902         (process_cancel): on cancel, send REJECTED, per the spec
9903         (process_error_client): send CANCEL if we get an error from the
9904         server.
9905
9906 2003-04-18  Havoc Pennington  <hp@pobox.com>
9907
9908         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
9909         debug spew
9910
9911         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
9912         handling problem
9913
9914         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
9915         about DBUS_TEST_HOMEDIR once
9916
9917         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
9918         the environment
9919
9920         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
9921         config file so we test the right thing
9922
9923         Throughout: assorted docs improvements
9924
9925 2003-04-18  Havoc Pennington  <hp@pobox.com>
9926
9927         * glib/dbus-gmain.c: adapt to watch changes
9928
9929         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
9930
9931         * dbus/dbus-server.h: remove dbus_server_handle_watch
9932
9933         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
9934
9935         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
9936         like DBusTimeout, so we don't need dbus_connection_handle_watch
9937         etc.
9938
9939 2003-04-17  Havoc Pennington  <hp@redhat.com>
9940
9941         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
9942         database usage so it all goes via the DBusUserDatabase cache.
9943
9944 2003-04-17  Havoc Pennington  <hp@redhat.com>
9945
9946         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
9947         there was an OOM watch we skipped, we always return TRUE so we
9948         iterate again to have a look at it again. Fixes test suite hang.
9949         Code rearrangement also lets us lose some memset and only iterate
9950         over callbacks once.
9951
9952         * bus/driver.c (bus_driver_handle_message): sense of test for
9953         reply was backward
9954
9955 2003-04-16  Havoc Pennington  <hp@pobox.com>
9956
9957         * doc/dbus-specification.sgml: make spec say serials are unsigned
9958
9959         * dbus/dbus-message.h: change message serials to unsigned
9960
9961         * dbus/dbus-connection.c: adapt to message serials being unsigned
9962
9963 2003-04-15  Havoc Pennington  <hp@pobox.com>
9964
9965         * bus/bus.c: create and keep around a shared DBusUserDatabase
9966         object.
9967
9968         * bus/connection.c (bus_connection_get_groups): don't cache
9969         groups for user in the connection object, since user database
9970         object now does that.
9971
9972 2003-04-16  Havoc Pennington  <hp@redhat.com>
9973
9974         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
9975         list of size counters
9976         (_dbus_message_loader_putback_message_link): put back a popped link
9977
9978         * dbus/dbus-connection.c
9979         (dbus_connection_set_max_live_messages_size): rename
9980         max_received_size
9981         (dbus_connection_get_outgoing_size): get size of outgoing
9982         queue
9983         (_dbus_connection_set_connection_counter): remove this cruft
9984
9985 2003-04-14  Havoc Pennington  <hp@redhat.com>
9986
9987         * dbus/dbus-userdb.c: user database abstraction, mostly to get
9988         caching, but at some point we might want to be able to use a
9989         different database.
9990
9991         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
9992         SHA1 conf file to test the sha1 auth mechanism, since the regular
9993         test always uses EXTERNAL when available.
9994
9995         * configure.in,
9996         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
9997         add conf file that requires use of sha1 auth
9998
9999 2003-04-13  Havoc Pennington  <hp@pobox.com>
10000
10001         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10002         from Philip Blundell to send messages and monitor them.
10003
10004 2003-04-13  Havoc Pennington  <hp@pobox.com>
10005
10006         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10007         callbacks
10008
10009         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10010         users
10011
10012         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10013         fix to only recover unused bytes if we're already authenticated
10014         (_dbus_transport_get_is_authenticated): fix to still mark us
10015         authenticated if there are unused bytes.
10016
10017         * bus/dispatch.c: implement security policy checking
10018
10019         * bus/connection.c (bus_transaction_send_from_driver): new
10020
10021         * bus/bus.c (bus_context_check_security_policy): new
10022
10023         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10024         now we just set the DBusError and it gets converted to an error
10025         reply.
10026
10027         * bus/connection.c (allow_user_function): enable code using actual
10028         data from the config file
10029
10030         * bus/policy.c (list_allows_user): handle wildcard rules for
10031         user/group connection perms
10032
10033 2003-04-13  Havoc Pennington  <hp@pobox.com>
10034
10035         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10036
10037         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10038
10039         * bus/policy.c (bus_policy_append_mandatory_rule)
10040         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10041         (bus_policy_append_group_rule): new functions
10042
10043 2003-04-12  Havoc Pennington  <hp@pobox.com>
10044
10045         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10046
10047         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10048         the pid/gid/uid, just for paranoia.
10049
10050         * test/break-loader.c (randomly_do_n_things): find a byte
10051         containing a type code, and randomly change it to a different
10052         type code.
10053
10054 2003-04-12  Havoc Pennington  <hp@pobox.com>
10055
10056         * bus/policy.h: change BusPolicy to be the thing from the config
10057         file, and rename old BusPolicy to BusClientPolicy
10058
10059         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10060         match change in how policy works
10061
10062         * dbus/dbus-internals.h: mark assert_not_reached as
10063         __attribute((noreturn))__
10064
10065 2003-04-11  Havoc Pennington  <hp@redhat.com>
10066
10067         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10068         the broadcast service. Use boolean return for ServiceExists.
10069
10070 2003-04-11  Havoc Pennington  <hp@redhat.com>
10071
10072         * configure.in: add another directory to look for qt in.
10073
10074 2003-04-11  Havoc Pennington  <hp@redhat.com>
10075
10076         * AUTHORS: add Colin Walters
10077
10078 2003-04-11  Havoc Pennington  <hp@redhat.com>
10079
10080         * NEWS: update
10081
10082         * configure.in: 0.9
10083
10084 2003-04-11  Havoc Pennington  <hp@redhat.com>
10085
10086         * bus/messagebus.in: remove pid file when stopping the
10087         message bus, since the bus won't have privileges to remove it
10088         itself.
10089
10090 2003-04-11  Havoc Pennington  <hp@redhat.com>
10091
10092         * bus/bus.c (bus_context_new): move credentials change after
10093         creating pidfile
10094
10095 2003-04-11  Havoc Pennington  <hp@pobox.com>
10096
10097         * test/decode-gcov.c: add "below average functions" to the
10098         coverage report, and change how some of the code works.
10099
10100         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
10101         not in the coverage stats.
10102
10103         * test/test-service.c (main): use _dbus_verbose not fprintf in a
10104         couple places so running the test suite doesn't result in megaspam.
10105
10106 2003-04-11  Havoc Pennington  <hp@pobox.com>
10107
10108         * bus/dispatch.c (check_existent_service_activation): accept a no
10109         memory error in a place we didn't before
10110
10111         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
10112         in case the first one failed," since the test suite is less
10113         broken now.
10114
10115 2003-04-10  Havoc Pennington  <hp@pobox.com>
10116
10117         * bus/dispatch.c (check_segfault_service_activation): add test
10118         for launching an executable that just crashes.
10119
10120         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
10121         don't leave a million cores. We'll see how portable this is.
10122
10123 2003-04-10  Havoc Pennington  <hp@pobox.com>
10124
10125         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
10126         the possible parent failures before we fork, so that we don't
10127         fail to create a babysitter after creating the child.
10128
10129         * bus/activation.c (bus_activation_activate_service): kill child
10130         if we don't successfully complete the activation.
10131
10132 2003-04-10  Havoc Pennington  <hp@redhat.com>
10133
10134         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
10135         the connection if it's disconnected
10136
10137         * bus/activation.c (bus_activation_service_created): use new
10138         transaction features to roll back removal of pending activation if
10139         we don't successfully create the service after all. Don't remove
10140         pending activation if the function fails.
10141
10142         * dbus/dbus-list.c (_dbus_list_insert_before_link)
10143         (_dbus_list_insert_after_link): new code to facilitate
10144         services.c fixes
10145
10146         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
10147         new functionality, so we can preallocate the ability to insert
10148         into a hash table.
10149
10150         * bus/connection.c (bus_transaction_add_cancel_hook): new function
10151         allowing us to put custom hooks in a transaction to be used for
10152         cancelling said transaction
10153
10154         * doc/dbus-specification.sgml: add some discussion of secondary
10155         service owners, and disallow zero-length service names
10156
10157         * bus/services.c (bus_registry_acquire_service): new function,
10158         splits out part of bus_driver_handle_acquire_service() and fixes
10159         a bug where we didn't remove the service doing the acquiring
10160         from the secondary queue if we failed to remove the current owner
10161         from the front of the queue.
10162
10163 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10164
10165         * doc/dbus-specification.sgml:
10166         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
10167
10168 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10169
10170         * bus/.cvsignore:
10171         * glib/.cvsignore:
10172         * test/.cvsignore:
10173         Added files to cvsignore
10174
10175         * dbus/dbus-message.h:
10176         * dbus/dbus-message.c: (dbus_message_iter_get_named):
10177         Make get_named() take two out argument and return a boolean.
10178         (dbus_message_iter_get_args_valist):
10179         Update usage of get_named().
10180         (dbus_message_iter_append_byte):
10181         Fix typo
10182         (dbus_message_iter_append_named)
10183         Fix typo
10184         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
10185         More tests.
10186
10187 2003-04-10  Alexander Larsson  <alexl@redhat.com>
10188
10189         * dbus/dbus-marshal.[ch]:
10190         Add array_type_pos argument to _dbus_marshal_validate_arg.
10191         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
10192
10193         * dbus/dbus-message.[ch]:
10194         Multi-dimensional arrays have full type specification in the
10195         outermost array. Iter code re-arranged to handle this.
10196         Added some more iter tests.
10197
10198         * doc/dbus-specification.sgml:
10199         Add me to authors.
10200         Remove old FIXME.
10201         Update new array encoding description.
10202         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
10203
10204         * test/data/invalid-messages/array-with-mixed-types.message:
10205         * test/data/valid-messages/array-of-array-of-uint32.message:
10206         Change to the new array format.
10207
10208         * test/data/invalid-messages/too-short-dict.message:
10209         Fix bug in test.
10210
10211         * test/data/valid-messages/recursive-types.message:
10212         Fix up and extend test.
10213
10214 2003-04-10  Havoc Pennington  <hp@pobox.com>
10215
10216         * bus/dispatch.c: lots of fixes
10217
10218         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
10219         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
10220         that was crack, broke the test service.
10221
10222         * dbus/dbus-transport.c (_dbus_transport_open): fix error
10223         handling to avoid piling up errors if we get a failure on the
10224         first address.
10225
10226         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
10227         pid in assertion failures.
10228
10229         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
10230         to some fixed size of file descriptor array. Don't return TRUE
10231         anytime a timeout exists, that led to lots of busy loop silliness
10232         in the tests.
10233
10234 2003-04-09  Havoc Pennington  <hp@redhat.com>
10235
10236         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
10237         I'd checked this in earlier but hadn't.
10238
10239 2003-04-09  Havoc Pennington  <hp@redhat.com>
10240
10241         * bus/dispatch.c (bus_dispatch_test): get a bit further through
10242         the activation test (man this is getting old!)
10243
10244 2003-04-09  Havoc Pennington  <hp@redhat.com>
10245
10246         * test/test-utils.c: use dispatch status function to fix this up
10247
10248         * bus/connection.c (connection_watch_callback): don't dispatch
10249         from here
10250         (connection_timeout_callback): don't dispatch from here
10251         (bus_connections_setup_connection): set the dispatch status function
10252         (bus_connection_disconnected): unset it
10253
10254         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
10255         used to add a connection to be dispatched
10256         (_dbus_loop_iterate): do the dispatching at the end of each
10257         iteration
10258
10259         * dbus/dbus-connection.c
10260         (dbus_connection_set_dispatch_status_function): new function
10261         allowing us to fix up main loop usage
10262         (_dbus_connection_last_unref): free all the various function
10263         user data
10264         (dbus_connection_dispatch): call the DispatchStatusFunction
10265         whenever this function returns
10266         (dbus_connection_handle_watch): call DispatchStatusFunction
10267         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
10268         (reply_handler_timeout): call DispatchStatusFunction
10269         (dbus_connection_flush): call DispatchStatusFunction
10270
10271 2003-04-09  Havoc Pennington  <hp@redhat.com>
10272
10273         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
10274         a memory leak
10275
10276         * bus/dispatch.c (check_service_activated): fix bug in test
10277
10278         * dbus/dbus-mainloop.c (check_timeout): fix this up
10279
10280         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
10281         verbose output so we can sort out output from different processes,
10282         e.g. in the activation case.
10283
10284 2003-04-08  Colin Walters  <walters@gnu.org>
10285
10286         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
10287         the pid file.
10288         (bus_context_new): Set it.
10289         (bus_context_unref): Use it to delete the pid file.
10290
10291 2003-04-08  Havoc Pennington  <hp@redhat.com>
10292
10293         * test/data/invalid-messages/array-with-mixed-types.message:
10294         regression test that fails for the moment
10295
10296         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
10297         tests for convenience
10298
10299         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
10300         array of nil, it broke things.
10301
10302         * test/data/invalid-messages/array-of-nil.message: regression test
10303
10304         * test/data/valid-messages/array-of-array-of-uint32.message:
10305         happened to write this so added it to suite
10306
10307 2003-04-08  Havoc Pennington  <hp@redhat.com>
10308
10309         * bus/driver.c (bus_driver_handle_acquire_service): init
10310         retval/reply before checking name
10311
10312         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
10313         recursion depth argument
10314
10315         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
10316         in the public struct for future extension
10317
10318         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
10319         typo
10320
10321         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
10322         message
10323
10324         * doc/dbus-specification.sgml: fix typo
10325
10326 2003-04-08  Alexander Larsson  <alexl@redhat.com>
10327
10328         Implemented recursive types, named types and new-style iters
10329
10330         * bus/driver.c:
10331         * glib/test-thread-client.c: (thread_func):
10332         * glib/test-thread-server.c: (handle_test_message):
10333         * test/test-service.c: (handle_echo):
10334         Update to new api
10335
10336         * dbus/Makefile.am:
10337         * dbus/dbus-dict.c:
10338         * dbus/dbus-dict.h:
10339         * dbus/dbus.h
10340         Remove DBusDict
10341
10342         * dbus/dbus-internals.c: (_dbus_type_to_string):
10343         Update for new types.
10344
10345         * dbus/dbus-marshal.[ch]:
10346         Implement recursive types and the new marshalling format.
10347         Remove hardcoded dict marshalling.
10348         Marshal named types.
10349
10350         * dbus/dbus-message-builder.c:
10351         Add BYTE_ARRAY.
10352         Remove references to old types
10353
10354         * dbus/dbus-message.[ch]:
10355         New non-refcounted iter API that supports recursive iters.
10356         Use iters for appending, including support for recursive
10357         iters.
10358         Add byte and named type support.
10359         Update everything to new marshalling formats.
10360         Add tests for new API.
10361
10362         * dbus/dbus-protocol.h:
10363         Remove old array types.
10364         Add types: BYTE, ARRAY, DICT, NAMED
10365
10366         * dbus/dbus-string.c:
10367         * dbus/dbus-sysdeps.c:
10368         Make parse_double locale safe.
10369
10370         * dbus/dbus-test-main.c:
10371         Call setlocale.
10372
10373         * dbus/dbus-test.c:
10374         Kill dict test
10375
10376         * doc/dbus-specification.sgml:
10377         Update spec
10378
10379         * test/data/incomplete-messages/missing-body.message:
10380         * test/data/invalid-messages/bad-boolean.message:
10381         * test/data/invalid-messages/bad-boolean-array.message:
10382         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
10383         * test/data/invalid-messages/boolean-has-no-value.message-raw:
10384         * test/data/invalid-messages/too-short-dict.message:
10385         * test/data/valid-messages/dict-simple.message:
10386         * test/data/valid-messages/dict.message:
10387         * test/data/valid-messages/emptiness.message:
10388         * test/data/valid-messages/lots-of-arguments.message:
10389         * test/data/valid-messages/no-padding.message:
10390         * test/data/valid-messages/recursive-types.message:
10391         Add missing NAME fields
10392         Fix up dicts & arrays
10393
10394         * test/data/invalid-messages/dict-with-nil-value.message:
10395         Removed, this is not invalid anymore.
10396
10397         * test/data/valid-messages/recursive-types.message:
10398         Add new test for deeply recursive types.
10399
10400 2003-04-07  Havoc Pennington  <hp@pobox.com>
10401
10402         * bus/driver.c (bus_driver_handle_acquire_service): return an
10403         error if you try to acquire a service that starts with ':'
10404
10405 2003-04-07  Havoc Pennington  <hp@redhat.com>
10406
10407         * doc/dbus-specification.sgml: require that base service names
10408         start with ':' and that the base service is created/deleted
10409         as first and last things a connection does on the bus
10410
10411         * bus/dispatch.c (check_existent_service_activation): lots more
10412         work on the activation test; it doesn't fully pass yet...
10413
10414         * test/test-service.c (main): fix so we don't memleak the
10415         connection to the message bus
10416         (filter_func): accept a message asking us to exit
10417
10418 2003-04-06  Havoc Pennington  <hp@pobox.com>
10419
10420         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
10421         from Colin Walters
10422
10423         * configure.in: fixes to Qt detection from Colin Walters
10424
10425         * doc/Makefile.am: Only remove generated docbook dirs if they
10426         exist, from Colin Walters
10427
10428         * dbus/dbus-bus.c: change how we set well-known connections to
10429         NULL, so that it works if a single connection is stored in
10430         two well-known array slots.
10431
10432         * test/Makefile.am: remove a lot of stuff that isn't immediately
10433         useful, it's in CVS history if we want it.
10434
10435         * test/test-service.c: use dbus-mainloop instead of that
10436         watch.[hc] crack
10437
10438 2003-04-06  Havoc Pennington  <hp@pobox.com>
10439
10440         * dbus/Makefile.am: split lists of sources into stuff that goes in
10441         the library, util functions that go in the lib and are also used
10442         elsewhere, and util functions that are used in tests/daemon but
10443         don't go in the lib.
10444
10445         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
10446         here so it can be used in test binaries also
10447
10448 2003-04-06  Havoc Pennington  <hp@pobox.com>
10449
10450         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
10451         here in the parent process, so we can return an error if it
10452         fails. Also, move some of the code into the child so the parent
10453         is less hosed if we fail midway through.
10454
10455         * bus/bus.c (bus_context_new): move pidfile detection further up
10456         in the function, before we start overwriting sockets and such.
10457
10458         * bus/messagebus.in: adjust this a bit, not sure if it will work.
10459
10460         * configure.in: add --with-system-pid-file and --with-system-socket
10461
10462 2003-04-06  Colin Walters  <walters@verbum.org>
10463
10464         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
10465
10466         * bus/system.conf.in: Declare a pidfile.
10467
10468         * bus/bus.c (bus_context_new): Test for an existing pid file, and
10469         create one (if appropriate).
10470
10471         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
10472         (struct BusConfigParser) [pidfile]: New.
10473         (element_type_to_name, merge_included, start_busconfig_child)
10474         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
10475         (bus_config_parser_unref): Free it.
10476         (bus_config_parser_get_pidfile): New function.
10477
10478         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
10479
10480         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
10481
10482         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
10483
10484         * dbus/dbus-sysdeps.h: Prototype it.
10485
10486 2003-04-06  Havoc Pennington  <hp@pobox.com>
10487
10488         * bus/bus.c (bus_context_new): print the address in here, rather
10489         than in main(), because we need to do it before forking the daemon
10490
10491         * bus/dispatch.c (send_service_nonexistent_error): set the sender
10492         on the service nonexistent error
10493
10494         * bus/driver.c (bus_driver_handle_acquire_service): set the
10495         sender on the AcquireService reply
10496
10497         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
10498         server also listen on a UNIX socket so services can connect to it.
10499
10500 2003-04-06  Havoc Pennington  <hp@pobox.com>
10501
10502         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
10503         so it detects deadlocks and also we actually init threads when
10504         debugging.
10505
10506 2003-04-06  Havoc Pennington  <hp@pobox.com>
10507
10508         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10509         save the domain socket name, and unlink it when we disconnect the
10510         server. Means that at least when we exit normally, we won't leave
10511         a bunch of junk in /tmp
10512
10513         * dbus/dbus-transport-unix.c
10514         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
10515         memory management). (I was making a real change here but then
10516         didn't)
10517
10518 2003-04-06  Havoc Pennington  <hp@pobox.com>
10519
10520         * bus/bus.c (bus_context_new): fix wrong handling of
10521         server_data_slot_unref() in the error case.
10522
10523         * dbus/dbus-internals.h (_dbus_assert): change so it passes
10524         "(condition) != 0" to _dbus_real_assert so that
10525         "_dbus_assert (pointer)" doesn't cause a warning
10526
10527         * bus/main.c (main): accept --print-address option to print out
10528         the message bus address
10529
10530         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
10531
10532         * dbus/dbus-transport.c (_dbus_transport_open): special error for
10533         "tmpdir" option to unix: address on client side
10534
10535         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
10536         to unix: address
10537
10538         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
10539         we can use to create sockets in the test suite.
10540
10541         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
10542         cleanly. To be used for testing.
10543
10544         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
10545
10546         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
10547
10548         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
10549         handle trying to call this when there's no servers active
10550
10551 2003-04-05  Havoc Pennington  <hp@pobox.com>
10552
10553         * NEWS: update
10554
10555         * configure.in: 0.8
10556
10557 2003-04-05  Havoc Pennington  <hp@pobox.com>
10558
10559         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
10560         crash on startup. Need to get "try starting the daemon"
10561         in the test suite I guess. ;-)
10562
10563         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
10564         tracked the number of open connections; it's better done in
10565         application-specific code as you want it to span all servers etc.
10566
10567 2003-04-05  Havoc Pennington  <hp@pobox.com>
10568
10569         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
10570         patch from Colin Walters
10571
10572 2003-04-05  Havoc Pennington  <hp@pobox.com>
10573
10574         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
10575         reality; in fact multiple mechanisms are allowed.
10576
10577         * dbus/dbus-internals.c (_dbus_real_assert)
10578         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
10579         _dbus_assert_not_reached() into functions, so that they don't show
10580         up in basic block counts for test coverage, and don't use up as
10581         much disk space. Does mean slower execution speed though, so
10582         assumes --disable-asserts is the normal production case.
10583
10584 2003-04-05  Havoc Pennington  <hp@pobox.com>
10585
10586         * test/Makefile.am (dist-hook): also dist *.in files
10587
10588         * NEWS: update
10589
10590         * configure.in: 0.7
10591
10592 2003-04-05  Havoc Pennington  <hp@pobox.com>
10593
10594         * dbus/dbus-string.c: docs warning
10595
10596         * dbus/dbus-spawn.c: missing docs
10597
10598         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
10599
10600 2003-04-05  Havoc Pennington  <hp@pobox.com>
10601
10602         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
10603         magic from GLib
10604
10605         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
10606         to -1 once we've reaped the babysitter
10607         (_dbus_babysitter_handle_watch): do as much work as we can, not
10608         just one go of it
10609
10610         * bus/activation.c: add code using DBusBabysitter so that we
10611         handle it when a service fails to start up properly.
10612         (bus_activation_service_created): don't remove the activation
10613         entries as we go, just let them get removed when we free the pending
10614         activation. Unref reply messages after sending them.
10615
10616 2003-04-05  Havoc Pennington  <hp@pobox.com>
10617
10618         * test/decode-gcov.c (main): print per-directory stats in the report
10619
10620         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
10621
10622 2003-04-05  Havoc Pennington  <hp@pobox.com>
10623
10624         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
10625
10626         * test/decode-gcov.c: hack up a little program to suck data
10627         out of gcov files. Yes this is sort of silly.
10628
10629         * configure.in: define something in config.h and do an
10630         AM_CONDITIONAL when gcov is enabled
10631
10632 2003-04-04  Havoc Pennington  <hp@redhat.com>
10633
10634         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
10635         return a "babysitter" object that is used to monitor the status of
10636         the spawned process and reap it when required.
10637
10638         * test/test-segfault.c, test/test-exit.c,
10639         test/test-sleep-forever.c: binaries that do various lame things,
10640         used in the test suite.
10641
10642         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
10643
10644 2003-04-03  Havoc Pennington  <hp@pobox.com>
10645
10646         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
10647         in preparation for modifying it, dbus-sysdeps is getting
10648         a bit unmanageable.
10649
10650 2003-04-03  Havoc Pennington  <hp@redhat.com>
10651
10652         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
10653         have multiple ones
10654
10655         * bus/*.[hc]: adapt to mainloop change
10656
10657 2003-04-03  Havoc Pennington  <hp@redhat.com>
10658
10659         * bus/activation.c (load_directory): fix up memleaks
10660         (bus_activation_entry_free): free the entry
10661
10662         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
10663         we get one from the message bus; fix memleaks.
10664
10665         * dbus/dbus-message.c (dbus_set_error_from_message): new function
10666
10667 2003-04-03  Havoc Pennington  <hp@pobox.com>
10668
10669         * bus/config-parser.c (bus_config_parser_unref): free
10670         list of mechanisms, bug discovered by test suite enhancements
10671         (putting system.conf and session.conf into suite)
10672
10673         * test/Makefile.am, test/test-service.c: add placeholder for a
10674         test service that we'll activate as part of test suite. Doesn't
10675         do anything yet.
10676
10677         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
10678         setting NULL value, and use system malloc not dbus_malloc()
10679         when we have unavoidable memleakage.
10680
10681         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
10682         didn't work, and support DBUS_BUS_ACTIVATION.
10683
10684         * bus/activation.c (child_setup): pass our well-known bus type to
10685         the child
10686
10687         * bus/config-parser.c: support <type> to specify well-known type
10688
10689         * doc/dbus-specification.sgml: document the env variables to
10690         locate well-known buses and find service activator
10691
10692 2003-04-02  Havoc Pennington  <hp@redhat.com>
10693
10694         * test/Makefile.am (all-local): add a rule to copy tests to
10695         builddir, so we can have generated tests. Use this to remove the
10696         silly hack for testing system.conf and session.conf. Will use this
10697         shortly to generate .service files pointing to test binaries.
10698
10699 2003-04-02  Havoc Pennington  <hp@redhat.com>
10700
10701         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
10702         current alloc and needed new length, not max of the doubled
10703         allocation and needed new length. Also, when building tests,
10704         don't do the double-allocation stuff, just realloc every time.
10705
10706 2003-04-02  Havoc Pennington  <hp@redhat.com>
10707
10708         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
10709         in error messages
10710         (_dbus_string_get_dirname): new
10711         (_dbus_sysdeps_test): new
10712         (_dbus_directory_open): include dirnames in error messages
10713
10714         * bus/config-parser.c: interpret <include> and <includedir> and
10715         <servicedir> relative to config file location if the given
10716         filename is not absolute.
10717
10718         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
10719
10720 2003-04-02  Havoc Pennington  <hp@redhat.com>
10721
10722         * bus/connection.c (bus_transaction_send_error_reply): set sender
10723         service for the error, and unref the reply on success
10724
10725         * bus/activation.c: convert to use BusTransaction so OOM can be
10726         handled correctly
10727         (bus_activation_service_created): set sender of the message
10728
10729 2003-04-01  Havoc Pennington  <hp@redhat.com>
10730
10731         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
10732         <includedir> (at least mostly)
10733
10734         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
10735         first, then the user ID
10736
10737 2003-04-01  Havoc Pennington  <hp@pobox.com>
10738
10739         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
10740         function
10741
10742         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
10743
10744         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
10745
10746         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
10747         socket 0777, and unlink any existing socket.
10748
10749         * bus/bus.c (bus_context_new): change our UID/GID and fork if
10750         the configuration file so specifies; set up auth mechanism
10751         restrictions
10752
10753         * bus/config-parser.c (bus_config_parser_content): add support
10754         for <fork> option and fill in code for <auth>
10755
10756         * bus/system.conf.in: add <fork/> to default configuration,
10757         and limit auth mechanisms to EXTERNAL
10758
10759         * doc/config-file.txt (Elements): add <fork>
10760
10761         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
10762         (_dbus_change_identity): new function
10763
10764 2003-03-31  Havoc Pennington  <hp@redhat.com>
10765
10766         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
10767         (_dbus_listen_unix_socket): fix off-by-one error in null
10768         termination spotted by Nalin
10769
10770 2003-03-31  Havoc Pennington  <hp@redhat.com>
10771
10772         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
10773         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
10774         having a real home directory available.
10775
10776 2003-03-31  Havoc Pennington  <hp@redhat.com>
10777
10778         * bus/Makefile.am (install-data-hook): create /var/run/dbus
10779
10780         * bus/messagebus.in: add init script for Red Hat /etc/init.d
10781
10782         * configure.in: add support for specifying a style of init script
10783         to install
10784
10785 2003-03-31  Havoc Pennington  <hp@redhat.com>
10786
10787         Fix some annoying DBusString API and fix all affected code.
10788
10789         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
10790         max_length argument
10791         (_dbus_string_get_data): change to return string instead of using
10792         an out param
10793         (_dbus_string_get_const_data): ditto
10794         (_dbus_string_get_data_len): ditto
10795         (_dbus_string_get_const_data_len): ditto
10796
10797 2003-03-31  Havoc Pennington  <hp@redhat.com>
10798
10799         * bus/main.c (main): fix up the command line arguments to be nicer
10800
10801 2003-03-31  Havoc Pennington  <hp@redhat.com>
10802
10803         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
10804         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
10805         final location that lands in the config file
10806
10807         * bus/config-loader-expat.c (bus_config_load): fix type of
10808         XML_Parser variable
10809
10810         * doc/TODO: remove TODO item for dbus_bus_get()
10811
10812         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
10813
10814 2003-03-31  Havoc Pennington  <hp@pobox.com>
10815
10816         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
10817         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
10818         argument since they are always client side
10819
10820         * dbus/dbus-server.c (dbus_server_get_address): new function
10821
10822         * bus/main.c (main): take the configuration file as an argument.
10823
10824         * test/data/valid-config-files/debug-allow-all.conf: new file to
10825         use with dispatch.c tests for example
10826
10827         * bus/test-main.c (main): require test data dir
10828
10829         * bus/bus.c (bus_context_new): change this to take a
10830         configuration file name as argument
10831
10832         * doc/config-file.txt (Elements): add <servicedir>
10833
10834         * bus/system.conf, bus/session.conf: new files
10835
10836         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
10837         well-known socket if none set
10838
10839         * configure.in: create system.conf and session.conf
10840
10841 2003-03-30  Havoc Pennington  <hp@pobox.com>
10842
10843         * bus/config-parser.c: hacking
10844
10845         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
10846         to shut down, since it could cause weirdness with the DBusList
10847         lock
10848
10849         * dbus/dbus-list.c (_dbus_list_test): add tests for the
10850         link-oriented stack routines
10851         (alloc_link): free the mempool if the first alloc from it fails
10852
10853         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
10854
10855         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
10856         from GLib
10857         (_dbus_string_skip_white): new
10858
10859         * doc/config-file.txt (Elements): add <includedir>
10860
10861 2003-03-28  Havoc Pennington  <hp@pobox.com>
10862
10863         * dbus/dbus-string.c (_dbus_string_copy_data_len)
10864         (_dbus_string_copy_data): new functions
10865
10866 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
10867
10868         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
10869         * dbus/dbus-bus.h:
10870         Add dbus_bus_get.
10871
10872         * dbus/dbus-memory.c:
10873         Fix a doc comment.
10874
10875 2003-03-28  Havoc Pennington  <hp@pobox.com>
10876
10877         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
10878         I think it may have just been superstition. Not sure.
10879
10880         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
10881         failures that were not being handled.
10882
10883         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
10884
10885         * dbus/dbus-memory.c: add ability to set number of mallocs in a
10886         row that will fail on out-of-memory.
10887
10888         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
10889         function for testing out-of-memory handling.
10890
10891         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
10892         allocation functions, they do map exactly to the expat ones.
10893
10894 2003-03-27  Havoc Pennington  <hp@redhat.com>
10895
10896         * bus/config-loader-libxml.c (bus_config_load): add another error
10897         check
10898
10899 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10900
10901         * doc/TODO:
10902         Add note about automatic service activation.
10903
10904         * doc/dbus-specification.sgml:
10905         Rename the specification and clarify a few things.
10906
10907 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
10908
10909         * Doxyfile.in:
10910         * dbus/dbus-address.c:
10911         * dbus/dbus-dict.c:
10912         * dbus/dbus-marshal.c:
10913         * dbus/dbus-server-debug-pipe.c:
10914         * dbus/dbus-transport-unix.c:
10915         Fix documentation warnings.
10916
10917 2003-03-26  Havoc Pennington  <hp@pobox.com>
10918
10919         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
10920         after every test so it's quick and easy to see which leaked, and
10921         so we test multiple dbus_shutdown() calls
10922
10923         * configure.in: change configure.in XML stuff to also support
10924         expat
10925
10926         * config-loader-libxml.c: some hacking
10927
10928         * config-loader-expat.c: some hacking
10929
10930         * config-parser.c: some hacking, plus tests
10931
10932 2003-03-25  Havoc Pennington  <hp@redhat.com>
10933
10934         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
10935
10936         * configure.in: add --with-xml option to specify XML library,
10937         right now only libxml is supported.
10938
10939         * bus/config-loader-libxml.c, config-parser.c: sync some minor
10940         nonworking code between home and work, still just stubs
10941
10942 2003-03-24  Havoc Pennington  <hp@redhat.com>
10943
10944         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
10945         file
10946
10947         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
10948         NULL argument for "message" if the error is a well-known one,
10949         fill in a generic message in this case.
10950
10951         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
10952         favor of DBusError
10953
10954         * bus/test.c (bus_test_flush_bus): add
10955
10956         * bus/policy.c (bus_policy_test): test code stub
10957
10958 2003-03-24  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/connection.c (bus_connections_setup_connection): set up
10961         the "can this user connect" function, but it always returns
10962         TRUE until we have a config file parser so we can have a config
10963         file that allows connections.
10964
10965 2003-03-23  Havoc Pennington  <hp@pobox.com>
10966
10967         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
10968         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
10969         the mutex, so we can check for proper memory management
10970         and OOM handling.
10971
10972         * dbus/dbus-dataslot.c: remove the mutex from
10973         DBusDataSlotAllocator and lock it manually when using it,
10974         to simplify fitting it into the global slots framework.
10975
10976         * dbus/dbus-threads.c (init_static_locks): rework how we're
10977         handling global locks so they are easily shut down.
10978
10979         * bus/policy.c (bus_policy_append_rule): fix
10980
10981         * bus/test-main.c (main): check for memleaks
10982
10983         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
10984         test suite check for memleaks
10985
10986         * dbus/dbus-memory.c: add support in test mode for tracking
10987         number of outstanding blocks
10988
10989 2003-03-23  Havoc Pennington  <hp@pobox.com>
10990
10991         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
10992         policies code
10993
10994         * dbus/dbus-hash.h: add ULONG hash keys
10995
10996         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
10997         (_dbus_get_group_id): new function
10998
10999 2003-03-20  Havoc Pennington  <hp@redhat.com>
11000
11001         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11002         new function
11003         (dbus_connection_get_unix_user): new function
11004
11005 2003-03-20  Havoc Pennington  <hp@pobox.com>
11006
11007         * bus/connection.c (bus_connection_send_oom_error): assert that
11008         message has a sender
11009         (connection_execute_transaction): ditto
11010         (bus_connection_preallocate_oom_error): fix to set the sender, and
11011         set recipient to the destination service, not the bus driver
11012
11013         * bus/policy.c: hacking
11014
11015         * dbus/dbus-message.c (dbus_message_service_is): new function
11016         (dbus_message_sender_is): new
11017
11018 2003-03-19  Havoc Pennington  <hp@redhat.com>
11019
11020         * bus/policy.c: start sketching code for policy restrictions on
11021         what connections can do.
11022
11023 2003-03-18  Havoc Pennington  <hp@redhat.com>
11024
11025         * doc/TODO: some notes on high-level todo items. Little nitpick
11026         stuff is all in @todo, so no need to add it here.
11027
11028         * doc/config-file.txt: some notes on how config file might look
11029
11030 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11031
11032         * configure.in: 0.6
11033
11034         * NEWS: Update.
11035
11036 2003-03-17  Havoc Pennington  <hp@redhat.com>
11037
11038         * dbus/dbus-internals.h: add gcc attributes so that
11039         our printf-style functions warn on bad arguments to
11040         format
11041
11042         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11043         format bug
11044
11045         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11046         printf format bug
11047
11048 2003-03-17  Havoc Pennington  <hp@redhat.com>
11049
11050         * bus/test-main.c (main): make it print something as it runs
11051         so make check doesn't look stuck
11052
11053         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11054         from CVS, now obsolete
11055
11056 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11057
11058         * bus/dispatch.c: (bus_dispatch):
11059         Refetch the service name since it may have been reallocated
11060         when dbus_message_set_sender was called.
11061
11062         * dbus/dbus-sysdeps.c: (_dbus_accept):
11063         Add address and address length variables and use them to stop
11064         valgrind from complaining.
11065
11066 2003-03-17  Havoc Pennington  <hp@pobox.com>
11067
11068         All tests pass, no memleaks, no valgrind complaints.
11069
11070         * bus/test.c: refcount handler_slot
11071
11072         * bus/connection.c (bus_connections_new): refcount
11073         connection_data_slot
11074
11075         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11076         bytes so that auth scripts pass.
11077
11078         * bus/dispatch.c: init message_handler_slot so it gets allocated
11079         properly
11080
11081         * bus/dispatch.c (message_handler_slot_ref): fix memleak
11082
11083         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
11084         dealloc server_pipe_hash when no longer used for benefit of
11085         leak checking
11086
11087         * dbus/dbus-auth.c (process_command): memleak fix
11088
11089         * bus/dispatch.c (check_hello_message): memleak fix
11090
11091 2003-03-16  Havoc Pennington  <hp@pobox.com>
11092
11093         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
11094
11095 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11096
11097         * bus/activation.c (bus_activation_activate_service): Append
11098         the pending activation entry to the list of pending activations.
11099
11100 2003-03-16  Havoc Pennington  <hp@pobox.com>
11101
11102         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
11103         connections
11104
11105         * dbus/dbus-address.c (create_entry): fix OOM handling when
11106         failing to alloc entry->method
11107
11108 2003-03-16  Havoc Pennington  <hp@pobox.com>
11109
11110         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
11111         the watch
11112
11113         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11114         add some missing dbus_set_result
11115
11116         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
11117         alloc the DBusMessageHandler
11118
11119         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
11120         the transport here, since we call this from the finalizer; it
11121         resulted in a double-finalize.
11122
11123         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
11124         where we tried to use transport->connection that was NULL,
11125         happened when transport was disconnected early on due to OOM
11126
11127         * bus/*.c: adapt to handle OOM for watches/timeouts
11128
11129         * dbus/dbus-transport-unix.c: port to handle OOM during
11130         watch handling
11131
11132         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
11133         reference to unused bytes instead of a copy
11134
11135         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
11136         out of memory
11137
11138         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
11139         FALSE on OOM
11140
11141         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
11142         of memory
11143
11144 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11145
11146         * doc/dbus-specification.sgml:
11147         Document reply message for ActivateService.
11148
11149 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11150
11151         * bus/activation.c: (bus_pending_activation_entry_free),
11152         (bus_pending_activation_free), (bus_activation_new),
11153         (bus_activation_unref), (bus_activation_service_created),
11154         (bus_activation_activate_service):
11155         * bus/activation.h:
11156         * bus/bus.c: (bus_context_new):
11157         * bus/desktop-file.c: (new_section):
11158         * bus/driver.c: (bus_driver_send_service_deleted),
11159         (bus_driver_handle_activate_service):
11160         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
11161         * bus/services.h:
11162         * dbus/dbus-connection.c:
11163         (dbus_connection_send_with_reply_and_block):
11164         * dbus/dbus-message.c: (dbus_message_append_args_valist):
11165         * dbus/dbus-protocol.h:
11166         Make activation work better. Now pending activations will be queued
11167         and the daemon won't try to activate services that are already registered.
11168
11169 2003-03-16  Havoc Pennington  <hp@pobox.com>
11170
11171         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
11172         connection data
11173
11174         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
11175         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
11176
11177 2003-03-16  Havoc Pennington  <hp@pobox.com>
11178
11179         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
11180         this. always run the test suite before commit...
11181
11182         * bus/*: adapt to DBusConnection API changes
11183
11184         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
11185         requires renaming stuff to avoid dbus_connection_dispatch name
11186         conflict.
11187
11188         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
11189         function
11190
11191         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
11192         separate from _dbus_message_loader_return_buffer()
11193
11194         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
11195         this, because it's now always broken to use; the number of
11196         messages in queue vs. the number still buffered by the message
11197         loader is undefined/meaningless. Should use
11198         dbus_connection_get_dispatch_state().
11199         (dbus_connection_dispatch): rename from
11200         dbus_connection_dispatch_message
11201
11202 2003-03-16  Havoc Pennington  <hp@pobox.com>
11203
11204         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
11205         implementation
11206
11207 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
11208
11209         * dbus/dbus-connection.c:
11210         (dbus_connection_send_with_reply_and_block):
11211         Decrease connection->n_incoming when removing an entry
11212         from the list.
11213         * dbus/dbus-dict.c: (dbus_dict_entry_free),
11214         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11215         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11216         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
11217         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
11218         (dbus_dict_get_byte_array):
11219         Handle NULL arrays and strings. Also add support for byte arrays.
11220
11221         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
11222         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
11223         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11224         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11225         (_dbus_demarshal_dict), (demarshal_and_validate_len),
11226         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
11227         * dbus/dbus-marshal.h:
11228         Add support for marshalling and demarshalling empty arrays and strings.
11229
11230         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11231         (dbus_message_append_string_array),
11232         (dbus_message_iter_get_boolean),
11233         (dbus_message_iter_get_boolean_array),
11234         (dbus_message_iter_get_int32_array),
11235         (dbus_message_iter_get_uint32_array),
11236         (dbus_message_iter_get_double_array),
11237         (dbus_message_iter_get_byte_array),
11238         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
11239         (check_message_handling):
11240         Add support for getting empty arrays and dicts.
11241
11242         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
11243         Don't do any validation at all for now, that's better than just checking
11244         for ASCII.
11245
11246         * test/data/valid-messages/emptiness.message:
11247         New test message with lots of empty arrays.
11248
11249 2003-03-16  Havoc Pennington  <hp@pobox.com>
11250
11251         * dbus/dbus-connection.c
11252         (_dbus_connection_queue_received_message_link): new function that
11253         can't fail due to OOM
11254
11255         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
11256         new function pops a message together with a list link
11257         containing it.
11258
11259         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
11260         message queuing functions to avoid needing to alloc memory
11261
11262 2003-03-16  Havoc Pennington  <hp@pobox.com>
11263
11264         Oops - test code was only testing failure of around 30 of the
11265         mallocs in the test path, but it turns out there are 500+
11266         mallocs. I believe this was due to misguided linking setup such
11267         that there was one copy of dbus_malloc etc. in the daemon and one
11268         in the shared lib, and only daemon mallocs were tested. In any
11269         case, the test case now tests all 500+ mallocs, and doesn't pass
11270         yet, though there are lots of fixes in this patch.
11271
11272         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
11273         this so that it doesn't need to allocate memory, since it
11274         has no way of indicating failure due to OOM (and would be
11275         annoying if it did).
11276
11277         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
11278
11279         * bus/Makefile.am: rearrange to create two self-contained
11280         libraries, to avoid having libraries with overlapping symbols.
11281         that was resulting in weirdness, e.g. I'm pretty sure there
11282         were two copies of global static variables.
11283
11284         * dbus/dbus-internals.c: move the malloc debug stuff to
11285         dbus-memory.c
11286
11287         * dbus/dbus-list.c (free_link): free list mempool if it becomes
11288         empty.
11289
11290         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
11291
11292         * dbus/dbus-address.c (dbus_parse_address): free list nodes
11293         on failure.
11294
11295         * bus/dispatch.c (bus_dispatch_add_connection): free
11296         message_handler_slot when no longer using it, so
11297         memory leak checkers are happy for the test suite.
11298
11299         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
11300
11301         * bus/bus.c (new_connection_callback): disconnect in here if
11302         bus_connections_setup_connection fails.
11303
11304         * bus/connection.c (bus_connections_unref): fix to free the
11305         connections
11306         (bus_connections_setup_connection): if this fails, don't
11307         disconnect the connection, just be sure there are no side
11308         effects.
11309
11310         * dbus/dbus-string.c (undo_alignment): unbreak this
11311
11312         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
11313         leaking
11314         (_dbus_auth_new): fix the order in which we free strings
11315         on OOM failure
11316
11317         * bus/connection.c (bus_connection_disconnected): fix to
11318         not send ServiceDeleted multiple times in case of memory
11319         allocation failure
11320
11321         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
11322         get the base service name
11323         (dbus_bus_register_client): don't return base service name,
11324         instead store it on the DBusConnection and have an accessor
11325         function for it.
11326         (dbus_bus_register_client): rename dbus_bus_register()
11327
11328         * bus/dispatch.c (check_hello_message): verify that other
11329         connections on the bus also got the correct results, not
11330         just the one sending hello
11331
11332 2003-03-15  Havoc Pennington  <hp@pobox.com>
11333
11334         Make it pass the Hello handling test including all OOM codepaths.
11335         Now to do other messages...
11336
11337         * bus/services.c (bus_service_remove_owner): fix crash when
11338         removing owner from an empty list of owners
11339         (bus_registry_ensure): don't leave service in the list of
11340         a connection's owned services if we fail to put the service
11341         in the hash table.
11342
11343         * bus/connection.c (bus_connection_preallocate_oom_error): set
11344         error flag on the OOM error.
11345
11346         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
11347         handle _dbus_transport_set_connection failure
11348
11349         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
11350         to create watches up front and simply enable/disable them as
11351         needed.
11352         (unix_connection_set): this can now fail on OOM
11353
11354         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
11355         of enabling/disabling a watch or timeout.
11356
11357         * bus/loop.c (bus_loop_iterate): don't touch disabled
11358         watches/timeouts
11359
11360         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
11361
11362 2003-03-15  Havoc Pennington  <hp@pobox.com>
11363
11364         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
11365         write useful test code, after all that futzing around ;-)
11366
11367         Test does not yet pass because we can't handle OOM in
11368         _dbus_transport_messages_pending (basically,
11369         dbus_connection_preallocate_send() does not prealloc the write
11370         watch). To fix this, I think we need to add new stuff to
11371         set_watch_functions, namely a SetEnabled function so we can alloc
11372         the watch earlier, then enable it later.
11373
11374         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
11375         dbus-memory.c to the convenience lib
11376
11377         * bus/test.c: rename some static functions to keep them clearly
11378         distinct from stuff in connection.c. Handle client disconnection.
11379
11380 2003-03-14  Havoc Pennington  <hp@pobox.com>
11381
11382         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
11383         transport, tests more of the real codepath. Set up clients
11384         with bus_setup_debug_client.
11385
11386         * bus/test.c (bus_setup_debug_client): function to set up debug
11387         "clients" on the main loop
11388
11389         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
11390         support
11391
11392         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
11393         server type
11394
11395         * dbus/dbus-server-debug.c: support a debug server based on pipes
11396
11397         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
11398         (_dbus_close): new function
11399
11400         * configure.in: check for socketpair
11401
11402 2003-03-14  Havoc Pennington  <hp@redhat.com>
11403
11404         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
11405         cheesy hack
11406
11407         * dbus/dbus-transport-debug.c: rework this a good bit to be
11408         less complicated. hopefully still works.
11409
11410         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
11411         manually
11412
11413         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
11414         after running it
11415
11416         * dbus/dbus-message.c (dbus_message_copy): rename from
11417         dbus_message_new_from_message, fix it up to copy
11418         all the message fields, add test case
11419
11420         * bus/dispatch.c (bus_dispatch_test): add some more test code,
11421         not quite passing yet
11422
11423 2003-03-14  Havoc Pennington  <hp@pobox.com>
11424
11425         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
11426         until no work remains" in test code. (the large diff here
11427         is just code movement, no actual changes)
11428
11429         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
11430         1, no point waiting around for test code.
11431         (_dbus_server_debug_accept_transport): unref the timeout
11432         after adding it (right?)
11433
11434         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
11435
11436 2003-03-13  Havoc Pennington  <hp@redhat.com>
11437
11438         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
11439         out of memory
11440
11441         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
11442         of memory
11443
11444         * dbus/dbus-connection.h: Make AddWatchFunction and
11445         AddTimeoutFunction return a bool so they can fail on out-of-memory
11446
11447         * bus/bus.c (bus_context_new): set up timeout handlers
11448
11449         * bus/connection.c (bus_connections_setup_connection): set up
11450         timeout handlers
11451
11452         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
11453         can fail
11454
11455         * bus/bus.c (bus_context_new): adapt to changes
11456
11457         * bus/connection.c: adapt to changes
11458
11459         * test/watch.c: adapt to DBusWatch changes
11460
11461         * bus/dispatch.c (bus_dispatch_test): started adding this but
11462         didn't finish
11463
11464 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
11465
11466         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
11467
11468 2003-03-13  Havoc Pennington  <hp@pobox.com>
11469
11470         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
11471         set up a test framework as for the library
11472
11473 2003-03-12  Havoc Pennington  <hp@pobox.com>
11474
11475         Throughout: purge global variables, introduce BusActivation,
11476         BusConnections, BusRegistry, etc. objects instead.
11477
11478         * bus/bus.h, bus/bus.c: introduce BusContext as a global
11479         message bus object
11480
11481         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
11482         going to redo this a bit differently I think
11483
11484 2003-03-12  Havoc Pennington  <hp@redhat.com>
11485
11486         Mega-patch that gets the message bus daemon initially handling
11487         out-of-memory. Work still needed. Also lots of random
11488         moving stuff to DBusError instead of ResultCode.
11489
11490         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
11491
11492         * dbus/dbus-connection.c
11493         (dbus_connection_send_with_reply_and_block): use DBusError
11494
11495         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
11496         DBusResultCode
11497
11498         * dbus/dbus-connection.c (dbus_connection_send): drop the result
11499         code here, as the only failure possible is OOM.
11500
11501         * bus/connection.c (bus_connection_disconnect):
11502         rename bus_connection_disconnected as it's a notification only
11503
11504         * bus/driver.c (bus_driver_handle_acquire_service): don't free
11505         "name" on get_args failure, should be done by get_args;
11506         don't disconnect client for bad args, just return an error.
11507         (bus_driver_handle_service_exists): ditto
11508
11509         * bus/services.c (bus_services_list): NULL-terminate returned array
11510
11511         * bus/driver.c (bus_driver_send_service_lost)
11512         (bus_driver_send_service_acquired): send messages from driver to a
11513         specific client to the client's unique name, not to the broadcast
11514         service.
11515
11516         * dbus/dbus-message.c (decode_header_data): reject messages that
11517         contain no name field
11518         (_dbus_message_get_client_serial): rename to
11519         dbus_message_get_serial and make public
11520         (_dbus_message_set_serial): rename from set_client_serial
11521         (_dbus_message_set_reply_serial): make public
11522         (_dbus_message_get_reply_serial): make public
11523
11524         * bus/connection.c (bus_connection_foreach): allow stopping
11525         iteration by returning FALSE from foreach function.
11526
11527         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
11528         (dbus_connection_free_preallocated_send)
11529         (dbus_connection_preallocate_send): new API for sending a message
11530         without possibility of malloc failure.
11531         (dbus_connection_send_message): rename to just
11532         dbus_connection_send (and same for whole function family)
11533
11534         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
11535
11536         * dbus/dbus-sysdeps.c (_dbus_exit): new function
11537
11538         * bus/activation.c: handle/return errors
11539
11540         * dbus/dbus-errors.h: add more DBUS_ERROR #define
11541
11542         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
11543         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
11544         (_dbus_result_from_errno): move to this file
11545
11546 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
11547
11548         * dbus/dbus-marshal.c:
11549         (_dbus_marshal_set_string):
11550         Take a length argument so we can marshal the correct string
11551         length.
11552
11553         (_dbus_marshal_dict), (_dbus_demarshal_dict),
11554         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
11555         (_dbus_marshal_test):
11556         * dbus/dbus-marshal.h:
11557         Add support for marshalling and demarshalling dicts.
11558
11559         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11560         Add support for TYPE DICT.
11561
11562         * dbus/dbus-message.c: (set_string_field):
11563         Adjust header padding.
11564
11565         (dbus_message_append_args_valist), (dbus_message_append_dict),
11566         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
11567         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
11568         (check_message_handling), (check_have_valid_message):
11569         * dbus/dbus-message.h:
11570         Add functions for setting and getting dicts.
11571
11572         * dbus/dbus-protocol.h:
11573         Add DBUS_TYPE_DICT.
11574
11575         * dbus/dbus.h:
11576         Add dbus-dict.h
11577
11578         * doc/dbus-specification.sgml:
11579         Add information about how dicts are marshalled.
11580
11581         * test/data/invalid-messages/dict-with-nil-value.message:
11582         * test/data/invalid-messages/too-short-dict.message:
11583         * test/data/valid-messages/dict-simple.message:
11584         * test/data/valid-messages/dict.message:
11585         Add sample messages containing dicts.
11586
11587 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
11588
11589         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
11590
11591 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11592
11593         * dbus/Makefile.am:
11594         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11595         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
11596         (dbus_dict_set_int32), (dbus_dict_set_uint32),
11597         (dbus_dict_set_double), (dbus_dict_set_string),
11598         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
11599         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
11600         (dbus_dict_set_string_array), (_dbus_dict_test):
11601         * dbus/dbus-dict.h:
11602         Fix according to comments from Havoc.
11603
11604 2003-03-06  Michael Meeks  <michael@server.home>
11605
11606         * configure.in: if we don't have kde-config, disable have_qt.
11607
11608 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
11609
11610         * dbus/Makefile.am:
11611         Add dbus-dict.[ch]
11612
11613         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
11614         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
11615         (dbus_dict_remove), (dbus_dict_get_value_type),
11616         (dbus_dict_get_keys), (dbus_dict_put_boolean),
11617         (dbus_dict_put_int32), (dbus_dict_put_uint32),
11618         (dbus_dict_put_double), (dbus_dict_put_string),
11619         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
11620         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
11621         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
11622         (dbus_dict_get_int32), (dbus_dict_get_uint32),
11623         (dbus_dict_get_double), (dbus_dict_get_string),
11624         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
11625         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
11626         (dbus_dict_get_string_array), (_dbus_dict_test):
11627         * dbus/dbus-dict.h:
11628         Add DBusDict implementation
11629
11630         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
11631         * dbus/dbus-test.h:
11632         Add _dbus_dict_test
11633
11634 2003-03-04  Havoc Pennington  <hp@pobox.com>
11635
11636         * test/data/auth/*: adapt to changes
11637
11638         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
11639         USERID_BASE64 and change USERNAME_BASE64 to put in username not
11640         userid
11641
11642         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
11643         more stuff from being in a context name, to make the protocol
11644         simpler to deal with
11645
11646         * dbus/dbus-errors.c (dbus_error_has_name): new function
11647         (dbus_error_is_set): new function
11648
11649         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
11650         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
11651
11652         * dbus/dbus-connection.c (dbus_connection_flush): also read
11653         messages during a flush operation
11654
11655         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
11656
11657 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11658
11659         * configure.in: Check for gethostbyname on Solaris.
11660
11661         * dbus/dbus-transport.c: (_dbus_transport_open):
11662         Remove duplicate "tcp" entry.
11663
11664         * doc/dbus-specification.sgml:
11665         Clarify some things.
11666
11667 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11668
11669         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
11670         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
11671         (_dbus_keyring_test):
11672         * dbus/dbus-md5.c: (_dbus_md5_compute):
11673         * dbus/dbus-sha.c: (_dbus_sha_compute):
11674         Plug memory leaks.
11675
11676 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
11677
11678         * README: Add some things.
11679
11680 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
11681
11682         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
11683         after case DBUS_TYPE_BOOELAN.
11684
11685 2003-03-02  Havoc Pennington  <hp@pobox.com>
11686
11687         * test/break-loader.c (randomly_set_extreme_ints): add test that
11688         sets really huge and small integers
11689
11690         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
11691         that length of boolean array fits in the string, and that
11692         string has room for boolean value in single-bool case.
11693
11694         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
11695         optional value to "ALIGN" command which is what to fill the
11696         alignment with.
11697
11698         * test/data/valid-messages/no-padding.message: add regression
11699         test for the message padding problem
11700
11701 2003-03-02  Havoc Pennington  <hp@pobox.com>
11702
11703         * dbus/dbus-message.c (decode_header_data): fix to always init
11704         message_padding, from Benjamin Dauvergne
11705
11706 2003-03-02  Havoc Pennington  <hp@pobox.com>
11707
11708         * configure.in: 0.5
11709
11710         * NEWS: Update.
11711
11712 2003-03-01  Joe Shaw  <joe@assbarn.com>
11713
11714         * configure.in: Check for "struct cmsgcred" and try to access its
11715         members for BSD-like unices.
11716
11717         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
11718         _dbus_read_credentials_unix_socket().
11719         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
11720         read() for reading the credential byte off the unix socket.  Use
11721         struct cmsgcred on systems that support it.
11722
11723 2003-02-27  Alexander Larsson  <alexl@redhat.com>
11724
11725         * glib/Makefile.am:
11726         * configure.in:
11727         Make gthreads-2.0 dependency optional. Don't build thread test if
11728         its not found.
11729
11730 2003-02-27  Havoc Pennington  <hp@pobox.com>
11731
11732         * dbus/dbus-connection.c
11733         (dbus_connection_send_message_with_reply_and_block): fix doh!
11734         doh! doh! bug that resulted in never removing a reply from the
11735         queue, no wonder we called get_reply_serial so much ;-)
11736
11737         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
11738         and client serial instead of demarshaling them every time
11739
11740 2003-02-27  Havoc Pennington  <hp@pobox.com>
11741
11742         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
11743         more inlined, using dbus-string-private.h, speeds things up
11744         substantially
11745
11746         * dbus/dbus-string.c (_dbus_string_free): apply align offset
11747         when freeing the string
11748         (_dbus_string_steal_data): fix for align offset
11749         (undo_alignment): new function
11750
11751 2003-02-26  Havoc Pennington  <hp@redhat.com>
11752
11753         All kinds of audit fixes from Owen, plus initial attempt to
11754         handle unaligned memory returned from malloc.
11755
11756         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
11757         leave room for align_offset and nul byte
11758         (fixup_alignment): function to track an align_offset and
11759         ensure real->str is aligned
11760         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
11761         to allow a nul byte plus align offset
11762         (_dbus_string_lock): fix overflow issue
11763         (_dbus_string_init_const_len): add assertions on sanity of len,
11764         assign allocated to be ALLOCATION_PADDING larger than len
11765         (set_length): fixup the overflow handling
11766         (_dbus_string_get_data_len): fix overflow in assertion
11767         (open_gap): detect overflow in size of gap to be opened
11768         (_dbus_string_lengthen): add overflow check
11769         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
11770         (_dbus_string_append): add overflow check
11771         (_dbus_string_append_unichar): overflow
11772         (_dbus_string_delete): fix overflow in assertion
11773         (_dbus_string_copy_len): overflow in assertion
11774         (_dbus_string_replace_len): overflows in assertions
11775         (_dbus_string_find): change to implement in terms of
11776         _dbus_string_find_to
11777         (_dbus_string_find_to): assorted fixage
11778         (_dbus_string_equal_c_str): assert c_str != NULL,
11779         fix logic so the function works
11780         (_dbus_string_ends_with_c_str): fix overflow thingy
11781         (_dbus_string_base64_encode): overflow fix
11782         (_dbus_string_validate_ascii): overflow
11783         (_dbus_string_validate_nul): overflow
11784
11785 2003-02-26  Havoc Pennington  <hp@redhat.com>
11786
11787         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
11788
11789 2003-02-26  Alexander Larsson  <alexl@redhat.com>
11790
11791         * configure.in:
11792         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
11793
11794         * dbus/dbus-connection.c:
11795         * dbus/dbus-connection.h:
11796         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
11797         Add dbus_connection_set_wakeup_main_function and use it when queueing
11798         incoming and outgoing messages.
11799
11800
11801         * dbus/dbus-dataslot.c:
11802         Threadsafe usage of DBusDataSlotAllocator
11803
11804         * dbus/dbus-message.c: (dbus_message_get_args_iter):
11805         dbus_new can fail.
11806
11807         * dbus/dbus-server-unix.c:
11808         Add todo comment
11809
11810         * glib/dbus-gmain.c:
11811         Implement the new wakeup functions for glib.
11812
11813         * glib/Makefile.am:
11814         * glib/test-thread-client.c:
11815         * glib/test-thread-server.c:
11816         * glib/test-thread.h:
11817         Initial cut at some thread test code. Not really done yet.
11818
11819 2003-02-26  Havoc Pennington  <hp@pobox.com>
11820
11821         * dbus/dbus-connection.c
11822         (dbus_connection_send_message_with_reply_and_block): fix crash
11823         where we ref'd the outgoing message instead of the returned reply
11824
11825         * dbus/dbus-transport-unix.c (do_authentication): check read watch
11826         at the end of this function, so if we didn't need to read for
11827         authentication, we reinstall it for receiving messages
11828
11829         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
11830         a NULL sender for peer-to-peer case
11831
11832         * dbus/dbus-transport-unix.c (check_read_watch): handle
11833         !authenticated case correctly
11834
11835         * glib/dbus-gmain.c: add support for DBusServer
11836
11837         * dbus/dbus-server.c: add data slot support
11838
11839         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
11840         return values and handle errors
11841
11842         * dbus/dbus-dataslot.c: factor out the data slot stuff from
11843         DBusConnection
11844
11845         * Doxyfile.in (INPUT): add glib subdir
11846
11847         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
11848         setup_with_g_main instead of hookup_with_g_main; write docs
11849
11850 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11851
11852         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
11853         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11854         * dbus/dbus-message.c: (dbus_message_append_boolean),
11855         (dbus_message_append_boolean_array),
11856         (dbus_message_get_args_valist), (_dbus_message_test):
11857         * dbus/dbus-message.h:
11858         * doc/dbus-specification.sgml:
11859         Various fixes as pointed out by Havoc.
11860
11861         * test/data/invalid-messages/bad-boolean-array.message:
11862         * test/data/invalid-messages/bad-boolean.message:
11863         Add invalid boolean value test cases.
11864
11865 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
11866
11867         * dbus/dbus-internals.c: (_dbus_type_to_string):
11868         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11869         (_dbus_marshal_validate_arg):
11870         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11871         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11872         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
11873         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
11874         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
11875         (dbus_message_iter_get_double),
11876         (dbus_message_iter_get_boolean_array), (message_iter_test):
11877         * dbus/dbus-message.h:
11878         * dbus/dbus-protocol.h:
11879         * doc/dbus-specification.sgml:
11880         * test/data/valid-messages/lots-of-arguments.message:
11881         Add support for boolean and boolean array types.
11882
11883 2003-02-23  Havoc Pennington  <hp@pobox.com>
11884
11885         * dbus/dbus-keyring.c: finish most of this implementation and
11886         simple unit test
11887
11888         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
11889         these barf if the error isn't cleared to NULL
11890
11891         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
11892         (_dbus_create_directory): new function
11893
11894         * dbus/dbus-errors.c (dbus_set_error): fix warning
11895
11896         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
11897         (_dbus_string_hex_decode): new function
11898         (test_hex_roundtrip): test code
11899
11900         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
11901
11902         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
11903
11904         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
11905         the save-to-temp/rename trick to atomically write the new file
11906         (_dbus_string_parse_uint): new function
11907
11908 2003-02-22  Havoc Pennington  <hp@pobox.com>
11909
11910         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
11911
11912 2003-02-22  Havoc Pennington  <hp@pobox.com>
11913
11914         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
11915         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
11916
11917         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
11918
11919         * dbus/test/data/sha-1: add US government test suite for SHA-1
11920
11921 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11922
11923         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11924         Make string arrays NULL-terminated.
11925
11926         * dbus/dbus-memory.c: (dbus_free_string_array):
11927         * dbus/dbus-memory.h:
11928         New function for freeing NULL-terminated string arrays.
11929
11930         * dbus/dbus-message-builder.c: (append_quoted_string),
11931         (_dbus_message_data_load):
11932         Add support for array types.
11933
11934         * dbus/dbus-message.c: (check_message_handling):
11935         Add more types as test cases.
11936
11937         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
11938         (_dbus_string_parse_double):
11939         Add the start offset to the end offset.
11940
11941         * test/data/valid-messages/lots-of-arguments.message:
11942         New test message with lots of arguments.
11943
11944 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11945
11946         * dbus/dbus-message.c: (dbus_message_append_nil),
11947         (dbus_message_append_int32), (dbus_message_append_uint32),
11948         (dbus_message_append_double), (dbus_message_append_string),
11949         (dbus_message_append_int32_array),
11950         (dbus_message_append_uint32_array),
11951         (dbus_message_append_double_array),
11952         (dbus_message_append_byte_array),
11953         (dbus_message_append_string_array):
11954         Fix all out-of-memory handling in these functions.
11955
11956 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11957
11958         * dbus/dbus-message.c: (dbus_message_append_nil):
11959         Fix a silly.
11960
11961 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11962
11963         * dbus/dbus-message.c: (dbus_message_append_args_valist),
11964         (dbus_message_append_nil), (dbus_message_append_int32_array),
11965         (dbus_message_append_uint32_array),
11966         (dbus_message_append_double_array),
11967         (dbus_message_append_byte_array),
11968         (dbus_message_append_string_array), (dbus_message_get_args_valist),
11969         (dbus_message_iter_get_int32_array),
11970         (dbus_message_iter_get_uint32_array),
11971         (dbus_message_iter_get_double_array),
11972         (dbus_message_iter_get_byte_array),
11973         (dbus_message_iter_get_string_array):
11974
11975         * dbus/dbus-message.h:
11976         Add functions for appending and getting arrays.
11977
11978 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
11979
11980         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
11981         element size at least 8 bytes, fixes mempool tests on
11982         64-bit machines.
11983
11984 2003-02-20  Alexander Larsson  <alexl@redhat.com>
11985
11986         * dbus/dbus-transport-unix.c (unix_do_iteration):
11987         Unlock the connection mutex during a blocking select call.
11988         Add todo about how we need a way to wake up the select.
11989
11990         * dbus/dbus-connection-internal.h:
11991         * dbus/dbus-connection.c:
11992         Add _dbus_connection_lock and _dbus_connection_unlock.
11993
11994 2003-02-19  Havoc Pennington  <hp@pobox.com>
11995
11996         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
11997         Doxyfile.in, not Doxyfile
11998
11999         * dbus/dbus-keyring.c: do some hacking on this
12000
12001         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12002
12003         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12004         dbus_error_init
12005         (dbus_set_error): remove dbus_error_init, check for message ==
12006         NULL *before* we sprintf into it, and add @todo about including
12007         system headers in this file
12008
12009         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12010
12011         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12012
12013         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12014         get various bits of user information based on either username
12015         or user ID
12016         (_dbus_homedir_from_username): new function
12017
12018 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12019
12020         * configure.in:
12021         Add check for nonposix getpwnam_r
12022
12023         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12024         Align the pool element size to a sizeof (void *) boundary.
12025
12026         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12027         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12028         General Solaris fixes.
12029
12030         * test/data/valid-messages/simplest-manual.message:
12031         Explicitly state that we want little-endian packing.
12032
12033 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12034
12035         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12036
12037         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12038         Added to create a transport connecting using a tcp/ip socket.
12039
12040         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12041         to a tcp socket at given host and port.
12042         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12043         hostname and port.
12044
12045         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12046
12047         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12048         Added to create a server listening on a TCP/IP socket.
12049
12050 2003-02-19  Havoc Pennington  <hp@pobox.com>
12051
12052         Throughout: mop up all the Doxygen warnings and undocumented
12053         stuff.
12054
12055         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12056         to search any paths.
12057
12058         * dbus/dbus-threads.c: move global mutex initializers to
12059         dbus-internals.h, multiple prototypes was confusing doxygen
12060         besides being kind of ugly
12061
12062         * Doxyfile (PREDEFINED): have Doxygen define
12063         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12064         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12065         (do not abuse the feature! it's for stuff like the autogenerated
12066         macros in dbus-md5.c, not just for things you don't feel like
12067         documenting...)
12068
12069 2003-02-18  Havoc Pennington  <hp@pobox.com>
12070
12071         * dbus/dbus-string.c (_dbus_string_zero): new function
12072
12073         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12074         wrap it in some dbus-friendly API
12075
12076         * dbus/dbus-types.h: add 16-bit types
12077
12078 2003-02-18  Joe Shaw  <joe@assbarn.com>
12079
12080         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
12081         credentials from our currently running process.
12082         (get_word): Fix a buglet where we were copying the entire length
12083         instead of relative to our position.
12084
12085         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
12086         keys on the stack... it's 640k of data.
12087
12088         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
12089         read the credentials byte off the socket, even if we don't have
12090         SO_PEERCRED.
12091         (_dbus_poll): Implement poll() using select() for systems which
12092         don't have it.
12093
12094         * glib/test-dbus-glib.c (main): Print out an error if no
12095         parameters are given.
12096
12097         * test/data/auth/fallback.auth-script: Added.  Tests that a client
12098         can fallback to a secondary auth mechanism if the first fails.
12099
12100 2003-02-18  Havoc Pennington  <hp@pobox.com>
12101
12102         * AUTHORS: add Alex
12103
12104 2003-02-17  Havoc Pennington  <hp@pobox.com>
12105
12106         * doc/dbus-specification.sgml: lots of cosmetic
12107         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
12108         env variable to DBUS_BUS_ADDRESS, s/client/application/,
12109         s/server/bus/ (except in authentication section). Add a section
12110         "Message Bus Message Routing"
12111
12112 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
12113
12114         Release 0.4
12115
12116         * NEWS: Update
12117
12118 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12119
12120         * doc/dbus-specification.sgml:
12121         Specification updates.
12122
12123 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12124
12125         * bus/activation.c: (bus_activation_init), (child_setup),
12126         (bus_activation_activate_service):
12127         * bus/activation.h:
12128         * bus/main.c: (main):
12129         Set DBUS_ADDRESS environment variable.
12130
12131         * dbus/dbus-errors.c: (dbus_set_error):
12132         Don't use va_copy since that's a C99 feature.
12133
12134         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
12135         (_dbus_spawn_async):
12136         * dbus/dbus-sysdeps.h:
12137         Add child_setup_func to _dbus_spawn_async.
12138
12139         * doc/dbus-specification.sgml:
12140         Update specification.
12141
12142         * test/spawn-test.c: (setup_func), (main):
12143         Fix test.
12144
12145 2003-02-17  Alexander Larsson  <alexl@redhat.com>
12146
12147         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
12148         Added todo.
12149
12150 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12151
12152         * doc/.cvsignore:
12153         * doc/Makefile.am:
12154         * doc/dbus-test-plan.sgml:
12155         Add test plan document.
12156
12157         * test/Makefile.am:
12158         Fix distcheck.
12159
12160 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
12161
12162         * dbus/dbus-message.c: (decode_header_data),
12163         (_dbus_message_loader_return_buffer):
12164         Set the header padding amount when loading a message.
12165
12166 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12167
12168         * bus/dispatch.c: (send_one_message):
12169         Only send broadcast messages to registered connections.
12170
12171         * dbus/dbus-message.c: (dbus_message_name_is):
12172         * dbus/dbus-message.h:
12173         New convenience function.
12174
12175         * dbus/dbus-transport-debug.c: (do_reading):
12176         Only dispatch one message per run.
12177
12178         * test/Makefile.am:
12179         * test/bus-test.c: (new_connection_callback), (die),
12180         (test_hello_client1_handler), (test_hello_client2_handler),
12181         (test_hello_replies), (main):
12182
12183         * test/bus-test-loop.[ch]:
12184         Add these.
12185
12186 2003-02-16  Havoc Pennington  <hp@pobox.com>
12187
12188         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12189         backward conditional
12190
12191 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12192
12193         * dbus/dbus-connection.c:
12194         Implement sent_message_with_reply. (with_reply_and block is still
12195         busted).
12196         Made dispatch_message not lose message if OOM.
12197
12198         * dbus/dbus-errors.h:
12199         Add NoReply error (for reply timeouts).
12200
12201 2003-02-16  Alexander Larsson  <alexl@redhat.com>
12202
12203         * dbus/dbus-hash.c (_dbus_hash_table_unref):
12204         Actually free keys and values when destroying hashtable.
12205
12206 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12207
12208         * dbus/dbus-auth.c: (client_try_next_mechanism):
12209         Plug a leak.
12210
12211         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
12212         Return TRUE if there's no thread implementation around.
12213
12214         * glib/dbus-gmain.c: (free_source),
12215         (dbus_connection_hookup_with_g_main):
12216         Make sure to remove the GSource when the connection is finalized.
12217
12218 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12219
12220         * bus/dispatch.c: (bus_dispatch_message_handler):
12221         * dbus/dbus-errors.h:
12222         Return an error if someone tries to send a message to a service
12223         that doesn't exist.
12224
12225 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
12226
12227         * bus/activation.c: (load_directory), (bus_activation_init),
12228         (bus_activation_activate_service):
12229         * bus/activation.h:
12230         * bus/driver.c:
12231         (bus_driver_handle_activate_service), (bus_driver_handle_message):
12232         More work on the activation handling.
12233
12234         * dbus/dbus-errors.h:
12235         Add some error messages
12236
12237         * dbus/dbus-message.c: (dbus_message_new_error_reply):
12238         * dbus/dbus-message.h:
12239         New function that creates an error message.
12240
12241         * dbus/dbus-protocol.h:
12242         Add ACTIVATE_SERVER message.
12243
12244         * dbus/dbus-server-unix.c: (unix_handle_watch),
12245         (_dbus_server_new_for_domain_socket):
12246         Call _dbus_fd_set_close_on_exec.
12247
12248         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
12249         (_dbus_spawn_async), (_dbus_disable_sigpipe),
12250         (_dbus_fd_set_close_on_exec):
12251         * dbus/dbus-sysdeps.h:
12252         Add _dbus_fd_set_close_on exec function. Also add function that checks
12253         that all open fds are set to close-on-exec and warns otherwise.
12254
12255         * dbus/dbus-transport-unix.c:
12256         (_dbus_transport_new_for_domain_socket):
12257         Call _dbus_fd_set_close_on_exec.
12258
12259 2003-02-16  Havoc Pennington  <hp@pobox.com>
12260
12261         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
12262         allow people to avoid setting SIGPIPE to SIG_IGN
12263         (_dbus_connection_new_for_transport): disable SIGPIPE unless
12264         we've been asked not to
12265
12266 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12267
12268         * dbus/dbus-list.c: (_dbus_list_append_link),
12269         (_dbus_list_prepend_link):
12270         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
12271         (dbus_realloc):
12272         Warning fixes.
12273
12274 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12275
12276         * bus/Makefile.am:
12277         * bus/activation.c: (bus_activation_entry_free),
12278         (add_desktop_file_entry), (load_directory), (bus_activation_init):
12279         * bus/activation.h:
12280         * bus/main.c: (main):
12281         Add simple activation support, doesn't work yet though.
12282
12283 2003-02-15   Zack Rusin  <zack@kde.org>
12284
12285         * qt/dbus-qthread.cpp:  small casting fix
12286
12287 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12288
12289         * dbus/dbus-errors.c: (dbus_set_error):
12290         * dbus/dbus-errors.h:
12291         Add a few errors and make dbus_set_error void.
12292
12293         * dbus/dbus-sysdeps.c:
12294         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
12295         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
12296         * dbus/dbus-sysdeps.h:
12297         Add _dbus_spawn_async.
12298
12299         * test/spawn-test.c: (main):
12300         Test for _dbus_spawn_async.
12301
12302 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
12303
12304         * dbus/dbus-internals.h:
12305         Fix build without tests.
12306
12307         * dbus/dbus-list.c: (alloc_link):
12308         Fix a segfault when a malloc fails.
12309
12310         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
12311         (dbus_malloc0), (dbus_realloc):
12312         Add support for malloc debugging.
12313
12314 2003-02-15  Alexander Larsson  <alexl@redhat.com>
12315
12316         * dbus/dbus-threads.c:
12317         * dbus/dbus-threads.h:
12318         Add condvars. Remove static mutext from API.
12319         Implement static mutexes by initializing them from threads_init.
12320
12321         * glib/dbus-gthread.c:
12322         * qt/dbus-qthread.cpp:
12323         Update with the thread api changes.
12324
12325
12326         * dbus/dbus-list.c:
12327         * dbus/dbus-list.h:
12328         Turn StaticMutex into normal mutex + init function.
12329         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
12330         _dbus_list_append_link, _dbus_list_prepend_link
12331
12332
12333         * dbus/dbus-sysdeps.c:
12334         * dbus/dbus-sysdeps.h:
12335         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
12336         _dbus_atomic_dec. Only slow fallback implementation at the moment.
12337
12338         * dbus/dbus-protocol.h:
12339         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
12340
12341         * dbus/dbus-message.c:
12342         Make ref/unref atomic.
12343         Fix some docs.
12344
12345         * dbus/dbus-connection-internal.h:
12346         * dbus/dbus-connection.c:
12347         * dbus/dbus-connection.h:
12348         Make threadsafe.
12349         Change _peek to _borrow,_return & _steal_borrowed.
12350         Change disconnect callback to event.
12351         Make dbus_connection_dispatch_messages reentrant.
12352
12353         * dbus/dbus-transport.c:
12354         Don't ref the connection on calls to the transport
12355         implementation.
12356
12357         * dbus/dbus-message-handler.c:
12358         Make threadsafe.
12359
12360         * glib/dbus-gmain.c:
12361         Don't use peek_message anymore
12362
12363         * test/Makefile.am:
12364         * test/debug-thread.c:
12365         * test/debug-thread.h:
12366         Simple thread implementation that asserts() on deadlocks in
12367         single-threaded code.
12368
12369         * test/bus-test.c:
12370         (main) Call debug_threads_init.
12371
12372         * test/watch.c:
12373         Use disconnect message instead of disconnect callback.
12374
12375         * bus/connection.c:
12376         * bus/connection.h:
12377         Don't call dbus_connection_set_disconnect_function. Instead export
12378         bus_connection_disconnect.
12379
12380         * bus/dispatch.c:
12381         Call bus_connection_disconnect when we get a disconnected message.
12382
12383 2003-02-15  Havoc Pennington  <hp@pobox.com>
12384
12385         * dbus/dbus-message.c (dbus_message_new): fool around with the
12386         docs
12387
12388 2003-02-14  Havoc Pennington  <hp@pobox.com>
12389
12390         * dbus/dbus-mempool.c: fail if the debug functions so indicate
12391
12392         * dbus/dbus-memory.c: fail if the debug functions indicate we
12393         should
12394
12395         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
12396         (_dbus_decrement_fail_alloc_counter): debug functions to
12397         simulate memory allocation failures
12398
12399 2003-02-14  Havoc Pennington  <hp@pobox.com>
12400
12401         * dbus/dbus-errors.h (struct DBusError): add a word of padding
12402         to DBusError
12403
12404 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12405
12406         * bus/driver.c: (bus_driver_handle_hello):
12407         * bus/driver.h:
12408         * bus/services.c: (bus_service_lookup):
12409         Reorder message sending so we get a more sane order.
12410
12411         * test/bus-test.c: (message_handler):
12412         Fix tyop.
12413
12414 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12415
12416         * bus/driver.c: (bus_driver_send_service_deleted),
12417         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12418         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12419         (bus_driver_send_welcome_message),
12420         (bus_driver_handle_list_services),
12421         (bus_driver_handle_acquire_service),
12422         (bus_driver_handle_service_exists):
12423         * dbus/dbus-bus.c: (dbus_bus_register_client),
12424         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12425         * dbus/dbus-errors.c: (dbus_result_to_string):
12426         * dbus/dbus-errors.h:
12427         * dbus/dbus-message.c: (dbus_message_append_args),
12428         (dbus_message_append_args_valist), (dbus_message_get_args),
12429         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
12430         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
12431         (dbus_message_iter_get_byte_array),
12432         (dbus_message_iter_get_string_array), (message_iter_test),
12433         (check_message_handling), (_dbus_message_test):
12434         * dbus/dbus-message.h:
12435         * test/bus-test.c: (main):
12436         Change fields to arguments in messages, so that they won't be
12437         confused with header fields.
12438
12439         * glib/test-dbus-glib.c: (main):
12440         Remove append_fields from hello message.
12441
12442 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12443
12444         * dbus/dbus-errors.c:
12445         * dbus/dbus-message.c:
12446         * dbus/dbus-string.c:
12447         Documentation fixes.
12448
12449 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12450
12451         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
12452         (remove_timeout):
12453         Implement support for timeouts in dbus-glib.
12454
12455 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12456
12457         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12458         * dbus/dbus-message.c: (process_test_subdir):
12459         * test/break-loader.c: (find_breaks_based_on):
12460         Plug some memory leaks.
12461
12462 2003-02-13  Richard Hult  <rhult@codefactory.se>
12463
12464         * bus/main.c: Fix build.
12465
12466         * dbus/dbus-errors.h:
12467         * dbus/dbus-errors.c: Fix copyright for Anders.
12468
12469 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12470
12471         * bus/Makefile.am:
12472         Add utils.[ch]
12473
12474         * bus/connection.c: (bus_connection_foreach):
12475         Fix a warning.
12476
12477         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
12478         (unescape_string), (new_section), (parse_section_start),
12479         (parse_key_value), (report_error), (bus_desktop_file_load),
12480         (bus_desktop_file_get_string):
12481         * bus/desktop-file.h:
12482         Use DBusError for error reporting.
12483
12484         * bus/dispatch.c: (send_one_message),
12485         (bus_dispatch_message_handler):
12486         * bus/driver.c: (bus_driver_send_service_deleted),
12487         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12488         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
12489         (bus_driver_send_welcome_message),
12490         (bus_driver_handle_list_services),
12491         (bus_driver_handle_acquire_service),
12492         (bus_driver_handle_service_exists):
12493         * bus/loop.c: (bus_loop_run):
12494         * bus/main.c:
12495         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
12496
12497         * bus/utils.c: (bus_wait_for_memory):
12498         * bus/utils.h:
12499         New files with general utility functions.
12500
12501         * dbus/dbus-internals.h:
12502         Remove _DBUS_HANDLE_OOM.
12503
12504 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12505
12506         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
12507         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
12508         * dbus/dbus-errors.h:
12509         Add DBusError structure.
12510
12511 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12512
12513         * test/data/valid-messages/standard-acquire-service.message:
12514         * test/data/valid-messages/standard-hello.message:
12515         * test/data/valid-messages/standard-list-services.message:
12516         * test/data/valid-messages/standard-service-exists.message:
12517         Add some standard messages.
12518
12519 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12520
12521         * bus/driver.c: (bus_driver_send_welcome_message),
12522         (bus_driver_handle_list_services),
12523         (bus_driver_handle_acquire_service),
12524         (bus_driver_handle_service_exists), (bus_driver_handle_message):
12525         Update for API changes in libdbus.
12526
12527         * dbus/dbus-message.c: (dbus_message_new_reply):
12528         * dbus/dbus-message.h:
12529         Remove the name argument. The spec states that replies shouldn't
12530         have a name.
12531
12532 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
12533
12534         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
12535         (report_error), (bus_desktop_file_load), (lookup_section),
12536         (lookup_line), (bus_desktop_file_get_raw),
12537         (bus_desktop_file_get_string):
12538         * bus/desktop-file.h:
12539         Some fixes, and new functions for getting a key value from a section.
12540
12541 2003-02-13  Havoc Pennington  <hp@pobox.com>
12542
12543         * test/data/auth/fail-after-n-attempts.auth-script: new test
12544
12545         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
12546         reject the client.
12547
12548 2003-02-13  Havoc Pennington  <hp@pobox.com>
12549
12550         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
12551         dbus_credentials_match were backward
12552
12553         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
12554         NO_CREDENTIALS and ROOT_CREDENTIALS
12555
12556         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
12557         into here. Never process more commands after we've reached an
12558         end state; store further data as unused bytes.
12559
12560         * test/data/auth/*: add more auth tests
12561
12562         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
12563         command to match exact string and EXPECT_UNUSED to match unused
12564         bytes
12565
12566         * test/Makefile.am (dist-hook): fix to dist all the test stuff
12567
12568 2003-02-12  Havoc Pennington  <hp@pobox.com>
12569
12570         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
12571         \r off of popped lines
12572
12573         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
12574         scripts
12575
12576         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
12577         SEND, append \r\n
12578
12579 2003-02-12  Havoc Pennington  <hp@pobox.com>
12580
12581         * dbus/Makefile.am: remove break-loader from the build, since it
12582         moved.
12583
12584         * configure.in: add --enable-gcov to turn on coverage profiling
12585         flags and disable optimization
12586
12587 2003-02-10  Havoc Pennington  <hp@pobox.com>
12588
12589         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
12590         initial cut at test framework for DBusAuth from laptop.
12591         Doesn't quite work yet but it compiles and I need to get
12592         it off the 266mhz laptop. ;-)
12593
12594         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
12595         fix a memleak in error case
12596
12597 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
12598
12599         * bus/Makefile.am:
12600         * bus/desktop-file.c:
12601         * bus/desktop-file.h:
12602         Add a desktop file parser.
12603
12604 2003-02-11  Zack Rusin  <zack@kde.org>
12605
12606         * qt/message.[h|cpp]: sample implementation
12607         of the KDE wrapper for DBusMessage
12608
12609 2003-02-09  Zack Rusin  <zack@kde.org>
12610
12611         * test/bus-test.c: make_it_compile
12612         * doc/dbus-specification.sgml: minimal semantic fix
12613
12614 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12615
12616         Release 0.3
12617
12618         * NEWS: Update
12619
12620 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
12621
12622         * dbus/Makefile.am:
12623         * dbus/dbus-break-loader.c:
12624         * test/Makefile.am:
12625         * test/break-loader.c:
12626         Move dbus-break-loader to test/ and rename it to break-loader.
12627
12628 2003-02-02  Havoc Pennington  <hp@pobox.com>
12629
12630         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
12631         for code to manage cookies in your home directory
12632
12633         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
12634
12635         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
12636         to authenticate, then disconnect the client.
12637
12638 2003-02-03  Alexander Larsson  <alexl@redhat.com>
12639
12640         * dbus/dbus-message.c (dbus_message_append_fields):
12641         Correct docs.
12642
12643 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12644
12645         * doc/dbus-specification.sgml:
12646         Update address format section.
12647
12648 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * test/Makefile.am:
12651         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
12652         (message_handler), (new_connection_callback), (loop_quit),
12653         (loop_run), (main):
12654         Add bus test.
12655
12656 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12657
12658         * bus/driver.c: (bus_driver_handle_service_exists):
12659         Simplify the code a bit.
12660
12661         * dbus/dbus-bus.c: (dbus_bus_service_exists):
12662         Fix a silly.
12663
12664 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12665
12666         * bus/Makefile.am:
12667         Add libdbus-daemon.la and link to it.
12668
12669 2003-02-01  James Willcox  <jwillcox@gnome.org>
12670
12671         * bus/driver.c: (bus_driver_handle_own_service):
12672         Actually include the service reply code in the message.
12673
12674 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * bus/driver.c: (bus_driver_handle_service_exists):
12677         Don't unref the incoming message.
12678
12679 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12680
12681         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
12682
12683 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * dbus/dbus-server.c: (dbus_server_listen):
12686         * dbus/dbus-transport.c: (_dbus_transport_open):
12687         ifdef out the calls to the debug transport and server.
12688
12689 2003-02-02  Alexander Larsson  <alexl@redhat.com>
12690
12691         * dbus/dbus-watch.c (dbus_watch_get_flags):
12692         Add note in the docs that ERROR or HANGUP won't be returned
12693         and are assumed always on.
12694
12695         * glib/dbus-gmain.c (add_watch):
12696         Always add IO_ERR | IO_HUP
12697
12698         * dbus/dbus-message.h:
12699         Add semicolon after dbus_message_iter_get_string_array().
12700         Makes qt code build again
12701
12702 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
12703
12704         * bus/driver.c: (create_unique_client_name),
12705         (bus_driver_handle_hello):
12706         Don't take a name, just use a numeric id to identify
12707         each client.
12708
12709         * dbus/Makefile.am:
12710         * dbus/dbus-bus.c: (dbus_bus_register_client),
12711         (dbus_bus_acquire_service), (dbus_bus_service_exists):
12712         * dbus/dbus-bus.h:
12713         Add new convenience functions for communicating with the bus.
12714
12715         * dbus/dbus-message.h:
12716
12717         * dbus/dbus-protocol.h:
12718         Fix a typo.
12719
12720 2003-02-01  Alexander Larsson  <alexl@redhat.com>
12721
12722         * dbus/dbus-message.c (dbus_message_append_fields):
12723         Add some more doc comments.
12724
12725 2003-02-01  Havoc Pennington  <hp@pobox.com>
12726
12727         * dbus/dbus-break-loader.c (randomly_modify_length): change
12728         a 4-byte value in the message as if it were a length
12729
12730         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
12731         execute bit on saved files
12732
12733 2003-02-01  Havoc Pennington  <hp@pobox.com>
12734
12735         * dbus/dbus-break-loader.c (main): new program to find messages
12736         that break the loader.
12737
12738         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
12739         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
12740
12741         * dbus/dbus-string.c (_dbus_string_set_byte): new
12742
12743 2003-01-31  Havoc Pennington  <hp@pobox.com>
12744
12745         * dbus/dbus-message.c: refactor the test code to be more general,
12746         in preparation for writing a "randomly permute test cases to
12747         try to break the loader" program.
12748
12749 2003-01-31  Havoc Pennington  <hp@pobox.com>
12750
12751         * doc/dbus-specification.sgml: work on the specification
12752
12753         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
12754         the protocol version of the message.
12755
12756         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
12757         no longer specifies that.
12758         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
12759         1/2/3/4)
12760
12761         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
12762         "break" for DBUS_TYPE_NIL, remove @todo
12763
12764 2003-01-31  Havoc Pennington  <hp@pobox.com>
12765
12766         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
12767         just set_is_error/get_is_error as this is a commonly-used
12768         function, and write docs.
12769
12770 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
12771
12772         * dbus/dbus-address.c: (dbus_address_entry_free):
12773         Free key and value lists.
12774
12775         * dbus/dbus-internals.c: (_dbus_type_to_string):
12776         Add the types we didn't have.
12777
12778         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12779         (_dbus_marshal_validate_arg):
12780         Add NIL types.
12781
12782         * dbus/dbus-message.c: (dbus_message_set_sender):
12783         Remove todo about being able to set sender to NULL.
12784
12785         (dbus_message_set_is_error_reply),
12786         (dbus_message_get_is_error_reply):
12787         * dbus/dbus-message.h:
12788         New functions.
12789
12790         * dbus/dbus-protocol.h:
12791         Add error reply flag.
12792
12793         * test/data/valid-messages/opposite-endian.message:
12794         Add NIL type to test.
12795
12796 2003-01-31  Havoc Pennington  <hp@pobox.com>
12797
12798         * doc/dbus-specification.sgml: fully specify the header.  Add
12799         flags and major protocol version, and change header/body len to
12800         unsigned.
12801
12802         * dbus/dbus-message-builder.c (append_saved_length): append length
12803         as uint32
12804
12805         * dbus/dbus-message.c (dbus_message_create_header): change header
12806         length and body length to unsigned. Add the new fields from the
12807         spec
12808         (_dbus_message_loader_return_buffer): unsigned header/body len
12809
12810 2003-01-30  Havoc Pennington  <hp@pobox.com>
12811
12812         * dbus/dbus-auth.c: rework to use only REJECTED, no
12813         MECHANISMS
12814
12815         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
12816         use REJECTED, suggested by Mark McLoughlin
12817
12818 2003-01-30  Havoc Pennington  <hp@pobox.com>
12819
12820         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
12821         a better way to report errors here. e.g.  "unix address lacks
12822         path" or something. also "no such file" when the path doesn't
12823         exist, etc.
12824
12825         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
12826         leaking list nodes
12827         (dbus_parse_address): add @todo about documenting address format,
12828         and allowing , and ; to be escaped
12829
12830 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
12831
12832         * dbus/Makefile.am:
12833         Add dbus-address.[ch]
12834
12835         * dbus/dbus-address.c: (dbus_address_entry_free),
12836         (dbus_address_entries_free), (create_entry),
12837         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
12838         (dbus_parse_address), (_dbus_address_test):
12839         * dbus/dbus-address.h:
12840         New files for dealing with address parsing.
12841
12842         * dbus/dbus-connection.c:
12843         Document timeout functions.
12844
12845         * dbus/dbus-message.c:
12846         Document dbus_message_new_from_message.
12847
12848         * dbus/dbus-server-debug.c:
12849         Document.
12850
12851         * dbus/dbus-server.c: (dbus_server_listen):
12852         Parse address and use correct server implementation.
12853
12854         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
12855         * dbus/dbus-string.h:
12856         New function with test.
12857
12858         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
12859         * dbus/dbus-test.h:
12860         Add address tests.
12861
12862         * dbus/dbus-transport-debug.c:
12863         Document.
12864
12865         * dbus/dbus-transport.c: (_dbus_transport_open):
12866         Parse address and use correct transport implementation.
12867
12868 2003-01-30  Havoc Pennington  <hp@pobox.com>
12869
12870         * dbus/dbus-message.c: use message->byte_order instead of
12871         DBUS_COMPILER_BYTE_ORDER throughout.
12872         (dbus_message_create_header): pad header to align the
12873         start of the body of the message to 8-byte boundary
12874
12875         * dbus/dbus-marshal.h: make all the demarshalers take const
12876         DBusString arguments.
12877
12878         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
12879         validate message args here, so we don't have to do slow validation
12880         later, and so we catch bad messages as they are incoming. Also add
12881         better checks on header_len and body_len. Also fill in
12882         message->byte_order
12883
12884         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
12885         implemented properly)
12886         (_dbus_string_validate_nul): new function to check all-nul
12887
12888         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
12889         get_arg_end_pos and remove all validation
12890         (_dbus_marshal_validate_arg): actually do validation here.
12891
12892 2003-01-29  Havoc Pennington  <hp@pobox.com>
12893
12894         * dbus/dbus-message.c (check_message_handling): fix assertion
12895         failure on set_client_serial
12896
12897 2003-01-28  Havoc Pennington  <hp@pobox.com>
12898
12899         * dbus/dbus-server-debug.c: Add doc section comments
12900
12901         * dbus/dbus-transport-debug.c: add doc section comments
12902
12903 2003-01-28  Havoc Pennington  <hp@redhat.com>
12904
12905         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
12906         the reverse order from how I had it
12907         (_dbus_string_base64_encode): reverse encoding order. I was
12908         basically byteswapping everything during encoding.
12909
12910 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
12911
12912         * dbus/dbus-connection-internal.h:
12913         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
12914         (_dbus_connection_remove_timeout):
12915         Add functions for adding and removing timeouts.
12916
12917         * dbus/dbus-message.c: (dbus_message_new_from_message):
12918         Add new function that takes a message and creates an exact
12919         copy of it, but with the refcount set to 1.
12920         (check_message_handling):
12921         Fix build error.
12922
12923         * dbus/dbus-server-protected.h:
12924         * dbus/dbus-server.c: (_dbus_server_init_base),
12925         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
12926         (dbus_server_set_timeout_functions):
12927         (_dbus_server_remove_timeout):
12928         New functions so that a server can add and remove timeouts.
12929
12930         (dbus_server_listen):
12931         Add commented out call to dbus_server_debug_new.
12932
12933         * dbus/dbus-timeout.c: (_dbus_timeout_new):
12934         Actually set the handler, doh.
12935
12936         * dbus/dbus-transport.c: (_dbus_transport_open):
12937         Add commented out call to dbus_transport_debug_client_new.
12938
12939         * dbus/Makefile.am:
12940         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
12941
12942 2003-01-28  Havoc Pennington  <hp@pobox.com>
12943
12944         * dbus/dbus-message.c (check_message_handling): function to check
12945         on the loaded message, iterates over it etc.
12946
12947 2003-01-28  Havoc Pennington  <hp@pobox.com>
12948
12949         * test/Makefile.am (dist-hook): fix make distdir
12950
12951         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
12952
12953 2003-01-27  Havoc Pennington  <hp@pobox.com>
12954
12955         * dbus/dbus-mempool.c (time_for_size): replace printf with
12956         _dbus_verbose
12957
12958         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
12959         empty lines; fix the SAVE_LENGTH stuff to be
12960         START_LENGTH/END_LENGTH so it actually works; couple other
12961         bugfixes
12962
12963         * test/Makefile.am (dist-hook): add dist-hook for .message files
12964
12965         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
12966         can be constant or locked.
12967         (_dbus_string_free): allow freeing a const string as
12968         documented/intended
12969
12970         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
12971
12972         * dbus/dbus-test-main.c (main): take an argument which is the
12973         directory containing test data
12974
12975         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
12976         argument to this and load all the messages in test/data/
12977         checking that they can be loaded or not loaded as appropriate.
12978
12979 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
12980
12981         * bus/dispatch.c: (bus_dispatch_message_handler):
12982         Dispatch messages sent to services.
12983
12984         * bus/driver.c: (bus_driver_send_service_deleted),
12985         (bus_driver_send_service_created), (bus_driver_send_service_lost),
12986         (bus_driver_send_service_acquired):
12987         Add helper functions for sending service related messages.
12988
12989         (bus_driver_send_welcome_message):
12990         Send HELLO_REPLY instead of WELCOME.
12991
12992         (bus_driver_handle_list_services):
12993         Send LIST_SERVICES_REPLY instead of SERVICES.
12994
12995         (bus_driver_handle_own_service),
12996         (bus_driver_handle_service_exists):
12997         New message handlers.
12998
12999         (bus_driver_handle_message):
13000         Invoke new message handlers.
13001
13002         (bus_driver_remove_connection):
13003         Don't remove any services here since that's done automatically
13004         by bus_service_remove_owner now.
13005
13006         * bus/driver.h:
13007         New function signatures.
13008
13009         * bus/services.c: (bus_service_add_owner):
13010         Send ServiceAcquired message if we're the only primary owner.
13011
13012         (bus_service_remove_owner):
13013         Send ServiceAcquired/ServiceLost messages.
13014
13015         (bus_service_set_prohibit_replacement),
13016         (bus_service_get_prohibit_replacement):
13017         Functions for setting prohibit replacement.
13018
13019         (bus_service_has_owner):
13020         New function that checks if a connection is in the owner queue of
13021         a certain service.
13022
13023         * bus/services.h:
13024         Add new function signatures.
13025
13026         * dbus/dbus-list.c: (_dbus_list_test):
13027         Add tests for _dbus_list_remove_last and traversing the list backwards.
13028
13029         * dbus/dbus-list.h:
13030         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13031         go any further, so return NULL then.
13032
13033         * dbus/dbus-protocol.h:
13034         Add new messages, service flags and service replies.
13035
13036 2003-01-26  Havoc Pennington  <hp@pobox.com>
13037
13038         * dbus/dbus-message-builder.c: implement, completely untested.
13039
13040         * test/data/*: add data to be used in testing.
13041         ".message" files are our simple loadable text format.
13042         ".message-raw" will be binary dumps of messages.
13043
13044         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13045
13046 2003-01-26  Havoc Pennington  <hp@pobox.com>
13047
13048         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13049
13050         * dbus/dbus-errors.c (dbus_result_to_string): add
13051         file errors
13052
13053         * dbus/dbus-message-builder.c: new file, will contain code to load
13054         up messages from files. Not implemented yet.
13055
13056 2003-01-26  Havoc Pennington  <hp@pobox.com>
13057
13058         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13059         the sender by setting to NULL
13060
13061 2003-01-26  Havoc Pennington  <hp@pobox.com>
13062
13063         The unit tests pass, but otherwise untested.  If it breaks, the
13064         tests should have been better. ;-)
13065
13066         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13067         the connection.
13068
13069         * dbus/dbus-message.c: redo everything so we maintain
13070         message->header as the only copy of the various fields.
13071         This avoids the possibility of out-of-memory in some cases,
13072         for example dbus_message_lock() can't run out of memory anymore,
13073         and avoids extra copying. Figured I may as well go ahead and do
13074         this since it was busted for dbus_message_lock to not return
13075         failure on OOM, and dbus_message_write_header was totally
13076         unchecked for OOM. Also fixed some random other bugs.
13077
13078         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13079         that strings are nul-terminated. Also, end_pos can be equal
13080         to string length just not greater than, I think.
13081         (_dbus_marshal_set_int32): new function
13082         (_dbus_marshal_set_uint32): new function
13083         (_dbus_marshal_set_string): new function
13084
13085         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
13086         a warning, init timeout_list to NULL
13087         (dbus_connection_send_message): don't use uninitialized variable
13088         "serial"
13089
13090         * dbus/dbus-string.c (_dbus_string_replace_len): new function
13091
13092 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13093
13094         * bus/driver.c: (bus_driver_handle_hello),
13095         (bus_driver_send_welcome_message):
13096         Plug leaks
13097
13098 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
13099
13100         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
13101         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13102         (dbus_connection_unref):
13103         * dbus/dbus-marshal.c: (_dbus_marshal_test):
13104         * dbus/dbus-message.c: (dbus_message_unref),
13105         Plug memory leaks.
13106
13107         (dbus_message_get_fields):
13108         Remove debugging printout.
13109
13110         (_dbus_message_loader_return_buffer):
13111         Don't store the header string.
13112
13113         (_dbus_message_test):
13114         Plug leaks.
13115
13116 2003-01-26  Richard Hult  <rhult@codefactory.se>
13117
13118         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
13119         the file descriptor list, since it can change under us.
13120
13121 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13122
13123         * glib/dbus-gmain.c: (dbus_connection_prepare),
13124         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
13125         (remove_watch), (dbus_connection_hookup_with_g_main):
13126         Rewrite the glib handling to use its own GSource instead of a
13127         GIOChannel so we can catch messages put in the queue while waiting
13128         for a reply.
13129
13130 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13131
13132         * bus/Makefile.am:
13133         * bus/connection.c: (connection_disconnect_handler),
13134         (connection_watch_callback), (bus_connection_setup):
13135         * bus/dispatch.c: (send_one_message),
13136         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
13137         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
13138         * bus/dispatch.h:
13139         * bus/driver.c: (bus_driver_send_service_deleted),
13140         (bus_driver_send_service_created), (bus_driver_handle_hello),
13141         (bus_driver_send_welcome_message),
13142         (bus_driver_handle_list_services), (bus_driver_remove_connection),
13143         (bus_driver_handle_message):
13144         * bus/driver.h:
13145         Refactor code, put the message dispatching in its own file. Use
13146         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
13147         is disconnected.
13148
13149 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13150
13151         * dbus/dbus-internals.h:
13152         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
13153
13154         * dbus/dbus-message.c: (dbus_message_get_sender):
13155         * dbus/dbus-message.h:
13156         Implement dbus_message_get_sender.
13157
13158         * dbus/dbus-protocol.h:
13159         Add message and service defines.
13160
13161 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13162
13163         * dbus/dbus-connection.c: (dbus_connection_send_message):
13164         * dbus/dbus-message-internal.h:
13165         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
13166         (dbus_message_write_header):
13167         Remove _dbus_messag_unlock and don't set the client serial on a
13168         message if one already exists.
13169
13170 2003-01-24  Havoc Pennington  <hp@pobox.com>
13171
13172         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
13173         list_pool
13174
13175         * bus/driver.c (bus_driver_handle_list_services): fix a leak
13176         on OOM
13177
13178 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13179
13180         * dbus/dbus-list.c: (alloc_link), (free_link):
13181         Use a memory pool for the links.
13182
13183 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13184
13185         * bus/connection.c: (bus_connection_foreach):
13186         * bus/connection.h:
13187         Add new bus_connection_foreach function.
13188
13189         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
13190         Add function that broadcasts a message to all clients.
13191
13192         (bus_driver_send_service_created), (bus_driver_handle_hello),
13193         (bus_driver_send_welcome_message),
13194         (bus_driver_handle_list_services), (bus_driver_message_handler):
13195         Implement functions that take care of listing services, and notifying
13196         clients when new services are created.
13197
13198         * bus/services.c: (bus_services_list):
13199         * bus/services.h:
13200         Add new function that returns an array of strings with the currently
13201         registered services.
13202
13203         * glib/dbus-glib.h:
13204         * glib/dbus-gmain.c:
13205         Update copyright year.
13206
13207 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
13208
13209         * dbus/dbus-connection.c: (dbus_connection_send_message):
13210         Unlock the message in case it was sent earlier.
13211
13212         (dbus_connection_send_message_with_reply_and_block):
13213         Remove the reply message from the list.
13214
13215         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13216         Set array_len and new_pos correctly.
13217
13218         (_dbus_marshal_test):
13219         Remove debug output.
13220
13221         * dbus/dbus-message-internal.h:
13222         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
13223         New function that returns the reply serial.
13224
13225         (_dbus_message_unlock):
13226         New function that unlocks a message and resets its header.
13227
13228         (dbus_message_append_string_array),
13229         (dbus_message_get_fields_valist),
13230         (dbus_message_iter_get_field_type),
13231         (dbus_message_iter_get_string_array),
13232         (dbus_message_get_fields),
13233         (dbus_message_append_fields_valist):
13234         Handle string arrays.
13235
13236         (dbus_message_set_sender):
13237         Make this function public since the bus daemon needs it.
13238
13239         (decode_header_data):
13240         Set the reply serial to -1 initially.
13241
13242         * dbus/dbus-message.h:
13243         Add dbus_message_set_sender.
13244
13245 2003-01-24  Havoc Pennington  <hp@pobox.com>
13246
13247         * doc/dbus-specification.sgml: add some stuff
13248
13249 2003-01-22  Havoc Pennington  <hp@pobox.com>
13250
13251         * doc/dbus-specification.sgml: Start to document the protocol.
13252
13253 2003-01-22  Havoc Pennington  <hp@pobox.com>
13254
13255         * dbus/dbus-connection.c
13256         (dbus_connection_send_message_with_reply_and_block): add some @todo
13257
13258         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
13259
13260 2003-01-21  Havoc Pennington  <hp@pobox.com>
13261
13262         (patch untested because can't compile)
13263
13264         * bus/driver.c (create_unique_client_name): make this function
13265         never recycle client names. Also, caller should initialize
13266         the DBusString.
13267
13268         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
13269
13270 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13271
13272         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13273         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13274         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
13275         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
13276         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
13277         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
13278         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
13279         * dbus/dbus-marshal.h:
13280         * dbus/dbus-protocol.h:
13281         Add support for marshalling and demarshalling integer, double
13282         and string arrays.
13283
13284 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13285
13286         * bus/Makefile.am:
13287         Add driver.[ch]
13288
13289         * bus/connection.c: (connection_disconnect_handler):
13290         Remove the connection from the bus driver's list.
13291
13292         (connection_watch_callback): Dispatch messages.
13293
13294         (free_connection_data): Free connection name.
13295
13296         (bus_connection_setup): Add connection to the bus driver's list.
13297         (bus_connection_remove_owned_service):
13298         (bus_connection_set_name), (bus_connection_get_name):
13299         Add functions for setting and getting the connection's name.
13300
13301         * bus/connection.h:
13302         Add function headers.
13303
13304         * bus/driver.c: (create_unique_client_name),
13305         (bus_driver_handle_hello_message),
13306         (bus_driver_send_welcome_message), (bus_driver_message_handler),
13307         (bus_driver_add_connection), (bus_driver_remove_connection):
13308         * bus/driver.h:
13309         * bus/main.c:
13310         * bus/services.c: (bus_service_free):
13311         * bus/services.h:
13312         New file that handles communication and registreation with the bus
13313         itself.
13314
13315 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
13316
13317         * dbus/dbus-connection.c: (dbus_connection_send_message):
13318         Add a new client_serial parameter.
13319
13320         (dbus_connection_send_message_with_reply):
13321         Remove a @todo since we've implemented the blocking function.
13322
13323         (dbus_connection_send_message_with_reply_and_block):
13324         New function that sends a message and waits for a reply and
13325         then returns the reply.
13326
13327         * dbus/dbus-connection.h:
13328         Add new functions.
13329
13330         * dbus/dbus-errors.c: (dbus_result_to_string):
13331         * dbus/dbus-errors.h:
13332         Add new DBUS_RESULT.
13333
13334         * dbus/dbus-message-internal.h:
13335         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
13336         (_dbus_message_set_sender), (dbus_message_write_header),
13337         (dbus_message_new_reply), (decode_header_data),
13338         (_dbus_message_loader_return_buffer), (_dbus_message_test):
13339         * dbus/dbus-message.h:
13340         Add new functions that set the reply serial and sender.
13341         Also marshal and demarshal them correctly and add test.
13342
13343         * dbus/dbus-protocol.h:
13344         Add new DBUS_MESSAGE_TYPE_SENDER.
13345
13346         * glib/dbus-glib.h:
13347         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
13348         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
13349         (dbus_connection_hookup_with_g_main):
13350         * glib/test-dbus-glib.c: (main):
13351         Rewrite to use GIOChannel and remove the GSource crack.
13352
13353         * test/echo-client.c: (main):
13354         * test/watch.c: (check_messages):
13355         Update for changed APIs
13356
13357 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13358
13359         * dbus/Makefile.am: Add dbus-timeout.[cħ]
13360
13361         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
13362         Create a DBusTimeoutList.
13363         (dbus_connection_set_timeout_functions): Add new function to
13364         set timeout callbacks
13365
13366         * dbus/dbus-connection.h: Add public DBusTimeout API.
13367
13368         * dbus/dbus-message.c: (dbus_message_get_service):
13369         * dbus/dbus-message.h:  New function.
13370
13371         * dbus/dbus-server.c: Fix small doc typo.
13372
13373         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
13374
13375 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
13376
13377         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
13378         of the string, just as long as specified.
13379
13380 2003-01-19  Havoc Pennington  <hp@pobox.com>
13381
13382         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
13383         new function
13384
13385         * dbus/dbus-server.c (dbus_server_set_max_connections)
13386         (dbus_server_get_max_connections, dbus_server_get_n_connections):
13387         keep track of current number of connections, and add API for
13388         setting a max (but haven't implemented enforcing the max yet)
13389
13390 2003-01-18  Havoc Pennington  <hp@pobox.com>
13391
13392         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
13393         reading/writing if read_watch != NULL or write_watch != NULL.
13394
13395         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
13396         the message loader code to actually load message->header and
13397         message->body into the newly-created message.
13398
13399         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
13400         in OOM case
13401
13402         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
13403         (dbus_connection_get_max_message_size)
13404         (dbus_connection_set_max_live_messages_size)
13405         (dbus_connection_get_max_live_messages_size): implement some
13406         resource limitation functions
13407
13408         * dbus/dbus-resources.c: new file implementing some of the
13409         resource limits stuff
13410
13411         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
13412         missing docs, add @todo to handle OOM etc.
13413
13414         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
13415         docs
13416
13417 2003-01-18  Havoc Pennington  <hp@pobox.com>
13418
13419         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
13420         connection if it hasn't been already.
13421
13422         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
13423         replace with DisconnectFunction.
13424
13425 2003-01-18  Havoc Pennington  <hp@pobox.com>
13426
13427         Building --disable-verbose-mode --disable-asserts --disable-tests
13428         cuts the library from 112K to 45K or so
13429
13430         * configure.in: check for varargs macro support,
13431         add --enable-verbose-mode, --enable-asserts.
13432
13433         * dbus/dbus-internals.h (_dbus_assert): support
13434         DBUS_DISABLE_ASSERT
13435         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
13436
13437 2003-01-18  Havoc Pennington  <hp@pobox.com>
13438
13439         * dbus/dbus-test.c: include config.h so that tests actually run
13440
13441         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
13442         so the failure mode when that assumption fails will be plenty
13443         obvious.
13444
13445 2003-01-18  Havoc Pennington  <hp@pobox.com>
13446
13447         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
13448
13449         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
13450         the distribution
13451
13452         * test/Makefile.am: don't use special variable "TESTS" for echo-*
13453         since we don't want to use those in make check
13454
13455 2003-01-15  Havoc Pennington  <hp@redhat.com>
13456
13457         Release 0.2
13458
13459         * NEWS: update
13460
13461 2003-01-15  Havoc Pennington  <hp@redhat.com>
13462
13463         * test/Makefile.am: fix so that test source code ends up in the
13464         distribution on make distcheck
13465
13466 2003-01-15  Havoc Pennington  <hp@redhat.com>
13467
13468         Release 0.1.
13469
13470         * NEWS: update
13471
13472 2003-01-15  Havoc Pennington  <hp@redhat.com>
13473
13474         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
13475         fix build when --disable-tests
13476
13477         * Makefile.am (EXTRA_DIST): put HACKING in here
13478
13479         * HACKING: document procedure for making a tarball release.
13480
13481 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
13482
13483         * bus/connection.c: (connection_error_handler),
13484         (bus_connection_setup):
13485         * bus/main.c: (main):
13486         Make sure that the DBusConnectionData struct is NULLed
13487         out to prevent a segfault.
13488
13489         * dbus/dbus-errors.c: (dbus_result_to_string):
13490         * dbus/dbus-errors.h:
13491         * dbus/dbus-message.c: (dbus_message_get_fields),
13492         (dbus_message_get_fields_valist), (_dbus_message_test):
13493         * dbus/dbus-message.h:
13494         Make dbus_message_get_fields return a result code so we can
13495         track invalid fields as well as oom.
13496
13497 2003-01-11  Havoc Pennington  <hp@pobox.com>
13498
13499         * configure.in: change --enable-test/--enable-ansi action-if-given
13500         to enable_foo=$enableval instead of enable_foo=yes
13501
13502 2003-01-08  Havoc Pennington  <hp@pobox.com>
13503
13504         * dbus/dbus-string.c (_dbus_string_align_length): new function
13505
13506         * dbus/dbus-test-main.c: move main() for test app here
13507         * dbus/dbus-test.c
13508         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
13509         symbol to run tests, because dbus-test isn't in the main
13510         library
13511
13512         Code review nitpicks.
13513
13514         * dbus/dbus-message.c (dbus_message_write_header): add newlines
13515         for people with narrow emacs ;-). Assert client_serial was filled
13516         in. Assert message->name != NULL.
13517         (dbus_message_append_fields): have "first_field_type" arg separate
13518         from va list, needed for C++ binding that also uses varargs IIRC
13519         and helps with type safety
13520         (dbus_message_new): add @todo about using DBusString to store
13521         service/name internally
13522         (dbus_message_new): don't leak ->service and ->name on OOM later
13523         in the function
13524         (dbus_message_unref): free the service name
13525         (dbus_message_get_fields): same change to varargs
13526         i.e. first_field_type
13527         (_dbus_message_loader_return_buffer): assert that the message data
13528         is aligned (if not it's a bug in our code). Put in verbose griping
13529         about why we set corrupted = TRUE.
13530         (decode_header_data): add FIXME that char* is evil.  Was going to
13531         add FIXME about evil locale-specific string.h strncmp, but just
13532         switched to wacky string-as-uint32 optimization. Move check for
13533         "no room for field name" above get_const_data_len() to avoid
13534         assertion failure in get_const_data_len if we have trailing 2
13535         bytes or the like. Check for service and name fields being
13536         provided twice. Don't leak service/name on error. Require field
13537         names to be aligned to 4 bytes.
13538
13539         * dbus/dbus-marshal.c: move byte swap stuff to header
13540         (_dbus_pack_int32): uscore-prefix
13541         (_dbus_unpack_int32): uscore-prefix
13542         (_dbus_unpack_uint32): export
13543         (_dbus_demarshal_string): add @todo complaining about use of
13544         memcpy()
13545         (_dbus_marshal_get_field_end_pos): add @todo about bad error
13546         handling allowing corrupt data to go unchecked
13547
13548 2003-01-08  Havoc Pennington  <hp@redhat.com>
13549
13550         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
13551         to the select() as needed for authentication. (should be using
13552         _dbus_poll() not select, but for another day)
13553
13554         * dbus/dbus.h: include dbus/dbus-protocol.h
13555
13556 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13557
13558         * dbus/Makefile.am (dbusinclude_HEADERS): Install
13559         dbus-connection.h
13560
13561 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
13562
13563         * dbus/dbus-internals.c: (_dbus_type_to_string):
13564         New function that returns a string describing a type.
13565
13566         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
13567         * dbus/dbus-marshal.h:
13568         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
13569         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
13570         (dbus_message_iter_get_byte_array):
13571         * dbus/dbus-message.h:
13572         Add new convenience functions for appending and getting message fields.
13573         Also add demarshalling routines for byte arrays.
13574
13575 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13576
13577         * dbus/dbus-connection-internal.h:
13578         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
13579         (_dbus_connection_get_next_client_serial),
13580         (dbus_connection_send_message):
13581         * dbus/dbus-internals.h:
13582         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
13583         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
13584         (_dbus_marshal_uint32), (_dbus_demarshal_double),
13585         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
13586         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
13587         (_dbus_verbose_bytes), (_dbus_marshal_test):
13588         * dbus/dbus-marshal.h:
13589         * dbus/dbus-message-internal.h:
13590         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
13591         (dbus_message_write_header), (_dbus_message_lock),
13592         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
13593         (dbus_message_get_name), (dbus_message_append_int32),
13594         (dbus_message_append_uint32), (dbus_message_append_double),
13595         (dbus_message_append_string), (dbus_message_append_byte_array),
13596         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
13597         (dbus_message_iter_unref), (dbus_message_iter_has_next),
13598         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
13599         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
13600         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
13601         (decode_header_data), (_dbus_message_loader_return_buffer),
13602         (message_iter_test), (_dbus_message_test):
13603         * dbus/dbus-message.h:
13604         * dbus/dbus-protocol.h:
13605         * dbus/dbus-test.c: (main):
13606         * dbus/dbus-test.h:
13607         * glib/test-dbus-glib.c: (message_handler), (main):
13608         * test/echo-client.c: (main):
13609         * test/watch.c: (check_messages):
13610         Make messages sendable and receivable for real.
13611
13612 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13613
13614         * dbus/dbus-marshal.c: (_dbus_marshal_double),
13615         (_dbus_marshal_string), (_dbus_marshal_byte_array):
13616         * dbus/dbus-message.c: (dbus_message_append_int32),
13617         (dbus_message_append_uint32), (dbus_message_append_double),
13618         (dbus_message_append_string), (dbus_message_append_byte_array):
13619         Handle OOM restoration.
13620
13621 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
13622
13623         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13624         (_dbus_demarshal_string), (_dbus_marshal_test):
13625         * dbus/dbus-marshal.h:
13626         * dbus/dbus-message.c: (dbus_message_get_name),
13627         Document these functions.
13628
13629         (dbus_message_append_int32), (dbus_message_append_uint32),
13630         (dbus_message_append_double), (dbus_message_append_string),
13631         (dbus_message_append_byte_array):
13632         * dbus/dbus-message.h:
13633         Add functions for adding message fields of different types.
13634
13635         * dbus/dbus-protocol.h:
13636         Add the different types.
13637
13638 2003-01-05  Havoc Pennington  <hp@pobox.com>
13639
13640         * bus/connection.c: implement routines for handling connections,
13641         first thing is keeping a list of owned services on each connection
13642         and setting up watches etc.
13643
13644         * bus/services.c: implement a mapping from service names to lists
13645         of connections
13646
13647         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
13648
13649         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
13650         to use static mutexes for global data
13651
13652         * dbus/dbus-connection.c (dbus_connection_set_data): add new
13653         collection of functions to set/get application-specific data
13654         on the DBusConnection.
13655
13656 2003-01-04  Havoc Pennington  <hp@pobox.com>
13657
13658         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
13659         (_dbus_poll): new function
13660
13661         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
13662         copied from GLib
13663
13664         * bus/loop.c: initial code for the daemon main loop
13665
13666 2003-01-04  Havoc Pennington  <hp@pobox.com>
13667
13668         * test/watch.c (error_handler): make it safe if the error handler
13669         is called multiple times (if we s/error handler/disconnect
13670         handler/ we should just guarantee it's called only once)
13671
13672         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
13673         error handler on disconnect (it's quite possible we should
13674         just change the error handler to a "disconnect handler," I'm
13675         not sure we have any other meaningful errors)
13676
13677         * configure.in: check for getpwnam_r
13678
13679         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
13680         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
13681         mechanism as in SASL spec, using socket credentials
13682
13683         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
13684         (_dbus_send_credentials_unix_socket): new function
13685
13686         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
13687         dbus_accept()
13688         (_dbus_write): only check errno if <0 returned
13689         (_dbus_write_two): ditto
13690
13691 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
13692
13693         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
13694         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
13695         (_dbus_marshal_test):
13696         * dbus/dbus-marshal.h:
13697         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
13698         to _dbus_marshal_utf8_string. Also fix some tests.
13699
13700 2002-12-28  Harri Porten  <porten@kde.org>
13701
13702         * configure.in: added check for C++ compiler and a very cheesy
13703         check for the Qt integration
13704
13705         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
13706
13707         * qt/Makefile.am: added
13708
13709         * qt/.cvsignore: added
13710
13711         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
13712         latter, added #ifdef QT_THREAD_SUPPORT guard.
13713
13714         * dbus/Makefile.am: added missing headers for make dist
13715
13716 2002-12-28  Kristian Rietveld  <kris@gtk.org>
13717
13718         * dbus/Makefile.am: fixup export-symbols-regex.
13719
13720 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13721
13722         * acinclude.m4: Add this file and put the
13723         PKG_CHECK_MODULE macro in it.
13724
13725 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
13726
13727         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13728         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13729         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13730         (_dbus_marshal_test):
13731         Make the demarshalling routines align the pos argument.
13732         Add string marshalling tests and fix the obvious bugs
13733         discovered.
13734
13735 2002-12-26  Havoc Pennington  <hp@pobox.com>
13736
13737         * dbus/dbus-auth.c: fixes fixes fixes
13738
13739         * dbus/dbus-transport-unix.c: wire up support for
13740         encoding/decoding data on the wire
13741
13742         * dbus/dbus-auth.c (_dbus_auth_encode_data)
13743         (_dbus_auth_decode_data): append to target string
13744         instead of nuking it.
13745
13746 2002-12-26  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
13749         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
13750         doh
13751
13752         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
13753         avoid swap_bytes() overhead (ignoring possible assembly stuff for
13754         now). Main point is because I wanted unpack_uint32 to implement
13755         _dbus_verbose_bytes
13756         (_dbus_verbose_bytes): new function
13757
13758         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
13759
13760         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
13761         mechanism to handle a corrupt message stream
13762         (_dbus_message_loader_new): fix preallocation to only prealloc,
13763         not prelengthen
13764
13765         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
13766         (_dbus_string_test): enhance tests for copy/move and fix the
13767         functions
13768
13769         * dbus/dbus-transport-unix.c: Hold references in more places to
13770         avoid reentrancy problems
13771
13772         * dbus/dbus-transport.c: ditto
13773
13774         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
13775         leak reference count in no-message case
13776
13777         * test/watch.c (do_mainloop): handle adding/removing watches
13778         during iteration over the watches. Also, ref the connection/server
13779         stored on a watch, so we don't try to mangle a destroyed one.
13780
13781         * dbus/dbus-transport-unix.c (do_authentication): perform
13782         authentication
13783
13784         * dbus/dbus-auth.c (get_state): add a state
13785         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
13786         (_dbus_auth_get_unused_bytes): append the unused bytes
13787         to the passed in string, rather than prepend
13788
13789         * dbus/dbus-transport.c (_dbus_transport_init_base): create
13790         the auth conversation DBusAuth
13791
13792         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
13793         (_dbus_transport_new_for_domain_socket): when creating a
13794         transport, pass in whether it's a client-side or server-side
13795         transport so we know which DBusAuth to create
13796
13797 2002-12-03  Havoc Pennington  <hp@pobox.com>
13798
13799         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
13800         _after_ finalizing the derived members
13801         (unix_connection_set): unref watch if we fail to add it
13802
13803         * dbus/dbus-connection.c (dbus_connection_unref): delete the
13804         transport first, so that the connection owned by the
13805         transport will be valid as the transport finalizes.
13806
13807         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
13808         if necessary, and remove watches from the connection.
13809
13810         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
13811
13812 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
13813
13814         * dbus/dbus-marshal.c: (_dbus_marshal_string),
13815         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13816         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
13817         (_dbus_marshal_test):
13818         * dbus/dbus-marshal.h:
13819         Add string marshal functions and have the demarshal functions
13820         return the new position.
13821
13822 2002-12-25  Havoc Pennington  <hp@pobox.com>
13823
13824         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
13825         it is a simple protocol that just maps directly to SASL.
13826
13827         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
13828         initial implementation, not actually used yet.
13829
13830         * dbus/dbus-string.c (_dbus_string_find): new function
13831         (_dbus_string_equal): new function
13832         (_dbus_string_base64_encode): new function
13833         (_dbus_string_base64_decode): new function
13834
13835 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
13836
13837         * dbus/Makefile.am:
13838         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
13839         (_dbus_marshal_int32), (_dbus_marshal_uint32),
13840         (_dbus_demarshal_double), (_dbus_demarshal_int32),
13841         (_dbus_demarshal_uint32), (_dbus_marshal_test):
13842         * dbus/dbus-marshal.h:
13843         * dbus/dbus-protocol.h:
13844         * dbus/dbus-test.c: (main):
13845         * dbus/dbus-test.h:
13846         Add un-optimized marshalling/demarshalling routines.
13847
13848 2002-12-25  Harri Porten  <porten@kde.org>
13849
13850         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
13851
13852 2002-12-24  Zack Rusin  <zack@kde.org>
13853
13854         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
13855         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
13856         main loop stuff
13857
13858 2002-12-24  Havoc Pennington  <hp@pobox.com>
13859
13860         * glib/dbus-gthread.c: fix include
13861
13862         * glib/dbus-glib.h: rename DBusMessageHandler for now.
13863         I think glib API needs to change, though, as you don't
13864         want to use DBusMessageFunction, you want to use the
13865         DBusMessageHandler object. Probably
13866         dbus_connection_open_with_g_main_loop()
13867         and dbus_connection_setup_g_main_loop() or something like that
13868         (but think of better names...) that just create a connection
13869         that has watch/timeout functions etc. already set up.
13870
13871         * dbus/dbus-connection.c
13872         (dbus_connection_send_message_with_reply): new function just to
13873         show how the message handler helps us deal with replies.
13874
13875         * dbus/dbus-list.c (_dbus_list_remove_last): new function
13876
13877         * dbus/dbus-string.c (_dbus_string_test): free a string that
13878         wasn't
13879
13880         * dbus/dbus-hash.c: use memory pools for the hash entries
13881         (rebuild_table): be more paranoid about overflow, and
13882         shrink table when we can
13883         (_dbus_hash_test): reduce number of sprintfs and write
13884         valid C89. Add tests for case where we grow and then
13885         shrink the hash table.
13886
13887         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
13888
13889         * dbus/dbus-connection.c (dbus_connection_register_handler)
13890         (dbus_connection_unregister_handler): new functions
13891
13892         * dbus/dbus-message.c (dbus_message_get_name): new
13893
13894         * dbus/dbus-list.c: fix docs typo
13895
13896         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
13897         an object representing a handler for messages.
13898
13899 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13900
13901         * glib/dbus-glib.h:
13902         * glib/dbus-gthread.c: (dbus_gthread_init):
13903         Don't use the gdbus prefix for public functions.
13904
13905 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * Makefile.am:
13908         * configure.in:
13909         Add GLib checks and fixup .pc files
13910
13911         * glib/Makefile.am:
13912         * glib/dbus-glib.h:
13913         * glib/dbus-gmain.c: (gdbus_connection_prepare),
13914         (gdbus_connection_check), (gdbus_connection_dispatch),
13915         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
13916         (dbus_connection_gsource_new):
13917         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
13918         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
13919         * glib/test-dbus-glib.c: (message_handler), (main):
13920         Add GLib support.
13921
13922 2002-12-15  Harri Porten  <porten@kde.org>
13923
13924         * autogen.sh: check for libtoolize before attempting to use it
13925
13926         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
13927         struct.
13928
13929         * .cvsignore: ignore more stamp files
13930
13931         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
13932
13933         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
13934         without make install.
13935
13936 2002-12-15  Havoc Pennington  <hp@pobox.com>
13937
13938         * dbus/dbus-threads.c: add thread stubs that a higher library
13939         layer can fill in. e.g. the GLib wrapper might fill them in with
13940         GThread stuff. We still need to use this thread API to
13941         thread-safe-ize the library.
13942
13943 2002-12-12  Havoc Pennington  <hp@pobox.com>
13944
13945         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
13946         below new interfaces and include fewer system headers.
13947
13948         * dbus/dbus-sysdeps.c (_dbus_read): new function
13949         (_dbus_write): new function
13950         (_dbus_write_two): new function
13951         (_dbus_connect_unix_socket): new function
13952         (_dbus_listen_unix_socket): new function
13953
13954         * dbus/dbus-message-internal.h: change interfaces to use
13955         DBusString
13956
13957 2002-12-11  Havoc Pennington  <hp@pobox.com>
13958
13959         * dbus/dbus-types.h: add dbus_unichar
13960
13961         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
13962
13963         * dbus/dbus-connection.c (dbus_connection_send_message): return
13964         TRUE on success
13965
13966         * dbus/dbus-transport.c: include dbus-watch.h
13967
13968         * dbus/dbus-connection.c: include dbus-message-internal.h
13969
13970         * HACKING: add file with coding guidelines stuff.
13971
13972         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
13973         handling here, for security purposes (as in vsftpd). Not actually
13974         using this class yet.
13975
13976         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
13977         system/libc usage here, as in vsftpd, for ease of auditing (and
13978         should also simplify portability). Haven't actually moved all the
13979         system/libc usage into here yet.
13980
13981 2002-11-25  Havoc Pennington  <hp@pobox.com>
13982
13983         * dbus/dbus-internals.c (_dbus_verbose): fix to not
13984         always print the first verbose message.
13985
13986 2002-11-24  Havoc Pennington  <hp@pobox.com>
13987
13988         * test/echo-client.c, test/echo-server.c: cheesy test
13989         clients.
13990
13991         * configure.in (AC_CHECK_FUNCS): check for writev
13992
13993         * dbus/dbus-message.c (_dbus_message_get_network_data): new
13994         function
13995
13996         * dbus/dbus-list.c (_dbus_list_foreach): new function
13997
13998         * dbus/dbus-internals.c (_dbus_verbose): new function
13999
14000         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14001         representing a server that listens for connections.
14002
14003         * dbus/.cvsignore: create
14004
14005         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14006         public API for reporting errors
14007
14008         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14009         public object representing a connection that
14010         sends/receives messages. (Same object used for
14011         both client and server.)
14012
14013         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14014         Basic abstraction for different kinds of stream
14015         that we might read/write messages from.
14016
14017 2002-11-23  Havoc Pennington  <hp@pobox.com>
14018
14019         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14020         _DBUS_INT_MAX
14021
14022         * dbus/dbus-test.c (main): add list test, and include
14023         dbus-test.h as intended
14024
14025         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14026         (_dbus_hash_table_remove_int): return value indicates
14027         whether the entry existed to remove
14028
14029         * dbus/dbus-list.c: add linked list utility class,
14030         with docs and tests
14031
14032         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14033         array sometimes.
14034
14035 2002-11-23  Havoc Pennington  <hp@pobox.com>
14036
14037         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14038         DBUS_END_DECLS to nothing, that should fix this once and for all
14039
14040         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14041
14042         * dbus/dbus-message.c, dbus/dbus-hash.c:
14043         add some missing @brief
14044
14045 2002-11-23  Havoc Pennington  <hp@pobox.com>
14046
14047         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14048         to avoid confusing Doxygen
14049
14050         * dbus/dbus-hash.c: @} not }@
14051
14052         * dbus/dbus-message.c (struct DBusMessage): split out
14053         internals docs
14054
14055 2002-11-23  Havoc Pennington  <hp@pobox.com>
14056
14057         * configure.in: pile on more warning flags if using gcc
14058
14059         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14060         to document static functions
14061
14062         * configure.in: add summary to end of configure so it
14063         looks nice and attractive
14064
14065         * dbus/dbus-hash.c: finish implementation and write unit
14066         tests and docs
14067
14068         * configure.in: add --enable-tests to enable unit tests
14069
14070         * dbus/dbus-test.c: test program to run unit tests
14071         for all files in dbus/*, initially runs a test for
14072         dbus-hash.c
14073
14074         * dbus/dbus-internals.h: file to hold some internal utility stuff
14075
14076 2002-11-22  Havoc Pennington  <hp@redhat.com>
14077
14078         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14079         "ported" away from Tcl
14080
14081         * dbus/dbus-types.h: header for types such as dbus_bool_t
14082
14083 2002-11-22  Havoc Pennington  <hp@redhat.com>
14084
14085         * dbus/dbus.h: fixups for doc warnings
14086
14087         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
14088         macros
14089         (QUIET): make it quiet so we can see warnings
14090
14091         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
14092
14093 2002-11-22  Havoc Pennington  <hp@redhat.com>
14094
14095         * Makefile.am: include "Doxyfile" target in all-local
14096
14097         * configure.in: generate the Doxyfile
14098
14099         * Doxyfile.in: move Doxyfile here, so we can use
14100         configure to generate a Doxyfile with the right
14101         version number etc.
14102
14103 2002-11-22  Havoc Pennington  <hp@redhat.com>
14104
14105         * dbus/dbus-message.c: move inline docs into .c file
14106
14107         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
14108         so all docs are under doc/
14109         (MAN_EXTENSION): generate man pages. Use extension
14110         ".3dbus" which matches ".3qt" on my system,
14111         I guess this is OK, I don't know really.
14112         (FILE_PATTERNS): look for .c files not .h, makes sense
14113         for plain C I think
14114
14115 2002-11-22  Havoc Pennington  <hp@pobox.com>
14116
14117         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
14118         because any app can be a server, and any app can be a client,
14119         the bus is a special kind of server.
14120
14121 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
14122
14123         * Doxyfile : adding. Still needs Makefile rules to be generated
14124         automatically (just run "doxygen" in the toplevel dir for now to
14125         generate docs)
14126
14127         * dbus/dbus-message.h : Adding sample docs (javadoc since
14128         resembles gtk-doc a little more)
14129
14130         * dbus/dbus.h : Adding sample docs
14131
14132 2002-11-21  Havoc Pennington  <hp@redhat.com>
14133
14134         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
14135         so we can allow ourselves to include files directly,
14136         instead of having to use dbus.h
14137
14138         * dbus/dbus.h: fill in
14139
14140         * dbus/dbus-message.h: sketch out a sample header file.
14141         Include griping if you include it directly instead of
14142         via dbus.h
14143
14144         * dbus/dbus-macros.h: new file with macros for extern "C",
14145         TRUE/FALSE, NULL, etc.
14146
14147         * doc/file-boilerplate.c: put include guards in here
14148
14149 2002-11-21  Havoc Pennington  <hp@redhat.com>
14150
14151         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
14152
14153         * COPYING: include the GPL as well, and license code
14154         under both AFL and GPL.
14155
14156 2002-11-21  Havoc Pennington  <hp@redhat.com>
14157
14158         * acconfig.h: get rid of this
14159
14160         * autogen.sh (run_configure): add --no-configure option
14161
14162         * configure.in: remove AC_ARG_PROGRAM to make
14163         autoconf complain less. add AC_PREREQ.
14164         add AC_DEFINE third arg.
14165
14166 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
14167
14168         * doc/Makefile.am:
14169         Fix references so we can distcheck.
14170
14171 2002-11-21  Havoc Pennington  <hp@redhat.com>
14172
14173         * Initial module creation
14174